From 197421b120396a16588a8d9d969fe75908ea9d2e Mon Sep 17 00:00:00 2001 From: "Dr. Stephen Henson" Date: Fri, 3 Feb 2017 02:47:56 +0000 Subject: [PATCH] Make EVP_*Final work for CCM ciphers Reviewed-by: Matt Caswell (Merged from https://github.com/openssl/openssl/pull/2550) --- crypto/evp/e_aes.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) 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), -- 2.25.1