From: Dr. Stephen Henson Date: Fri, 3 Feb 2017 02:47:56 +0000 (+0000) Subject: Make EVP_*Final work for CCM ciphers X-Git-Tag: OpenSSL_1_1_1-pre1~2461 X-Git-Url: https://git.librecmc.org/?a=commitdiff_plain;h=197421b120396a16588a8d9d969fe75908ea9d2e;p=oweals%2Fopenssl.git Make EVP_*Final work for CCM ciphers Reviewed-by: Matt Caswell (Merged from https://github.com/openssl/openssl/pull/2550) --- diff --git a/crypto/evp/e_aes.c b/crypto/evp/e_aes.c index 857a402f8f..451d32d099 100644 --- a/crypto/evp/e_aes.c +++ b/crypto/evp/e_aes.c @@ -2129,6 +2129,10 @@ static int aes_ccm_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out, if (cctx->tls_aad_len >= 0) return aes_ccm_tls_cipher(ctx, out, in, len); + /* EVP_*Final() doesn't return any data */ + if (in == NULL && out != NULL) + return 0; + if (!cctx->iv_set) return -1; @@ -2148,9 +2152,6 @@ static int aes_ccm_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out, CRYPTO_ccm128_aad(ccm, in, len); return len; } - /* EVP_*Final() doesn't return any data */ - if (!in) - return 0; /* If not set length yet do it */ if (!cctx->len_set) { if (CRYPTO_ccm128_setiv(ccm, EVP_CIPHER_CTX_iv_noconst(ctx),