From: Tomas Mraz Date: Thu, 20 Mar 2025 20:25:07 +0000 (+0100) Subject: Test EVP_DigestSignInit() with ECDSA and KECCAK-256 hash X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=69fa61b08253a991e5553f35bd9fdaf8dc9aec43;p=thirdparty%2Fopenssl.git Test EVP_DigestSignInit() with ECDSA and KECCAK-256 hash Reviewed-by: Paul Dale Reviewed-by: Dmitry Belyavskiy Reviewed-by: Nicola Tuveri (Merged from https://github.com/openssl/openssl/pull/27107) --- diff --git a/test/evp_extra_test.c b/test/evp_extra_test.c index 9e96d80a3e0..175f37bd0c5 100644 --- a/test/evp_extra_test.c +++ b/test/evp_extra_test.c @@ -2017,6 +2017,46 @@ static int test_EVP_DigestVerifyInit(void) return ret; } +#ifndef OPENSSL_NO_EC +static int test_ecdsa_digestsign_keccak(void) +{ + int ret = 0; + EVP_PKEY *pkey = NULL; + EVP_MD_CTX *ctx = NULL; + EVP_MD *md = NULL; + + if (nullprov != NULL) + return TEST_skip("Test does not support a non-default library context"); + + pkey = load_example_ec_key(); + if (!TEST_ptr(pkey)) + goto err; + + /* This would not work with FIPS provider so just use NULL libctx */ + md = EVP_MD_fetch(NULL, "KECCAK-256", NULL); + if (!TEST_ptr(md)) + goto err; + + ctx = EVP_MD_CTX_new(); + if (!TEST_ptr(ctx)) + goto err; + + /* + * Just check EVP_DigestSignInit_ex() works. + */ + if (!TEST_true(EVP_DigestSignInit(ctx, NULL, md, NULL, pkey))) + goto err; + + ret = 1; + err: + EVP_MD_CTX_free(ctx); + EVP_PKEY_free(pkey); + EVP_MD_free(md); + + return ret; +} +#endif + #ifndef OPENSSL_NO_SIPHASH /* test SIPHASH MAC via EVP_PKEY with non-default parameters and reinit */ static int test_siphash_digestsign(void) @@ -6709,6 +6749,9 @@ int setup_tests(void) ADD_TEST(test_EVP_set_default_properties); ADD_ALL_TESTS(test_EVP_DigestSignInit, 30); ADD_TEST(test_EVP_DigestVerifyInit); +#ifndef OPENSSL_NO_EC + ADD_TEST(test_ecdsa_digestsign_keccak); +#endif #ifndef OPENSSL_NO_SIPHASH ADD_TEST(test_siphash_digestsign); #endif