function generateKeyPair
Overload 1
#generateKeyPair(type: "rsa",options: RSAKeyPairOptions<"pem", "pem">,callback: (err: Error | null,publicKey: string,privateKey: string,) => void,): void
The x448
option is not supported.
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
.
It is recommended to encode public keys as 'spki'
and private keys as 'pkcs8'
with encryption for long-term storage:
const {
generateKeyPair,
} = await import('node:crypto');
generateKeyPair('rsa', {
modulusLength: 4096,
publicKeyEncoding: {
type: 'spki',
format: 'pem',
},
privateKeyEncoding: {
type: 'pkcs8',
format: 'pem',
cipher: 'aes-256-cbc',
passphrase: 'top secret',
},
}, (err, publicKey, privateKey) => {
// Handle errors and use the generated key pair.
});
On completion, callback
will be called with err
set to undefined
and publicKey
/ privateKey
representing the generated key pair.
If this method is invoked as its util.promisify()
ed version, it returns
a Promise
for an Object
with publicKey
and privateKey
properties.
Parameters #
#type: "rsa"
Must be 'rsa'
, 'rsa-pss'
, 'dsa'
, 'ec'
, 'ed25519'
, 'ed448'
, 'x25519'
, 'x448'
, or 'dh'
.
#options: RSAKeyPairOptions<"pem", "pem">
#callback: (err: Error | null,publicKey: string,privateKey: string,) => void
Return Type #
void
Overload 2
#generateKeyPair(type: "rsa",options: RSAKeyPairOptions<"pem", "der">,callback: (err: Error | null,publicKey: string,privateKey: Buffer,) => void,): void
Overload 3
#generateKeyPair(type: "rsa",options: RSAKeyPairOptions<"der", "pem">,callback: (err: Error | null,publicKey: Buffer,privateKey: string,) => void,): void
Overload 4
#generateKeyPair(type: "rsa",options: RSAKeyPairOptions<"der", "der">,callback: (err: Error | null,publicKey: Buffer,privateKey: Buffer,) => void,): void
Overload 5
#generateKeyPair(type: "rsa",options: RSAKeyPairKeyObjectOptions,): void
Overload 6
#generateKeyPair(type: "rsa-pss",options: RSAPSSKeyPairOptions<"pem", "pem">,callback: (err: Error | null,publicKey: string,privateKey: string,) => void,): void
Overload 7
#generateKeyPair(type: "rsa-pss",options: RSAPSSKeyPairOptions<"pem", "der">,callback: (err: Error | null,publicKey: string,privateKey: Buffer,) => void,): void
Overload 8
#generateKeyPair(type: "rsa-pss",options: RSAPSSKeyPairOptions<"der", "pem">,callback: (err: Error | null,publicKey: Buffer,privateKey: string,) => void,): void
Overload 9
#generateKeyPair(type: "rsa-pss",options: RSAPSSKeyPairOptions<"der", "der">,callback: (err: Error | null,publicKey: Buffer,privateKey: Buffer,) => void,): void
Overload 10
#generateKeyPair(type: "rsa-pss",options: RSAPSSKeyPairKeyObjectOptions,): void
Overload 11
#generateKeyPair(type: "dsa",options: DSAKeyPairOptions<"pem", "pem">,callback: (err: Error | null,publicKey: string,privateKey: string,) => void,): void
Overload 12
#generateKeyPair(type: "dsa",options: DSAKeyPairOptions<"pem", "der">,callback: (err: Error | null,publicKey: string,privateKey: Buffer,) => void,): void
Overload 13
#generateKeyPair(type: "dsa",options: DSAKeyPairOptions<"der", "pem">,callback: (err: Error | null,publicKey: Buffer,privateKey: string,) => void,): void
Overload 14
#generateKeyPair(type: "dsa",options: DSAKeyPairOptions<"der", "der">,callback: (err: Error | null,publicKey: Buffer,privateKey: Buffer,) => void,): void
Overload 15
#generateKeyPair(type: "dsa",options: DSAKeyPairKeyObjectOptions,): void
Overload 16
#generateKeyPair(type: "ec",options: ECKeyPairOptions<"pem", "pem">,callback: (err: Error | null,publicKey: string,privateKey: string,) => void,): void
Overload 17
#generateKeyPair(type: "ec",options: ECKeyPairOptions<"pem", "der">,callback: (err: Error | null,publicKey: string,privateKey: Buffer,) => void,): void
Overload 18
#generateKeyPair(type: "ec",options: ECKeyPairOptions<"der", "pem">,callback: (err: Error | null,publicKey: Buffer,privateKey: string,) => void,): void
Overload 19
#generateKeyPair(type: "ec",options: ECKeyPairOptions<"der", "der">,callback: (err: Error | null,publicKey: Buffer,privateKey: Buffer,) => void,): void
Overload 20
#generateKeyPair(type: "ec",options: ECKeyPairKeyObjectOptions,): void
Overload 21
#generateKeyPair(type: "ed25519",options: ED25519KeyPairOptions<"pem", "pem">,callback: (err: Error | null,publicKey: string,privateKey: string,) => void,): void
Overload 22
#generateKeyPair(type: "ed25519",options: ED25519KeyPairOptions<"pem", "der">,callback: (err: Error | null,publicKey: string,privateKey: Buffer,) => void,): void
Overload 23
#generateKeyPair(type: "ed25519",options: ED25519KeyPairOptions<"der", "pem">,callback: (err: Error | null,publicKey: Buffer,privateKey: string,) => void,): void
Overload 24
#generateKeyPair(type: "ed25519",options: ED25519KeyPairOptions<"der", "der">,callback: (err: Error | null,publicKey: Buffer,privateKey: Buffer,) => void,): void
Overload 25
#generateKeyPair(type: "ed25519",options: ED25519KeyPairKeyObjectOptions | undefined,): void
Overload 26
#generateKeyPair(type: "ed448",options: ED448KeyPairOptions<"pem", "pem">,callback: (err: Error | null,publicKey: string,privateKey: string,) => void,): void
Overload 27
#generateKeyPair(type: "ed448",options: ED448KeyPairOptions<"pem", "der">,callback: (err: Error | null,publicKey: string,privateKey: Buffer,) => void,): void
Overload 28
#generateKeyPair(type: "ed448",options: ED448KeyPairOptions<"der", "pem">,callback: (err: Error | null,publicKey: Buffer,privateKey: string,) => void,): void
Overload 29
#generateKeyPair(type: "ed448",options: ED448KeyPairOptions<"der", "der">,callback: (err: Error | null,publicKey: Buffer,privateKey: Buffer,) => void,): void
Overload 30
#generateKeyPair(type: "ed448",options: ED448KeyPairKeyObjectOptions | undefined,): void
Overload 31
#generateKeyPair(type: "x25519",options: X25519KeyPairOptions<"pem", "pem">,callback: (err: Error | null,publicKey: string,privateKey: string,) => void,): void
Overload 32
#generateKeyPair(type: "x25519",options: X25519KeyPairOptions<"pem", "der">,callback: (err: Error | null,publicKey: string,privateKey: Buffer,) => void,): void
Overload 33
#generateKeyPair(type: "x25519",options: X25519KeyPairOptions<"der", "pem">,callback: (err: Error | null,publicKey: Buffer,privateKey: string,) => void,): void
Overload 34
#generateKeyPair(type: "x25519",options: X25519KeyPairOptions<"der", "der">,callback: (err: Error | null,publicKey: Buffer,privateKey: Buffer,) => void,): void
Overload 35
#generateKeyPair(type: "x25519",options: X25519KeyPairKeyObjectOptions | undefined,): void
Overload 36
#generateKeyPair(type: "x448",options: X448KeyPairOptions<"pem", "pem">,callback: (err: Error | null,publicKey: string,privateKey: string,) => void,): void
Overload 37
#generateKeyPair(type: "x448",options: X448KeyPairOptions<"pem", "der">,callback: (err: Error | null,publicKey: string,privateKey: Buffer,) => void,): void
Overload 38
#generateKeyPair(type: "x448",options: X448KeyPairOptions<"der", "pem">,callback: (err: Error | null,publicKey: Buffer,privateKey: string,) => void,): void
Overload 39
#generateKeyPair(type: "x448",options: X448KeyPairOptions<"der", "der">,callback: (err: Error | null,publicKey: Buffer,privateKey: Buffer,) => void,): void
Overload 40
#generateKeyPair(type: "x448",options: X448KeyPairKeyObjectOptions | undefined,): void