Skip to content

Commit 568d9d0

Browse files
davidbenevanlucas
authored andcommitted
crypto: test DH keys work without a public half
Add a regression test for openssl/openssl#4384. PR-URL: #16130 Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl> Reviewed-By: Rod Vagg <rod@vagg.org>
1 parent 6a9c528 commit 568d9d0

File tree

1 file changed

+13
-0
lines changed

1 file changed

+13
-0
lines changed

test/parallel/test-crypto-dh.js

+13
Original file line numberDiff line numberDiff line change
@@ -56,6 +56,19 @@ const secret3 = dh3.computeSecret(key2, 'hex', 'base64');
5656

5757
assert.strictEqual(secret1, secret3);
5858

59+
// computeSecret works without a public key set at all.
60+
const dh4 = crypto.createDiffieHellman(p1, 'buffer');
61+
dh4.setPrivateKey(privkey1);
62+
63+
assert.deepStrictEqual(dh1.getPrime(), dh4.getPrime());
64+
assert.deepStrictEqual(dh1.getGenerator(), dh4.getGenerator());
65+
assert.deepStrictEqual(dh1.getPrivateKey(), dh4.getPrivateKey());
66+
assert.strictEqual(dh4.verifyError, 0);
67+
68+
const secret4 = dh4.computeSecret(key2, 'hex', 'base64');
69+
70+
assert.strictEqual(secret1, secret4);
71+
5972
const wrongBlockLength =
6073
/^Error: error:0606506D:digital envelope routines:EVP_DecryptFinal_ex:wrong final block length$/;
6174

0 commit comments

Comments
 (0)