UNPKG

cnpmcore

Version:

Private NPM Registry for Enterprise

36 lines 2.65 kB
import { generateKeyPairSync } from 'node:crypto'; import NodeRSA from 'node-rsa'; // generate rsa key pair export function genRSAKeys() { const key = generateKeyPairSync('rsa', { modulusLength: 512, }); // export({ format: 'pem' }) returns string; .toString('base64') is a no-op on string. // Use type assertion to fix TS2554 on Node 18 type definitions. const publicKey = key.publicKey.export({ type: 'pkcs1', format: 'pem', }); const privateKey = key.privateKey.export({ type: 'pkcs1', format: 'pem', }); return { publicKey, privateKey }; } // encrypt rsa private key export function encryptRSA(publicKey, plainText) { const key = new NodeRSA(publicKey, 'pkcs1-public-pem', { encryptionScheme: 'pkcs1', environment: 'browser', }); return key.encrypt(plainText, 'base64'); } // decrypt rsa private key export function decryptRSA(privateKey, encryptedBase64) { const key = new NodeRSA(privateKey, 'pkcs1-private-pem', { encryptionScheme: 'pkcs1', environment: 'browser', }); return key.decrypt(encryptedBase64, 'utf8'); } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ3J5cHRvVXRpbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL2FwcC9jb21tb24vQ3J5cHRvVXRpbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFFbEQsT0FBTyxPQUFPLE1BQU0sVUFBVSxDQUFDO0FBRS9CLHdCQUF3QjtBQUN4QixNQUFNLFVBQVUsVUFBVTtJQUN4QixNQUFNLEdBQUcsR0FBRyxtQkFBbUIsQ0FBQyxLQUFLLEVBQUU7UUFDckMsYUFBYSxFQUFFLEdBQUc7S0FDbkIsQ0FBQyxDQUFDO0lBQ0gsc0ZBQXNGO0lBQ3RGLGdFQUFnRTtJQUNoRSxNQUFNLFNBQVMsR0FBRyxHQUFHLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQztRQUNyQyxJQUFJLEVBQUUsT0FBTztRQUNiLE1BQU0sRUFBRSxLQUFLO0tBQ2QsQ0FBVyxDQUFDO0lBQ2IsTUFBTSxVQUFVLEdBQUcsR0FBRyxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUM7UUFDdkMsSUFBSSxFQUFFLE9BQU87UUFDYixNQUFNLEVBQUUsS0FBSztLQUNkLENBQVcsQ0FBQztJQUNiLE9BQU8sRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLENBQUM7QUFDbkMsQ0FBQztBQUVELDBCQUEwQjtBQUMxQixNQUFNLFVBQVUsVUFBVSxDQUFDLFNBQWlCLEVBQUUsU0FBaUI7SUFDN0QsTUFBTSxHQUFHLEdBQUcsSUFBSSxPQUFPLENBQUMsU0FBUyxFQUFFLGtCQUFrQixFQUFFO1FBQ3JELGdCQUFnQixFQUFFLE9BQU87UUFDekIsV0FBVyxFQUFFLFNBQVM7S0FDdkIsQ0FBQyxDQUFDO0lBQ0gsT0FBTyxHQUFHLENBQUMsT0FBTyxDQUFDLFNBQVMsRUFBRSxRQUFRLENBQUMsQ0FBQztBQUMxQyxDQUFDO0FBRUQsMEJBQTBCO0FBQzFCLE1BQU0sVUFBVSxVQUFVLENBQUMsVUFBa0IsRUFBRSxlQUF1QjtJQUNwRSxNQUFNLEdBQUcsR0FBRyxJQUFJLE9BQU8sQ0FBQyxVQUFVLEVBQUUsbUJBQW1CLEVBQUU7UUFDdkQsZ0JBQWdCLEVBQUUsT0FBTztRQUN6QixXQUFXLEVBQUUsU0FBUztLQUN2QixDQUFDLENBQUM7SUFDSCxPQUFPLEdBQUcsQ0FBQyxPQUFPLENBQUMsZUFBZSxFQUFFLE1BQU0sQ0FBQyxDQUFDO0FBQzlDLENBQUMifQ==