mirror of
https://github.com/CorentinTh/it-tools.git
synced 2025-05-24 02:02:35 -04:00
26 lines
582 B
TypeScript
26 lines
582 B
TypeScript
import { pki } from 'node-forge';
|
|
|
|
export { generateKeyPair };
|
|
|
|
function generateRawPairs({ bits = 2048 }) {
|
|
return new Promise<pki.rsa.KeyPair>((resolve, reject) =>
|
|
pki.rsa.generateKeyPair({ bits }, (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),
|
|
};
|
|
}
|