34 lines
910 B
JavaScript
34 lines
910 B
JavaScript
import * as crypto from "node:crypto";
|
|
import * as util from "node:util";
|
|
const generateKeyPair = util.promisify(crypto.generateKeyPair);
|
|
export async function genRsaKeyPair(modulusLength = 2048) {
|
|
return await generateKeyPair("rsa", {
|
|
modulusLength,
|
|
publicKeyEncoding: {
|
|
type: "spki",
|
|
format: "pem"
|
|
},
|
|
privateKeyEncoding: {
|
|
type: "pkcs8",
|
|
format: "pem",
|
|
cipher: undefined,
|
|
passphrase: undefined
|
|
}
|
|
});
|
|
}
|
|
export async function genEcKeyPair(namedCurve = "prime256v1") {
|
|
return await generateKeyPair("ec", {
|
|
namedCurve,
|
|
publicKeyEncoding: {
|
|
type: "spki",
|
|
format: "pem"
|
|
},
|
|
privateKeyEncoding: {
|
|
type: "pkcs8",
|
|
format: "pem",
|
|
cipher: undefined,
|
|
passphrase: undefined
|
|
}
|
|
});
|
|
}
|