diff options
author | David Benjamin <davidben@google.com> | 2017-09-17 19:28:42 -0400 |
---|---|---|
committer | Rod Vagg <rod@vagg.org> | 2017-11-11 20:42:49 +1100 |
commit | 87a066a108db1e5e93a5a4a705b2f4bcbb1dcfb2 (patch) | |
tree | 5565c7109ca2a73dcdbb520d54f1edc7c1095fb7 /test | |
parent | 9637a7b58caf034c2afc5869ecd120cf262eaaf9 (diff) | |
download | android-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.js | 13 |
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$/; |