diff options
Diffstat (limited to 'contrib/ntp/ntpd/ntp_crypto.c')
-rw-r--r-- | contrib/ntp/ntpd/ntp_crypto.c | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/contrib/ntp/ntpd/ntp_crypto.c b/contrib/ntp/ntpd/ntp_crypto.c index 36b43cfee91d..fd742221aed7 100644 --- a/contrib/ntp/ntpd/ntp_crypto.c +++ b/contrib/ntp/ntpd/ntp_crypto.c @@ -268,7 +268,13 @@ session_key( break; } ctx = EVP_MD_CTX_new(); +# if defined(OPENSSL) && defined(EVP_MD_CTX_FLAG_NON_FIPS_ALLOW) + /* [Bug 3457] set flags and don't kill them again */ + EVP_MD_CTX_set_flags(ctx, EVP_MD_CTX_FLAG_NON_FIPS_ALLOW); + EVP_DigestInit_ex(ctx, EVP_get_digestbynid(crypto_nid), NULL); +# else EVP_DigestInit(ctx, EVP_get_digestbynid(crypto_nid)); +# endif EVP_DigestUpdate(ctx, (u_char *)header, hdlen); EVP_DigestFinal(ctx, dgst, &len); EVP_MD_CTX_free(ctx); @@ -2087,7 +2093,13 @@ bighash( ptr = emalloc(len); BN_bn2bin(bn, ptr); ctx = EVP_MD_CTX_new(); +# if defined(OPENSSL) && defined(EVP_MD_CTX_FLAG_NON_FIPS_ALLOW) + /* [Bug 3457] set flags and don't kill them again */ + EVP_MD_CTX_set_flags(ctx, EVP_MD_CTX_FLAG_NON_FIPS_ALLOW); + EVP_DigestInit_ex(ctx, EVP_md5(), NULL); +# else EVP_DigestInit(ctx, EVP_md5()); +# endif EVP_DigestUpdate(ctx, ptr, len); EVP_DigestFinal(ctx, dgst, &len); EVP_MD_CTX_free(ctx); |