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