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// Test async elliptic curve key generation with 'jwk' encoding and RSA. 13{ 14 generateKeyPair('rsa', { 15 modulusLength: 1024, 16 publicKeyEncoding: { 17 format: 'jwk' 18 }, 19 privateKeyEncoding: { 20 format: 'jwk' 21 } 22 }, common.mustSucceed((publicKey, privateKey) => { 23 assert.strictEqual(typeof publicKey, 'object'); 24 assert.strictEqual(typeof privateKey, 'object'); 25 assert.strictEqual(publicKey.kty, 'RSA'); 26 assert.strictEqual(publicKey.kty, privateKey.kty); 27 assert.strictEqual(typeof publicKey.n, 'string'); 28 assert.strictEqual(publicKey.n, privateKey.n); 29 assert.strictEqual(typeof publicKey.e, 'string'); 30 assert.strictEqual(publicKey.e, privateKey.e); 31 assert.strictEqual(typeof privateKey.d, 'string'); 32 assert.strictEqual(typeof privateKey.p, 'string'); 33 assert.strictEqual(typeof privateKey.q, 'string'); 34 assert.strictEqual(typeof privateKey.dp, 'string'); 35 assert.strictEqual(typeof privateKey.dq, 'string'); 36 assert.strictEqual(typeof privateKey.qi, 'string'); 37 })); 38} 39