From e1845360836e4fea189dac06d236f28fd203e1a5 Mon Sep 17 00:00:00 2001 From: akallabeth Date: Thu, 27 Feb 2025 05:45:24 +0100 Subject: [PATCH] [winpr,crypto] refactor winpr_Digest_Init_Allow_FIPS eliminate dead code warnings --- winpr/libwinpr/crypto/hash.c | 40 +++++++++++++++++------------------- 1 file changed, 19 insertions(+), 21 deletions(-) diff --git a/winpr/libwinpr/crypto/hash.c b/winpr/libwinpr/crypto/hash.c index c0ff4c829..568364201 100644 --- a/winpr/libwinpr/crypto/hash.c +++ b/winpr/libwinpr/crypto/hash.c @@ -535,35 +535,33 @@ BOOL winpr_Digest_Init_Allow_FIPS(WINPR_DIGEST_CTX* ctx, WINPR_MD_TYPE md) switch (md) { case WINPR_MD_MD5: + { #if defined(WITH_INTERNAL_MD5) winpr_MD5_Init(&ctx->md5); return TRUE; -#else - break; +#elif defined(WITH_OPENSSL) +#if OPENSSL_VERSION_NUMBER >= 0x30000000L +#if !defined(WITH_INTERNAL_MD5) + if (md == WINPR_MD_MD5) + { + EVP_MD* md5 = EVP_MD_fetch(NULL, "MD5", "fips=no"); + BOOL rc = winpr_Digest_Init_Internal(ctx, md5); + EVP_MD_free(md5); + return rc; + } #endif +#endif + const EVP_MD* evp = winpr_openssl_get_evp_md(md); + EVP_MD_CTX_set_flags(ctx->mdctx, EVP_MD_CTX_FLAG_NON_FIPS_ALLOW); + return winpr_Digest_Init_Internal(ctx, evp); +#elif defined(WITH_MBEDTLS) + return winpr_Digest_Init_Internal(ctx, md); +#endif + } default: WLog_ERR(TAG, "Invalid FIPS digest %s requested", winpr_md_type_to_string(md)); return FALSE; } - -#if defined(WITH_OPENSSL) -#if OPENSSL_VERSION_NUMBER >= 0x30000000L -#if !defined(WITH_INTERNAL_MD5) - if (md == WINPR_MD_MD5) - { - EVP_MD* md5 = EVP_MD_fetch(NULL, "MD5", "fips=no"); - BOOL rc = winpr_Digest_Init_Internal(ctx, md5); - EVP_MD_free(md5); - return rc; - } -#endif -#endif - const EVP_MD* evp = winpr_openssl_get_evp_md(md); - EVP_MD_CTX_set_flags(ctx->mdctx, EVP_MD_CTX_FLAG_NON_FIPS_ALLOW); - return winpr_Digest_Init_Internal(ctx, evp); -#elif defined(WITH_MBEDTLS) - return winpr_Digest_Init_Internal(ctx, md); -#endif } BOOL winpr_Digest_Init(WINPR_DIGEST_CTX* ctx, WINPR_MD_TYPE md)