generateKeyPairSync
Generates a new asymmetric key pair of the given type
. RSA, RSA-PSS, DSA, EC, Ed25519, Ed448, X25519, X448, and DH are currently supported.
If a publicKeyEncoding
or privateKeyEncoding
was specified, this function behaves as if keyObject.export()
had been called on its result. Otherwise, the respective part of the key is returned as a KeyObject
.
When encoding public keys, it is recommended to use 'spki'
. When encoding private keys, it is recommended to use 'pkcs8'
with a strong passphrase, and to keep the passphrase confidential.
const {
generateKeyPairSync,
} = await import('node:crypto');
const {
publicKey,
privateKey,
} = generateKeyPairSync('rsa', {
modulusLength: 4096,
publicKeyEncoding: {
type: 'spki',
format: 'pem',
},
privateKeyEncoding: {
type: 'pkcs8',
format: 'pem',
cipher: 'aes-256-cbc',
passphrase: 'top secret',
},
});
The return value { publicKey, privateKey }
represents the generated key pair. When PEM encoding was selected, the respective key will be a string, otherwise it will be a buffer containing the data encoded as DER.
Since
v10.12.0
Parameters
Must be 'rsa'
, 'rsa-pss'
, 'dsa'
, 'ec'
, 'ed25519'
, 'ed448'
, 'x25519'
, 'x448'
, or 'dh'
.