Signed-off-by: Filip Skokan <panva.ip@gmail.com> PR-URL: https://github.com/nodejs/node/pull/62883 Reviewed-By: Yagiz Nizipli <yagiz@nizipli.com>
48 lines
1.6 KiB
JavaScript
48 lines
1.6 KiB
JavaScript
'use strict';
|
|
const common = require('../common');
|
|
if (!common.hasCrypto)
|
|
common.skip('missing crypto');
|
|
|
|
const assert = require('assert');
|
|
const crypto = require('crypto');
|
|
const { modp2buf } = require('../common/crypto');
|
|
|
|
if (process.features.openssl_is_boringssl) {
|
|
common.skip('Skipping unsupported Diffie-Hellman tests');
|
|
}
|
|
|
|
const modp2 = crypto.createDiffieHellmanGroup('modp2');
|
|
|
|
{
|
|
// Ensure specific generator (buffer) works as expected.
|
|
const exmodp2 = crypto.createDiffieHellman(modp2buf, Buffer.from([2]));
|
|
modp2.generateKeys();
|
|
exmodp2.generateKeys();
|
|
const modp2Secret = modp2.computeSecret(exmodp2.getPublicKey())
|
|
.toString('hex');
|
|
const exmodp2Secret = exmodp2.computeSecret(modp2.getPublicKey())
|
|
.toString('hex');
|
|
assert.strictEqual(modp2Secret, exmodp2Secret);
|
|
}
|
|
|
|
{
|
|
// Ensure specific generator (string without encoding) works as expected.
|
|
const exmodp2 = crypto.createDiffieHellman(modp2buf, '\x02');
|
|
exmodp2.generateKeys();
|
|
const modp2Secret = modp2.computeSecret(exmodp2.getPublicKey())
|
|
.toString('hex');
|
|
const exmodp2Secret = exmodp2.computeSecret(modp2.getPublicKey())
|
|
.toString('hex');
|
|
assert.strictEqual(modp2Secret, exmodp2Secret);
|
|
}
|
|
|
|
{
|
|
// Ensure specific generator (numeric) works as expected.
|
|
const exmodp2 = crypto.createDiffieHellman(modp2buf, 2);
|
|
exmodp2.generateKeys();
|
|
const modp2Secret = modp2.computeSecret(exmodp2.getPublicKey())
|
|
.toString('hex');
|
|
const exmodp2Secret = exmodp2.computeSecret(modp2.getPublicKey())
|
|
.toString('hex');
|
|
assert.strictEqual(modp2Secret, exmodp2Secret);
|
|
}
|