Add stitched RC4-MD5 as an AEAD.

This change adds the stitched RC4-MD5 code from upstream OpenSSL but
exposes it as an AEAD. It's not a normal AEAD (it's stateful thus
doesn't take an nonce) but forcing pre-AEAD cipher suites in the AEAD
interface is less painful than forcing AEADs into the EVP_CIPHER
interface. Over time, more and more cipher suites will be exposed as
TLS-specific AEADs and then ssl/ can drop support for EVP_CIPHER.

See original code from upstream:

Change-Id: Ia9267b224747f02be6b934ea0b2b50e1f529fab9
Reviewed-by: Adam Langley <>
10 files changed