summaryrefslogtreecommitdiff
path: root/test/parallel
diff options
context:
space:
mode:
authorTobias Nießen <tniessen@tnie.de>2019-11-04 15:00:25 +0100
committerTobias Nießen <tniessen@tnie.de>2019-11-13 19:42:00 -0400
commit78dbe74520d36de7f7bc17707848ec8ec63e67a5 (patch)
tree12d3943e3f00e02a00fa905bd1e25869d4ee96bf /test/parallel
parentf3ea4e9598242f2012e2093157671fc309452eaf (diff)
downloadandroid-node-v8-78dbe74520d36de7f7bc17707848ec8ec63e67a5.tar.gz
android-node-v8-78dbe74520d36de7f7bc17707848ec8ec63e67a5.tar.bz2
android-node-v8-78dbe74520d36de7f7bc17707848ec8ec63e67a5.zip
crypto: fix key requirements in asymmetric cipher
PR-URL: https://github.com/nodejs/node/pull/30249 Fixes: https://github.com/nodejs/node/issues/30237 Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl> Reviewed-By: Colin Ihrig <cjihrig@gmail.com> Reviewed-By: Ruben Bridgewater <ruben@bridgewater.de> Reviewed-By: James M Snell <jasnell@gmail.com>
Diffstat (limited to 'test/parallel')
-rw-r--r--test/parallel/test-crypto-key-objects.js40
1 files changed, 28 insertions, 12 deletions
diff --git a/test/parallel/test-crypto-key-objects.js b/test/parallel/test-crypto-key-objects.js
index 15de241b35..dc995be041 100644
--- a/test/parallel/test-crypto-key-objects.js
+++ b/test/parallel/test-crypto-key-objects.js
@@ -15,8 +15,10 @@ const {
createPrivateKey,
KeyObject,
randomBytes,
+ publicDecrypt,
publicEncrypt,
- privateDecrypt
+ privateDecrypt,
+ privateEncrypt
} = require('crypto');
const fixtures = require('../common/fixtures');
@@ -156,7 +158,16 @@ const privateDsa = fixtures.readKey('dsa_private_encrypted_1025.pem',
assert(Buffer.isBuffer(privateDER));
const plaintext = Buffer.from('Hello world', 'utf8');
- const ciphertexts = [
+ const testDecryption = (fn, ciphertexts, decryptionKeys) => {
+ for (const ciphertext of ciphertexts) {
+ for (const key of decryptionKeys) {
+ const deciphered = fn(key, ciphertext);
+ assert.deepStrictEqual(deciphered, plaintext);
+ }
+ }
+ };
+
+ testDecryption(privateDecrypt, [
// Encrypt using the public key.
publicEncrypt(publicKey, plaintext),
publicEncrypt({ key: publicKey }, plaintext),
@@ -173,20 +184,25 @@ const privateDsa = fixtures.readKey('dsa_private_encrypted_1025.pem',
// DER-encoded data only.
publicEncrypt({ format: 'der', type: 'pkcs1', key: publicDER }, plaintext),
publicEncrypt({ format: 'der', type: 'pkcs1', key: privateDER }, plaintext)
- ];
-
- const decryptionKeys = [
+ ], [
privateKey,
{ format: 'pem', key: privatePem },
{ format: 'der', type: 'pkcs1', key: privateDER }
- ];
+ ]);
- for (const ciphertext of ciphertexts) {
- for (const key of decryptionKeys) {
- const deciphered = privateDecrypt(key, ciphertext);
- assert(plaintext.equals(deciphered));
- }
- }
+ testDecryption(publicDecrypt, [
+ privateEncrypt(privateKey, plaintext)
+ ], [
+ // Decrypt using the public key.
+ publicKey,
+ { format: 'pem', key: publicPem },
+ { format: 'der', type: 'pkcs1', key: publicDER },
+
+ // Decrypt using the private key.
+ privateKey,
+ { format: 'pem', key: privatePem },
+ { format: 'der', type: 'pkcs1', key: privateDER }
+ ]);
}
{