blob: 1cb1f1ae76310ec92c1abdecff373ede4fdb2ba0 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
|
import { pki } from 'node-forge';
import workerScript from 'node-forge/dist/prime.worker.min?url';
export { generateKeyPair };
function generateRawPairs({ bits = 2048 }) {
return new Promise<pki.rsa.KeyPair>((resolve, reject) =>
pki.rsa.generateKeyPair({ bits, workerScript }, (err, keyPair) => {
if (err) {
reject(err);
return;
}
resolve(keyPair);
}),
);
}
async function generateKeyPair(config: { bits?: number } = {}) {
const { privateKey, publicKey } = await generateRawPairs(config);
return {
publicKeyPem: pki.publicKeyToPem(publicKey),
privateKeyPem: pki.privateKeyToPem(privateKey),
};
}
|