1'use strict';
2const common = require('../common');
3if (!common.hasCrypto)
4  common.skip('missing crypto');
5
6const assert = require('assert');
7const crypto = require('crypto');
8const { modp2buf } = require('../common/crypto');
9
10const modp2 = crypto.createDiffieHellmanGroup('modp2');
11
12const views = common.getArrayBufferViews(modp2buf);
13for (const buf of [modp2buf, ...views]) {
14  // Ensure specific generator (string with encoding) works as expected with
15  // any ArrayBufferViews as the first argument to createDiffieHellman().
16  const exmodp2 = crypto.createDiffieHellman(buf, '02', 'hex');
17  modp2.generateKeys();
18  exmodp2.generateKeys();
19  const modp2Secret = modp2.computeSecret(exmodp2.getPublicKey())
20      .toString('hex');
21  const exmodp2Secret = exmodp2.computeSecret(modp2.getPublicKey())
22      .toString('hex');
23  assert.strictEqual(modp2Secret, exmodp2Secret);
24}
25