]> git.ipfire.org Git - thirdparty/openssl.git/commitdiff
test: seperate the integer and string fetches of the 'mode' parameter
authorPauli <ppzgs1@gmail.com>
Mon, 30 Jun 2025 03:11:51 +0000 (13:11 +1000)
committerTomas Mraz <tomas@openssl.org>
Thu, 31 Jul 2025 18:19:39 +0000 (20:19 +0200)
The generated parameter parsers don't accept duplication of parameters so this
causes an error at runtime if not seperated.

Reviewed-by: Shane Lontis <shane.lontis@oracle.com>
Reviewed-by: Tomas Mraz <tomas@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/27923)

test/evp_kdf_test.c

index f537dc7b34d4cff112487dd157d043c4d06095da..898a170800e3e87e732c19e3e5744ac90e936a4f 100644 (file)
@@ -295,12 +295,18 @@ static int do_kdf_hkdf_gettables(int extract_only, int has_digest)
             goto err;
     }
 
+    params_get[0] = OSSL_PARAM_construct_int(OSSL_KDF_PARAM_MODE, &mode_int);
+    params_get[1] = OSSL_PARAM_construct_end();
+    if (!TEST_int_eq(EVP_KDF_CTX_get_params(kctx, params_get), 1)
+        || !TEST_int_eq(mode_int, extract_only ? EVP_KDF_HKDF_MODE_EXTRACT_ONLY :
+                        EVP_KDF_HKDF_MODE_EXTRACT_AND_EXPAND))
+        goto err;
+
     params_get[0] = OSSL_PARAM_construct_utf8_string(OSSL_KDF_PARAM_MODE, mode_utf8,
                                                      sizeof(mode_utf8));
-    params_get[1] = OSSL_PARAM_construct_int(OSSL_KDF_PARAM_MODE, &mode_int);
-    params_get[2] = OSSL_PARAM_construct_octet_string(OSSL_KDF_PARAM_SALT, salt, sizeof(salt));
-    params_get[3] = OSSL_PARAM_construct_octet_string(OSSL_KDF_PARAM_INFO, info, sizeof(info));
-    params_get[4] = OSSL_PARAM_construct_end();
+    params_get[1] = OSSL_PARAM_construct_octet_string(OSSL_KDF_PARAM_SALT, salt, sizeof(salt));
+    params_get[2] = OSSL_PARAM_construct_octet_string(OSSL_KDF_PARAM_INFO, info, sizeof(info));
+    params_get[3] = OSSL_PARAM_construct_end();
     if (!TEST_int_eq(EVP_KDF_CTX_get_params(kctx, params_get), 1)
         || !TEST_str_eq(mode_utf8, extract_only ? "EXTRACT_ONLY" : "EXTRACT_AND_EXPAND")
         || !TEST_int_eq(mode_int, extract_only ? EVP_KDF_HKDF_MODE_EXTRACT_ONLY :