1'use strict';
2
3const common = require('../common');
4if (!common.hasCrypto)
5  common.skip('missing crypto');
6
7const assert = require('assert');
8const {
9  generateKeyPairSync,
10} = require('crypto');
11
12// Test sync key generation with key objects with a non-standard
13// publicExponent
14{
15  const { publicKey, privateKey } = generateKeyPairSync('rsa', {
16    publicExponent: 3,
17    modulusLength: 512
18  });
19
20  assert.strictEqual(typeof publicKey, 'object');
21  assert.strictEqual(publicKey.type, 'public');
22  assert.strictEqual(publicKey.asymmetricKeyType, 'rsa');
23  assert.deepStrictEqual(publicKey.asymmetricKeyDetails, {
24    modulusLength: 512,
25    publicExponent: 3n
26  });
27
28  assert.strictEqual(typeof privateKey, 'object');
29  assert.strictEqual(privateKey.type, 'private');
30  assert.strictEqual(privateKey.asymmetricKeyType, 'rsa');
31  assert.deepStrictEqual(privateKey.asymmetricKeyDetails, {
32    modulusLength: 512,
33    publicExponent: 3n
34  });
35}
36