s390x assembly pack: allow specifying the tag after aad in aes-ccm
authorPatrick Steuer <patrick.steuer@de.ibm.com>
Tue, 21 May 2019 17:10:28 +0000 (19:10 +0200)
committerPatrick Steuer <patrick.steuer@de.ibm.com>
Wed, 22 May 2019 11:24:50 +0000 (13:24 +0200)
67c81ec311 forgot about s390x

Signed-off-by: Patrick Steuer <patrick.steuer@de.ibm.com>
Reviewed-by: Tim Hudson <tjh@openssl.org>
Reviewed-by: Shane Lontis <shane.lontis@oracle.com>
(Merged from https://github.com/openssl/openssl/pull/8971)

(cherry picked from commit 887e22dd8b6f054e39b2d20fc8870eaba7fc61a8)

crypto/evp/e_aes.c

index 55cc4423a706d266cbf1f1742992cfc213d32ccd..0dfd1c7dd8179248cf90003ba66b1fd231a143e5 100644 (file)
@@ -2216,9 +2216,6 @@ static int s390x_aes_ccm_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out,
     if (!cctx->aes.ccm.iv_set)
         return -1;
 
-    if (!enc && !cctx->aes.ccm.tag_set)
-        return -1;
-
     if (out == NULL) {
         /* Update(): Pass message length. */
         if (in == NULL) {
@@ -2237,6 +2234,10 @@ static int s390x_aes_ccm_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out,
         return len;
     }
 
+    /* The tag must be set before actually decrypting data */
+    if (!enc && !cctx->aes.ccm.tag_set)
+        return -1;
+
     /* Update(): Process message. */
 
     if (!cctx->aes.ccm.len_set) {