| 'use strict'; |
| |
| const common = require('../common'); |
| if (!common.hasCrypto) |
| common.skip('missing crypto'); |
| |
| const assert = require('assert'); |
| const { |
| generateKeyPair, |
| } = require('crypto'); |
| const { |
| testEncryptDecrypt, |
| testSignVerify, |
| } = require('../common/crypto'); |
| |
| // Tests key objects are returned when key encodings are not specified. |
| { |
| // If no publicKeyEncoding is specified, a key object should be returned. |
| generateKeyPair('rsa', { |
| modulusLength: 1024, |
| privateKeyEncoding: { |
| type: 'pkcs1', |
| format: 'pem' |
| } |
| }, common.mustSucceed((publicKey, privateKey) => { |
| assert.strictEqual(typeof publicKey, 'object'); |
| assert.strictEqual(publicKey.type, 'public'); |
| assert.strictEqual(publicKey.asymmetricKeyType, 'rsa'); |
| |
| // The private key should still be a string. |
| assert.strictEqual(typeof privateKey, 'string'); |
| |
| testEncryptDecrypt(publicKey, privateKey); |
| testSignVerify(publicKey, privateKey); |
| })); |
| |
| // If no privateKeyEncoding is specified, a key object should be returned. |
| generateKeyPair('rsa', { |
| modulusLength: 1024, |
| publicKeyEncoding: { |
| type: 'pkcs1', |
| format: 'pem' |
| } |
| }, common.mustSucceed((publicKey, privateKey) => { |
| // The public key should still be a string. |
| assert.strictEqual(typeof publicKey, 'string'); |
| |
| assert.strictEqual(typeof privateKey, 'object'); |
| assert.strictEqual(privateKey.type, 'private'); |
| assert.strictEqual(privateKey.asymmetricKeyType, 'rsa'); |
| |
| testEncryptDecrypt(publicKey, privateKey); |
| testSignVerify(publicKey, privateKey); |
| })); |
| } |