From 5e6386ec3ff5590c215c06aa4e17fe48bf25db5e Mon Sep 17 00:00:00 2001 From: Filip Skokan Date: Thu, 18 Mar 2021 11:05:25 +0100 Subject: [PATCH] crypto: fix crypto.verify callback invocation with a private keyobject fixes https://github.com/nodejs/node/issues/37794 PR-URL: https://github.com/nodejs/node/pull/37795 Reviewed-By: James M Snell Reviewed-By: Colin Ihrig --- src/crypto/crypto_sig.cc | 2 +- test/parallel/test-crypto-async-sign-verify.js | 4 +++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/src/crypto/crypto_sig.cc b/src/crypto/crypto_sig.cc index cb1ce31be73700..24b1a7f4315f76 100644 --- a/src/crypto/crypto_sig.cc +++ b/src/crypto/crypto_sig.cc @@ -847,7 +847,7 @@ bool SignTraits::DeriveBits( } break; case SignConfiguration::kVerify: - CHECK_EQ(params.key->GetKeyType(), kKeyTypePublic); + CHECK_NE(params.key->GetKeyType(), kKeyTypeSecret); if (!EVP_DigestVerifyInit( context.get(), &ctx, diff --git a/test/parallel/test-crypto-async-sign-verify.js b/test/parallel/test-crypto-async-sign-verify.js index 4980c87673bdb5..5cfce87ca2e7ce 100644 --- a/test/parallel/test-crypto-async-sign-verify.js +++ b/test/parallel/test-crypto-async-sign-verify.js @@ -52,7 +52,9 @@ function test( })); } - for (const key of [publicPem, publicKey, publicDer]) { + const verifyInputs = [ + publicPem, publicKey, publicDer, privatePem, privateKey, privateDer]; + for (const key of verifyInputs) { crypto.verify(algorithm, data, key, expected, common.mustSucceed( (verified) => assert.strictEqual(verified, true)));