node/test/parallel/test-crypto-dh-modp2.js
Joyee Cheung 5d0d611eb0
test: split test-crypto-dh.js
Split test-crypto-dh.js so that it is less likely to timeout on
less powerful bots.

PR-URL: https://github.com/nodejs/node/pull/40451
Refs: https://github.com/nodejs/reliability/issues/86
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: Rich Trott <rtrott@gmail.com>
2021-10-19 15:36:42 +08:00

44 lines
1.5 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');
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);
}