@@ -113,7 +113,6 @@ DataPointer DataPointer::Alloc(size_t len) {
113113
114114DataPointer DataPointer::SecureAlloc (size_t len) {
115115#ifndef OPENSSL_IS_BORINGSSL
116- printf (" ... %zu\n " , len);
117116 auto ptr = OPENSSL_secure_zalloc (len);
118117 if (ptr == nullptr ) return {};
119118 return DataPointer (ptr, len, true );
@@ -236,9 +235,10 @@ bool setFipsEnabled(bool enable, CryptoErrorList* errors) {
236235 if (isFipsEnabled () == enable) return true ;
237236 ClearErrorOnReturn clearErrorOnReturn (errors);
238237#if OPENSSL_VERSION_MAJOR >= 3
239- return EVP_default_properties_enable_fips (nullptr , enable ? 1 : 0 ) == 1 ;
238+ return EVP_default_properties_enable_fips (nullptr , enable ? 1 : 0 ) == 1 &&
239+ EVP_default_properties_is_fips_enabled (nullptr );
240240#else
241- return FIPS_mode_set (enable ? 1 : 0 ) == 1 ;
241+ return FIPS_mode () == 0 ? FIPS_mode_set (enable ? 1 : 0 ) == 1 : true ;
242242#endif
243243}
244244
@@ -249,18 +249,17 @@ bool testFipsEnabled() {
249249 if (OSSL_PROVIDER_available (nullptr , " fips" )) {
250250 fips_provider = OSSL_PROVIDER_load (nullptr , " fips" );
251251 }
252- const auto enabled = fips_provider == nullptr ? 0
253- : OSSL_PROVIDER_self_test (fips_provider) ? 1
254- : 0 ;
252+ if (fips_provider == nullptr ) return false ;
253+ int result = OSSL_PROVIDER_self_test (fips_provider);
254+ OSSL_PROVIDER_unload (fips_provider);
255+ return result;
255256#else
256257#ifdef OPENSSL_FIPS
257- const auto enabled = FIPS_selftest () ? 1 : 0 ;
258+ return FIPS_selftest ();
258259#else // OPENSSL_FIPS
259- const auto enabled = 0 ;
260+ return false ;
260261#endif // OPENSSL_FIPS
261262#endif
262-
263- return enabled;
264263}
265264
266265// ============================================================================
0 commit comments