X-Git-Url: https://git.openssl.org/gitweb/?p=openssl.git;a=blobdiff_plain;f=crypto%2Fevp%2Fe_aria.c;h=9720fcb7e5e5609014e250168a6727701fd6172a;hp=a8c4fc32e2b1e0fd949f2abae69400a8285d4151;hb=5e5bc836fbc5b1c0af428864f5286bbb225f7baf;hpb=706457b7bda7fdbab426b8dce83b318908339da4 diff --git a/crypto/evp/e_aria.c b/crypto/evp/e_aria.c index a8c4fc32e2..9720fcb7e5 100644 --- a/crypto/evp/e_aria.c +++ b/crypto/evp/e_aria.c @@ -695,8 +695,6 @@ static int aria_ccm_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out, if (!cctx->iv_set) return -1; - if (!EVP_CIPHER_CTX_encrypting(ctx) && !cctx->tag_set) - return -1; if (!out) { if (!in) { if (CRYPTO_ccm128_setiv(ccm, EVP_CIPHER_CTX_iv_noconst(ctx), @@ -711,6 +709,11 @@ static int aria_ccm_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out, CRYPTO_ccm128_aad(ccm, in, len); return len; } + + /* The tag must be set before actually decrypting data */ + if (!EVP_CIPHER_CTX_encrypting(ctx) && !cctx->tag_set) + return -1; + /* If not set length yet do it */ if (!cctx->len_set) { if (CRYPTO_ccm128_setiv(ccm, EVP_CIPHER_CTX_iv_noconst(ctx),