'use strict'; const common = require('../common'); if (!common.hasCrypto) common.skip('missing crypto'); const assert = require('assert'); const crypto = require('crypto'); const size = common.hasFipsCrypto || common.hasOpenSSL3 ? 1024 : 256; const dh1 = crypto.createDiffieHellman(size); const p1 = dh1.getPrime('buffer'); { const DiffieHellman = crypto.DiffieHellman; const dh = DiffieHellman(p1, 'buffer'); assert(dh instanceof DiffieHellman, 'DiffieHellman is expected to return a ' + 'new instance when called without `new`'); } { const DiffieHellmanGroup = crypto.DiffieHellmanGroup; const dhg = DiffieHellmanGroup('modp5'); assert(dhg instanceof DiffieHellmanGroup, 'DiffieHellmanGroup is expected ' + 'to return a new instance when ' + 'called without `new`'); } { const ECDH = crypto.ECDH; const ecdh = ECDH('prime256v1'); assert(ecdh instanceof ECDH, 'ECDH is expected to return a new instance ' + 'when called without `new`'); }