Skip to content

Commit f518238

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

File tree

1 file changed

+13
-0
lines changed

1 file changed

+13
-0
lines changed

test/parallel/test-crypto-dh.js

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -58,6 +58,19 @@ const secret3 = dh3.computeSecret(key2, 'hex', 'base64');
5858

5959
assert.strictEqual(secret1, secret3);
6060

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

0 commit comments

Comments
 (0)