---
name: "EVP_rc4"
section: "3ssl"
platform: "linux"
package: "openssl"
version: "3.6.5-1"
release: "Arch Linux 2026-11-01"
platforms: ["linux"]
url: "https://new.carta.tech/EVP_rc4"
---

# EVP\_rc4(3ssl)

EVP RC4 stream cipher

## NAME

EVP\_rc4, EVP\_rc4\_40, EVP\_rc4\_hmac\_md5 - EVP RC4 stream cipher

## SYNOPSIS

```
 #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);
```

## DESCRIPTION

The RC4 stream cipher for EVP.

- **EVP\_rc4()**

  RC4 stream cipher. This is a variable key length cipher with a default key length of 128 bits.

- **EVP\_rc4\_40()**

  RC4 stream cipher with 40 bit key length.

  WARNING: this function is obsolete. Its usage should be replaced with the **EVP\_rc4()** and the **EVP\_CIPHER\_CTX\_set\_key\_length()** functions.

- **EVP\_rc4\_hmac\_md5()**

  Authenticated encryption with the RC4 stream cipher with MD5 as HMAC.

  WARNING: this is not intended for usage outside of TLS and requires calling of some undocumented ctrl functions. These ciphers do not conform to the EVP AEAD interface.

## NOTES

Developers should be aware of the negative performance implications of calling these functions multiple times and should consider using **EVP\_CIPHER\_fetch**(3) with **EVP\_CIPHER-RC4**(7) instead. See "Performance" in [**crypto**(7)](/crypto/7.md) for further information.

## RETURN VALUES

These functions return an **EVP\_CIPHER** structure that contains the implementation of the symmetric cipher. See **EVP\_CIPHER\_meth\_new**(3) for details of the **EVP\_CIPHER** structure.

## SEE ALSO

**evp**(7), **EVP\_EncryptInit**(3), **EVP\_CIPHER\_meth\_new**(3)

## 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\>.
