From: Eugene Syromiatnikov Date: Wed, 17 Jun 2026 09:10:51 +0000 (+0200) Subject: test/evp_kdf_test.c: add checks or EVP_KDF_CTX_{,get0_,get1_}kdf() X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=a5b0c2ef9a38b81541d8d0669d130f8ea75cc849;p=thirdparty%2Fopenssl.git test/evp_kdf_test.c: add checks or EVP_KDF_CTX_{,get0_,get1_}kdf() Signed-off-by: Eugene Syromiatnikov Reviewed-by: Bob Beck Reviewed-by: Nikola Pajkovsky 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 73093119e33..6d4a55d11e9 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);