File tree Expand file tree Collapse file tree 2 files changed +14
-12
lines changed Expand file tree Collapse file tree 2 files changed +14
-12
lines changed Original file line number Diff line number Diff line change @@ -235,9 +235,10 @@ bool setFipsEnabled(bool enable, CryptoErrorList* errors) {
235
235
if (isFipsEnabled () == enable) return true ;
236
236
ClearErrorOnReturn clearErrorOnReturn (errors);
237
237
#if OPENSSL_VERSION_MAJOR >= 3
238
- 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 );
239
240
#else
240
- return FIPS_mode_set (enable ? 1 : 0 ) == 1 ;
241
+ return FIPS_mode () == 0 ? FIPS_mode_set (enable ? 1 : 0 ) == 1 : true ;
241
242
#endif
242
243
}
243
244
@@ -248,18 +249,17 @@ bool testFipsEnabled() {
248
249
if (OSSL_PROVIDER_available (nullptr , " fips" )) {
249
250
fips_provider = OSSL_PROVIDER_load (nullptr , " fips" );
250
251
}
251
- const auto enabled = fips_provider == nullptr ? 0
252
- : OSSL_PROVIDER_self_test (fips_provider) ? 1
253
- : 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;
254
256
#else
255
257
#ifdef OPENSSL_FIPS
256
- const auto enabled = FIPS_selftest () ? 1 : 0 ;
258
+ return FIPS_selftest ();
257
259
#else // OPENSSL_FIPS
258
- const auto enabled = 0 ;
260
+ return false ;
259
261
#endif // OPENSSL_FIPS
260
262
#endif
261
-
262
- return enabled;
263
263
}
264
264
265
265
// ============================================================================
Original file line number Diff line number Diff line change 22
22
#include " openssl/provider.h"
23
23
#endif
24
24
25
- #include < openssl/rand.h>
26
-
27
25
namespace node {
28
26
29
27
using ncrypto::BignumPointer;
@@ -85,8 +83,12 @@ bool ProcessFipsOptions() {
85
83
/* Override FIPS settings in configuration file, if needed. */
86
84
if (per_process::cli_options->enable_fips_crypto ||
87
85
per_process::cli_options->force_fips_crypto ) {
86
+ #if OPENSSL_VERSION_MAJOR >= 3
88
87
if (!ncrypto::testFipsEnabled ()) return false ;
89
- return ncrypto::setFipsEnabled (true , nullptr ) && ncrypto::isFipsEnabled ();
88
+ return ncrypto::setFipsEnabled (true , nullptr );
89
+ #else
90
+ if (FIPS_mode () == 0 ) return FIPS_mode_set (1 );
91
+ #endif
90
92
}
91
93
return true ;
92
94
}
You can’t perform that action at this time.
0 commit comments