1'use strict'; 2 3const common = require('../common'); 4if (!common.hasCrypto) 5 common.skip('missing crypto'); 6 7const assert = require('assert'); 8const { 9 generateKeyPair, 10} = require('crypto'); 11 12// This tests check that generateKeyPair returns correct bit length in 13// KeyObject's asymmetricKeyDetails. 14// https://github.com/nodejs/node/issues/46102#issuecomment-1372153541 15{ 16 generateKeyPair('rsa', { 17 modulusLength: 513, 18 }, common.mustSucceed((publicKey, privateKey) => { 19 assert.strictEqual(privateKey.asymmetricKeyDetails.modulusLength, 513); 20 assert.strictEqual(publicKey.asymmetricKeyDetails.modulusLength, 513); 21 })); 22 23 generateKeyPair('rsa-pss', { 24 modulusLength: 513, 25 }, common.mustSucceed((publicKey, privateKey) => { 26 assert.strictEqual(privateKey.asymmetricKeyDetails.modulusLength, 513); 27 assert.strictEqual(publicKey.asymmetricKeyDetails.modulusLength, 513); 28 })); 29 30 if (common.hasOpenSSL3) { 31 generateKeyPair('dsa', { 32 modulusLength: 2049, 33 divisorLength: 256, 34 }, common.mustSucceed((publicKey, privateKey) => { 35 assert.strictEqual(privateKey.asymmetricKeyDetails.modulusLength, 2049); 36 assert.strictEqual(publicKey.asymmetricKeyDetails.modulusLength, 2049); 37 })); 38 } 39} 40