diff options
author | Tobias Nießen <tniessen@tnie.de> | 2018-12-25 13:13:52 +0100 |
---|---|---|
committer | Anna Henningsen <anna@addaleax.net> | 2019-01-08 00:20:09 +0100 |
commit | ae2d1f0e05449221ee770a393e5c967b359d9b1b (patch) | |
tree | 5d43c4d7b0509e47ca51ad7e6cfb4d3192c29f61 /lib | |
parent | 27a03b84c42a021c94649b3f601800b7502a9c15 (diff) | |
download | android-node-v8-ae2d1f0e05449221ee770a393e5c967b359d9b1b.tar.gz android-node-v8-ae2d1f0e05449221ee770a393e5c967b359d9b1b.tar.bz2 android-node-v8-ae2d1f0e05449221ee770a393e5c967b359d9b1b.zip |
crypto: always accept private keys as public keys
Some APIs already accept private keys instead of public keys. This
changes all relevant crypto APIs to do so.
PR-URL: https://github.com/nodejs/node/pull/25217
Reviewed-By: Anna Henningsen <anna@addaleax.net>
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
Reviewed-By: Sam Roberts <vieuxtech@gmail.com>
Diffstat (limited to 'lib')
-rw-r--r-- | lib/internal/crypto/keys.js | 7 | ||||
-rw-r--r-- | lib/internal/crypto/sig.js | 9 |
2 files changed, 6 insertions, 10 deletions
diff --git a/lib/internal/crypto/keys.js b/lib/internal/crypto/keys.js index ad82835080..db7be824ac 100644 --- a/lib/internal/crypto/keys.js +++ b/lib/internal/crypto/keys.js @@ -261,10 +261,6 @@ function prepareAsymmetricKey(key, isPublic, allowKeyObject = true) { } } -function preparePublicKey(key, allowKeyObject) { - return prepareAsymmetricKey(key, true, allowKeyObject); -} - function preparePrivateKey(key, allowKeyObject) { return prepareAsymmetricKey(key, false, allowKeyObject); } @@ -300,7 +296,7 @@ function createSecretKey(key) { } function createPublicKey(key) { - const { format, type, data } = preparePublicKey(key, false); + const { format, type, data } = preparePublicOrPrivateKey(key, false); const handle = new KeyObjectHandle(kKeyTypePublic); handle.init(data, format, type); return new PublicKeyObject(handle); @@ -326,7 +322,6 @@ module.exports = { // These are designed for internal use only and should not be exposed. parsePublicKeyEncoding, parsePrivateKeyEncoding, - preparePublicKey, preparePrivateKey, preparePublicOrPrivateKey, prepareSecretKey, diff --git a/lib/internal/crypto/sig.js b/lib/internal/crypto/sig.js index 32f7c37ec2..4a0c66f9cf 100644 --- a/lib/internal/crypto/sig.js +++ b/lib/internal/crypto/sig.js @@ -19,7 +19,7 @@ const { } = require('internal/crypto/util'); const { preparePrivateKey, - preparePublicKey + preparePublicOrPrivateKey } = require('internal/crypto/keys'); const { Writable } = require('stream'); @@ -112,8 +112,9 @@ Verify.prototype.verify = function verify(options, signature, sigEncoding) { const { data, format, - type - } = preparePublicKey(options, true); + type, + passphrase + } = preparePublicOrPrivateKey(options, true); sigEncoding = sigEncoding || getDefaultEncoding(); @@ -125,7 +126,7 @@ Verify.prototype.verify = function verify(options, signature, sigEncoding) { signature = validateArrayBufferView(toBuf(signature, sigEncoding), 'signature'); - return this[kHandle].verify(data, format, type, signature, + return this[kHandle].verify(data, format, type, passphrase, signature, rsaPadding, pssSaltLength); }; |