diff --git a/lib/dns/opensslecdsa_link.c b/lib/dns/opensslecdsa_link.c index be3a8a43ff..74cab51ec2 100644 --- a/lib/dns/opensslecdsa_link.c +++ b/lib/dns/opensslecdsa_link.c @@ -26,6 +26,7 @@ #include #endif +#include #include #include #include @@ -706,9 +707,12 @@ opensslecdsa_createctx(dst_key_t *key, dst_context_t *dctx) { } #if OPENSSL_VERSION_NUMBER >= 0x30200000L - ret = opensslecdsa_set_deterministic(pctx, dctx->key->key_alg); - if (ret != ISC_R_SUCCESS) { - goto err; + if (!isc_fips_mode()) { + ret = opensslecdsa_set_deterministic( + pctx, dctx->key->key_alg); + if (ret != ISC_R_SUCCESS) { + goto err; + } } #endif /* OPENSSL_VERSION_NUMBER >= 0x30200000L */ diff --git a/tests/dns/dst_test.c b/tests/dns/dst_test.c index 79c7fb5170..2121e3883e 100644 --- a/tests/dns/dst_test.c +++ b/tests/dns/dst_test.c @@ -31,6 +31,7 @@ #include #include +#include #include #include #include @@ -467,7 +468,11 @@ ISC_RUN_TEST_IMPL(ecdsa_determinism_test) { dst_context_destroy(&ctx); #if OPENSSL_VERSION_NUMBER >= 0x30200000L - assert_memory_equal(sigbuf1->base, sigbuf2->base, siglen); + if (isc_fips_mode()) { + assert_memory_not_equal(sigbuf1->base, sigbuf2->base, siglen); + } else { + assert_memory_equal(sigbuf1->base, sigbuf2->base, siglen); + } #else assert_memory_not_equal(sigbuf1->base, sigbuf2->base, siglen); #endif