X-Git-Url: https://git.openssl.org/gitweb/?p=openssl.git;a=blobdiff_plain;f=crypto%2Fevp%2Fe_rc4_hmac_md5.c;h=8ab18c1413a46cf6017e2b5cf1e0d6853b4f0830;hp=e7aa1f86adbf7e84246f11c3f4f6db980946978c;hb=5aba2b6e88d1d7fc921d2161af27a0835f966ea9;hpb=216e8d91033d237880cff7da0d02d46d47bae41b diff --git a/crypto/evp/e_rc4_hmac_md5.c b/crypto/evp/e_rc4_hmac_md5.c index e7aa1f86ad..8ab18c1413 100644 --- a/crypto/evp/e_rc4_hmac_md5.c +++ b/crypto/evp/e_rc4_hmac_md5.c @@ -21,15 +21,6 @@ # include # include "internal/evp_int.h" -# ifndef EVP_CIPH_FLAG_AEAD_CIPHER -# define EVP_CIPH_FLAG_AEAD_CIPHER 0x200000 -# define EVP_CTRL_AEAD_TLS1_AAD 0x16 -# define EVP_CTRL_AEAD_SET_MAC_KEY 0x17 -# endif - -/* FIXME: surely this is available elsewhere? */ -# define EVP_RC4_KEY_SIZE 16 - typedef struct { RC4_KEY ks; MD5_CTX head, tail, md; @@ -228,6 +219,8 @@ static int rc4_hmac_md5_ctrl(EVP_CIPHER_CTX *ctx, int type, int arg, len = p[arg - 2] << 8 | p[arg - 1]; if (!EVP_CIPHER_CTX_encrypting(ctx)) { + if (len < MD5_DIGEST_LENGTH) + return -1; len -= MD5_DIGEST_LENGTH; p[arg - 2] = len >> 8; p[arg - 1] = len;