]> git.ipfire.org Git - thirdparty/openssl.git/commitdiff
CI: Fix GCM IV check in acvp_test for crosstest
authorslontis <shane.lontis@oracle.com>
Mon, 19 Aug 2024 03:52:24 +0000 (13:52 +1000)
committerTomas Mraz <tomas@openssl.org>
Mon, 19 Aug 2024 08:25:41 +0000 (10:25 +0200)
Reviewed-by: Paul Dale <ppzgs1@gmail.com>
Reviewed-by: Tomas Mraz <tomas@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/25223)

test/acvp_test.c

index 44f7249505af62c5ecb5c56f31adc24e1f63755b..6ff7046d91137dcd091efb7ca831b4bd150af04b 100644 (file)
@@ -885,16 +885,21 @@ static int aes_gcm_enc_dec(const char *alg,
 
     {
         OSSL_PARAM params[] = { OSSL_PARAM_END, OSSL_PARAM_END, OSSL_PARAM_END };
+        OSSL_PARAM *p = params;
         unsigned int iv_generated = -1;
+        const OSSL_PARAM *gettables = EVP_CIPHER_CTX_gettable_params(ctx);
+        const char *ivgenkey = OSSL_CIPHER_PARAM_AEAD_IV_GENERATED;
+        int ivgen = (OSSL_PARAM_locate_const(gettables, ivgenkey) != NULL);
 
-        params[0] = OSSL_PARAM_construct_uint(OSSL_CIPHER_PARAM_AEAD_IV_GENERATED,
-                                              &iv_generated);
+        if (ivgen != 0)
+            *p++ = OSSL_PARAM_construct_uint(ivgenkey, &iv_generated);
         if (outiv != NULL)
-            params[1] = OSSL_PARAM_construct_octet_string(OSSL_CIPHER_PARAM_IV,
-                                                          outiv, iv_len);
+            *p = OSSL_PARAM_construct_octet_string(OSSL_CIPHER_PARAM_IV,
+                                                   outiv, iv_len);
         if (!TEST_true(EVP_CIPHER_CTX_get_params(ctx, params)))
             goto err;
-        if (!TEST_uint_eq(iv_generated, (enc == 0 || iv != NULL ? 0 : 1)))
+        if (ivgen != 0
+                && !TEST_uint_eq(iv_generated, (enc == 0 || iv != NULL ? 0 : 1)))
             goto err;
     }
     if (out_len != NULL)