summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorDavid Benjamin <davidben@google.com>2017-09-17 19:28:42 -0400
committerRod Vagg <rod@vagg.org>2017-11-11 20:42:49 +1100
commit87a066a108db1e5e93a5a4a705b2f4bcbb1dcfb2 (patch)
tree5565c7109ca2a73dcdbb520d54f1edc7c1095fb7 /test
parent9637a7b58caf034c2afc5869ecd120cf262eaaf9 (diff)
downloadandroid-node-v8-87a066a108db1e5e93a5a4a705b2f4bcbb1dcfb2.tar.gz
android-node-v8-87a066a108db1e5e93a5a4a705b2f4bcbb1dcfb2.tar.bz2
android-node-v8-87a066a108db1e5e93a5a4a705b2f4bcbb1dcfb2.zip
crypto: test DH keys work without a public half
Add a regression test for https://github.com/openssl/openssl/pull/4384. PR-URL: https://github.com/nodejs/node/pull/16130 Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl> Reviewed-By: Rod Vagg <rod@vagg.org>
Diffstat (limited to 'test')
-rw-r--r--test/parallel/test-crypto-dh.js13
1 files changed, 13 insertions, 0 deletions
diff --git a/test/parallel/test-crypto-dh.js b/test/parallel/test-crypto-dh.js
index 62d0f7d6b0..c162d660bd 100644
--- a/test/parallel/test-crypto-dh.js
+++ b/test/parallel/test-crypto-dh.js
@@ -56,6 +56,19 @@ const secret3 = dh3.computeSecret(key2, 'hex', 'base64');
assert.strictEqual(secret1, secret3);
+// computeSecret works without a public key set at all.
+const dh4 = crypto.createDiffieHellman(p1, 'buffer');
+dh4.setPrivateKey(privkey1);
+
+assert.deepStrictEqual(dh1.getPrime(), dh4.getPrime());
+assert.deepStrictEqual(dh1.getGenerator(), dh4.getGenerator());
+assert.deepStrictEqual(dh1.getPrivateKey(), dh4.getPrivateKey());
+assert.strictEqual(dh4.verifyError, 0);
+
+const secret4 = dh4.computeSecret(key2, 'hex', 'base64');
+
+assert.strictEqual(secret1, secret4);
+
const wrongBlockLength =
/^Error: error:0606506D:digital envelope routines:EVP_DecryptFinal_ex:wrong final block length$/;