EVP_RC4(3ossl)
π EVP_RC4(3ossl) β the OpenSSL page, but make it make sense π
okay bestie, sit down, grab a boba, because we're talking about EVP_rc4, EVP_rc4_40 and EVP_rc4_hmac_md5 β the EVP RC4 stream cipher family. this is from the OpenSSL manual, section 3ossl, and yes we're doing the whole thing, no skips, no cliffhangers. π«Ά
β¨ NAME β¨
EVP_rc4, EVP_rc4_40, EVP_rc4_hmac_md5 β the EVP RC4 stream cipher. that's the whole vibe. πΈ
β¨ SYNOPSIS β¨
like, here's the summoning ritual:
#include <openssl/evp.h>
const EVP_CIPHER *EVP_rc4(void);
const EVP_CIPHER *EVP_rc4_40(void);
const EVP_CIPHER *EVP_rc4_hmac_md5(void);
three functions, three little const EVP_CIPHER * returns, zero arguments. clean. β¨
β¨ DESCRIPTION β¨
so basically: the RC4 stream cipher for EVP. that's the whole premise. now let's meet the girls one by one. π
π EVP_rc4()
RC4 stream cipher. it's a variable key length cipher with a default key length of 128 bits. iconic, flexible, does the thing. π
π EVP_rc4_40()
RC4 stream cipher, but with a 40 bit key length.
β οΈ WARNING: this function is obsolete. bestie, its usage should be replaced with theEVP_rc4()and theEVP_CIPHER_CTX_set_key_length()functions. like, genuinely, move on. π
π EVP_rc4_hmac_md5()
Authenticated encryption with the RC4 stream cipher, using MD5 as HMAC. yes, together. a duo. π
β οΈ WARNING: this is not intended for usage outside of TLS and requires calling some undocumented ctrl functions. also β and this is the important bit β these ciphers do not conform to the EVP AEAD interface. so like, do not just casually use this, okay? π
β¨ NOTES β¨
real talk for the developers in the chat: be aware of the negative performance implications of calling these functions multiple times. like, it's giving expensive. π
instead, consider using EVP_CIPHER_fetch(3) with EVP_CIPHER-RC4(7). see "Performance" in crypto(7) for further information. that's the move. π¦
β¨ RETURN VALUES β¨
these functions return an EVP_CIPHER structure that contains the implementation of the symmetric cipher. if you wanna know the details of that EVP_CIPHER structure, go look at EVP_CIPHER_meth_new(3). it's all there, i promise. π
β¨ SEE ALSO β¨
the little friends of this page, go read them too:
β¨ COPYRIGHT β¨
Copyright 2017-2023 The OpenSSL Project Authors. All Rights Reserved. π«Ά
Licensed under the Apache License 2.0 (the "License"). You may not use this file except in compliance with the License. You can obtain a copy in the file LICENSE in the source distribution or at <https://www.openssl.org/source/license.html>.
okay that's the whole page, you ate that. and for the sign-off moment: this was the OpenSSL 3.5.9 version of the page, dated 2026-09-29, filed under EVP_RC4(3ossl). periodt. π
β¨π
π¦ where this page comes from
- fedora 43: openssl-devel 1:3.5.9-1.fc43 Β· Apache-2.0
- fedora 43: openssl-devel 1:3.5.9-1.fc43 Β· Apache-2.0
- fedora 44: openssl-devel 1:3.5.9-1.fc44 Β· Apache-2.0
- fedora 44: openssl-devel 1:3.5.9-1.fc44 Β· Apache-2.0
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms