Commit a5b0c2ef9a for openssl.org
commit a5b0c2ef9a38b81541d8d0669d130f8ea75cc849
Author: Eugene Syromiatnikov <esyr@openssl.org>
Date: Wed Jun 17 11:10:51 2026 +0200
test/evp_kdf_test.c: add checks or EVP_KDF_CTX_{,get0_,get1_}kdf()
Signed-off-by: Eugene Syromiatnikov <esyr@openssl.org>
Reviewed-by: Bob Beck <beck@openssl.org>
Reviewed-by: Nikola Pajkovsky <nikolap@openssl.org>
MergeDate: Thu Jul 2 07:24:24 2026
(Merged from https://github.com/openssl/openssl/pull/28954)
diff --git a/test/evp_kdf_test.c b/test/evp_kdf_test.c
index 73093119e3..6d4a55d11e 100644
--- a/test/evp_kdf_test.c
+++ b/test/evp_kdf_test.c
@@ -2097,6 +2097,73 @@ static int test_kdf_get_kdf(void)
return ok;
}
+static int test_kdf_ctx_get_kdf(void)
+{
+ EVP_KDF *kdf = NULL;
+ const EVP_KDF *kdf_get0 = NULL;
+ EVP_KDF *kdf_get1 = NULL;
+ EVP_KDF_CTX *kctx = NULL;
+ int ok = 0;
+
+ kdf = EVP_KDF_fetch(NULL, OSSL_KDF_NAME_PBKDF2, NULL);
+ if (!TEST_ptr(kdf))
+ goto out;
+
+ kctx = EVP_KDF_CTX_new(kdf);
+ if (!TEST_ptr(kdf))
+ goto out;
+
+ kdf_get0 = EVP_KDF_CTX_get0_kdf(kctx);
+ if (!TEST_ptr_eq(kdf, kdf_get0))
+ goto out;
+
+ kdf_get1 = EVP_KDF_CTX_get1_kdf(kctx);
+ if (!TEST_ptr(kdf_get1)
+ || !TEST_true(EVP_KDF_is_a(kdf_get1, EVP_KDF_get0_name(kdf))))
+ goto out;
+
+ ok = 1;
+
+out:
+ EVP_KDF_free(kdf_get1);
+ EVP_KDF_CTX_free(kctx);
+ EVP_KDF_free(kdf);
+
+ return ok;
+}
+
+#if !defined(OPENSSL_NO_DEPRECATED_4_1)
+static int test_kdf_ctx_kdf(void)
+{
+ EVP_KDF *kdf = NULL;
+ const EVP_KDF *kdf_get = NULL;
+ EVP_KDF_CTX *kctx = NULL;
+ int ok = 0;
+
+ kdf = EVP_KDF_fetch(NULL, OSSL_KDF_NAME_PBKDF2, NULL);
+ if (!TEST_ptr(kdf))
+ goto out;
+
+ kctx = EVP_KDF_CTX_new(kdf);
+ if (!TEST_ptr(kdf))
+ goto out;
+
+ OSSL_BEGIN_ALLOW_DEPRECATED
+ kdf_get = EVP_KDF_CTX_kdf(kctx);
+ OSSL_END_ALLOW_DEPRECATED
+ if (!TEST_ptr_eq(kdf, kdf_get))
+ goto out;
+
+ ok = 1;
+
+out:
+ EVP_KDF_CTX_free(kctx);
+ EVP_KDF_free(kdf);
+
+ return ok;
+}
+#endif /* !OPENSSL_NO_DEPRECATED_4_1 */
+
#if !defined(OPENSSL_NO_CMS) && !defined(OPENSSL_NO_DES) && !defined(OPENSSL_NO_X942KDF)
static int test_kdf_x942_asn1(void)
{
@@ -2366,6 +2433,10 @@ int setup_tests(void)
ADD_TEST(test_kdf_kbkdf_kmac);
#endif /* OPENSSL_NO_KBKDF */
ADD_TEST(test_kdf_get_kdf);
+ ADD_TEST(test_kdf_ctx_get_kdf);
+#if !defined(OPENSSL_NO_DEPRECATED_4_1)
+ ADD_TEST(test_kdf_ctx_kdf);
+#endif
ADD_TEST(test_kdf_tls1_prf);
ADD_TEST(test_kdf_tls1_prf_set_skey);
ADD_TEST(test_kdf_tls1_prf_derive_skey);