diff options
author | Vít Ondruch <vondruch@redhat.com> | 2020-08-25 15:04:54 +0300 |
---|---|---|
committer | Michael Dawson <mdawson@devrus.com> | 2021-02-26 02:12:58 +0300 |
commit | f392ac0bbe3f3757872b9c7cdc785928034b62e9 (patch) | |
tree | 39bf31adb1c4d24b74f717e7e0272bbccc18ac5a /src/node_crypto.cc | |
parent | 148bc33347266a0293d52859cbf9580ade9b6cbe (diff) |
crypto: make FIPS related options always awailable
There is no reason to hide FIPS functionality behind build flags.
OpenSSL always provide the information about FIPS availability via
`FIPS_mode()` function.
This makes the user experience more consistent, because the OpenSSL
library is always queried and the `crypto.getFips()` always returns
OpenSSL settings.
Fixes #34903
PR-URL: https://github.com/nodejs/node/pull/36341
Reviewed-By: Anna Henningsen <anna@addaleax.net>
Reviewed-By: Michael Dawson <midawson@redhat.com>
Reviewed-By: Daniel Bevenius <daniel.bevenius@gmail.com>
Diffstat (limited to 'src/node_crypto.cc')
-rw-r--r-- | src/node_crypto.cc | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/src/node_crypto.cc b/src/node_crypto.cc index 861125111be..b37e47d35b9 100644 --- a/src/node_crypto.cc +++ b/src/node_crypto.cc @@ -31,6 +31,7 @@ namespace node { using v8::Context; using v8::Local; using v8::Object; +using v8::TryCatch; using v8::Value; namespace crypto { @@ -39,10 +40,15 @@ void Initialize(Local<Object> target, Local<Value> unused, Local<Context> context, void* priv) { + Environment* env = Environment::GetCurrent(context); + static uv_once_t init_once = UV_ONCE_INIT; + TryCatch try_catch{env->isolate()}; uv_once(&init_once, InitCryptoOnce); - - Environment* env = Environment::GetCurrent(context); + if (try_catch.HasCaught() && !try_catch.HasTerminated()) { + try_catch.ReThrow(); + return; + } AES::Initialize(env, target); CipherBase::Initialize(env, target); |