Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/nodejs/node.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorVít Ondruch <vondruch@redhat.com>2020-08-25 15:04:54 +0300
committerMichael Dawson <mdawson@devrus.com>2021-02-26 02:12:58 +0300
commitf392ac0bbe3f3757872b9c7cdc785928034b62e9 (patch)
tree39bf31adb1c4d24b74f717e7e0272bbccc18ac5a /src/node_crypto.cc
parent148bc33347266a0293d52859cbf9580ade9b6cbe (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.cc10
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);