cnpmcore
Version:
43 lines • 2.95 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.decryptRSA = exports.encryptRSA = exports.genRSAKeys = void 0;
const crypto_1 = require("crypto");
const node_rsa_1 = __importDefault(require("node-rsa"));
// generate rsa key pair
function genRSAKeys() {
const key = (0, crypto_1.generateKeyPairSync)('rsa', {
modulusLength: 512,
});
const publicKey = key.publicKey.export({
type: 'pkcs1',
format: 'pem',
}).toString('base64');
const privateKey = key.privateKey.export({
type: 'pkcs1',
format: 'pem',
}).toString('base64');
return { publicKey, privateKey };
}
exports.genRSAKeys = genRSAKeys;
// encrypt rsa private key
function encryptRSA(publicKey, plainText) {
const key = new node_rsa_1.default(publicKey, 'pkcs1-public-pem', {
encryptionScheme: 'pkcs1',
environment: 'browser',
});
return key.encrypt(plainText, 'base64');
}
exports.encryptRSA = encryptRSA;
// decrypt rsa private key
function decryptRSA(privateKey, encryptedBase64) {
const key = new node_rsa_1.default(privateKey, 'pkcs1-private-pem', {
encryptionScheme: 'pkcs1',
environment: 'browser',
});
return key.decrypt(encryptedBase64, 'utf8');
}
exports.decryptRSA = decryptRSA;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ3J5cHRvVXRpbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL2FwcC9jb21tb24vQ3J5cHRvVXRpbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSxtQ0FBNkM7QUFDN0Msd0RBQStCO0FBRS9CLHdCQUF3QjtBQUN4QixTQUFnQixVQUFVO0lBQ3hCLE1BQU0sR0FBRyxHQUFHLElBQUEsNEJBQW1CLEVBQUMsS0FBSyxFQUFFO1FBQ3JDLGFBQWEsRUFBRSxHQUFHO0tBQ25CLENBQUMsQ0FBQztJQUNILE1BQU0sU0FBUyxHQUFHLEdBQUcsQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDO1FBQ3JDLElBQUksRUFBRSxPQUFPO1FBQ2IsTUFBTSxFQUFFLEtBQUs7S0FDZCxDQUFDLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ3RCLE1BQU0sVUFBVSxHQUFHLEdBQUcsQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDO1FBQ3ZDLElBQUksRUFBRSxPQUFPO1FBQ2IsTUFBTSxFQUFFLEtBQUs7S0FDZCxDQUFDLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ3RCLE9BQU8sRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLENBQUM7QUFDbkMsQ0FBQztBQWJELGdDQWFDO0FBRUQsMEJBQTBCO0FBQzFCLFNBQWdCLFVBQVUsQ0FBQyxTQUFpQixFQUFFLFNBQWlCO0lBQzdELE1BQU0sR0FBRyxHQUFHLElBQUksa0JBQU8sQ0FBQyxTQUFTLEVBQUUsa0JBQWtCLEVBQUU7UUFDckQsZ0JBQWdCLEVBQUUsT0FBTztRQUN6QixXQUFXLEVBQUUsU0FBUztLQUN2QixDQUFDLENBQUM7SUFDSCxPQUFPLEdBQUcsQ0FBQyxPQUFPLENBQUMsU0FBUyxFQUFFLFFBQVEsQ0FBQyxDQUFDO0FBQzFDLENBQUM7QUFORCxnQ0FNQztBQUVELDBCQUEwQjtBQUMxQixTQUFnQixVQUFVLENBQUMsVUFBa0IsRUFBRSxlQUF1QjtJQUNwRSxNQUFNLEdBQUcsR0FBRyxJQUFJLGtCQUFPLENBQUMsVUFBVSxFQUFFLG1CQUFtQixFQUFFO1FBQ3ZELGdCQUFnQixFQUFFLE9BQU87UUFDekIsV0FBVyxFQUFFLFNBQVM7S0FDdkIsQ0FBQyxDQUFDO0lBQ0gsT0FBTyxHQUFHLENBQUMsT0FBTyxDQUFDLGVBQWUsRUFBRSxNQUFNLENBQUMsQ0FBQztBQUM5QyxDQUFDO0FBTkQsZ0NBTUMifQ==