From 8b14046f7796e14a444a7ff687829009ed4996e7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tobias=20Nie=C3=9Fen?= Date: Mon, 1 Feb 2021 14:42:01 +0100 Subject: [PATCH] src: simplify calls to BN_bin2bn in prime gen PR-URL: https://github.com/nodejs/node/pull/37169 Reviewed-By: James M Snell Reviewed-By: Rich Trott --- src/crypto/crypto_random.cc | 16 ++++------------ 1 file changed, 4 insertions(+), 12 deletions(-) diff --git a/src/crypto/crypto_random.cc b/src/crypto/crypto_random.cc index e5722169486e3e..ceac834cb94d6f 100644 --- a/src/crypto/crypto_random.cc +++ b/src/crypto/crypto_random.cc @@ -104,29 +104,21 @@ Maybe RandomPrimeTraits::AdditionalConfig( bool safe = args[offset + 1]->IsTrue(); if (!args[offset + 2]->IsUndefined()) { - params->add.reset(BN_secure_new()); + ArrayBufferOrViewContents add(args[offset + 2]); + params->add.reset(BN_bin2bn(add.data(), add.size(), nullptr)); if (!params->add) { THROW_ERR_CRYPTO_OPERATION_FAILED(env, "could not generate prime"); return Nothing(); } - ArrayBufferOrViewContents add(args[offset + 2]); - if (BN_bin2bn(add.data(), add.size(), params->add.get()) == nullptr) { - THROW_ERR_INVALID_ARG_VALUE(env, "invalid options.add"); - return Nothing(); - } } if (!args[offset + 3]->IsUndefined()) { - params->rem.reset(BN_secure_new()); + ArrayBufferOrViewContents rem(args[offset + 3]); + params->rem.reset(BN_bin2bn(rem.data(), rem.size(), nullptr)); if (!params->rem) { THROW_ERR_CRYPTO_OPERATION_FAILED(env, "could not generate prime"); return Nothing(); } - ArrayBufferOrViewContents rem(args[offset + 3]); - if (BN_bin2bn(rem.data(), rem.size(), params->rem.get()) == nullptr) { - THROW_ERR_INVALID_ARG_VALUE(env, "invalid options.rem"); - return Nothing(); - } } int bits = static_cast(size);