it-tools/src/tools/rsa-key-pair-generator/rsa-key-pair-generator.service.ts
2023-03-10 18:16:55 +01:00

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),
};
}