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 EdDSA key generation.
13{
14  if (!/^1\.1\.0/.test(process.versions.openssl)) {
15    ['ed25519', 'ed448', 'x25519', 'x448'].forEach((keyType) => {
16      generateKeyPair(keyType, common.mustSucceed((publicKey, privateKey) => {
17        assert.strictEqual(publicKey.type, 'public');
18        assert.strictEqual(publicKey.asymmetricKeyType, keyType);
19        assert.deepStrictEqual(publicKey.asymmetricKeyDetails, {});
20
21        assert.strictEqual(privateKey.type, 'private');
22        assert.strictEqual(privateKey.asymmetricKeyType, keyType);
23        assert.deepStrictEqual(privateKey.asymmetricKeyDetails, {});
24      }));
25    });
26  }
27}
28