From 697563965182c9559d813b414899677fe6c57d39 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tobias=20Nie=C3=9Fen?= Date: Sat, 13 Oct 2018 23:08:24 +0200 Subject: [PATCH] crypto: simplify internal state handling Uninitialized instances are not exposed to users, so this condition should always be true. PR-URL: https://github.com/nodejs/node/pull/23648 Reviewed-By: Refael Ackermann Reviewed-By: Colin Ihrig Reviewed-By: Ben Noordhuis --- src/node_crypto.cc | 19 +++++-------------- 1 file changed, 5 insertions(+), 14 deletions(-) diff --git a/src/node_crypto.cc b/src/node_crypto.cc index 89ec7f7d1447f0..51648b9e4ca999 100644 --- a/src/node_crypto.cc +++ b/src/node_crypto.cc @@ -4105,10 +4105,7 @@ void DiffieHellman::GenerateKeys(const FunctionCallbackInfo& args) { DiffieHellman* diffieHellman; ASSIGN_OR_RETURN_UNWRAP(&diffieHellman, args.Holder()); - - if (!diffieHellman->initialised_) { - return ThrowCryptoError(env, ERR_get_error(), "Not initialized"); - } + CHECK(diffieHellman->initialised_); if (!DH_generate_key(diffieHellman->dh_.get())) { return ThrowCryptoError(env, ERR_get_error(), "Key generation failed"); @@ -4130,7 +4127,7 @@ void DiffieHellman::GetField(const FunctionCallbackInfo& args, DiffieHellman* dh; ASSIGN_OR_RETURN_UNWRAP(&dh, args.Holder()); - if (!dh->initialised_) return env->ThrowError("Not initialized"); + CHECK(dh->initialised_); const BIGNUM* num = get_field(dh->dh_.get()); if (num == nullptr) return env->ThrowError(err_if_null); @@ -4182,10 +4179,7 @@ void DiffieHellman::ComputeSecret(const FunctionCallbackInfo& args) { DiffieHellman* diffieHellman; ASSIGN_OR_RETURN_UNWRAP(&diffieHellman, args.Holder()); - - if (!diffieHellman->initialised_) { - return ThrowCryptoError(env, ERR_get_error(), "Not initialized"); - } + CHECK(diffieHellman->initialised_); ClearErrorOnReturn clear_error_on_return; @@ -4253,7 +4247,7 @@ void DiffieHellman::SetKey(const v8::FunctionCallbackInfo& args, DiffieHellman* dh; ASSIGN_OR_RETURN_UNWRAP(&dh, args.Holder()); - if (!dh->initialised_) return env->ThrowError("Not initialized"); + CHECK(dh->initialised_); char errmsg[64]; @@ -4299,10 +4293,7 @@ void DiffieHellman::VerifyErrorGetter(const FunctionCallbackInfo& args) { DiffieHellman* diffieHellman; ASSIGN_OR_RETURN_UNWRAP(&diffieHellman, args.Holder()); - - if (!diffieHellman->initialised_) - return ThrowCryptoError(diffieHellman->env(), ERR_get_error(), - "Not initialized"); + CHECK(diffieHellman->initialised_); args.GetReturnValue().Set(diffieHellman->verifyError_); }