@onboardbase/cli
Version:
[](https://www.npmjs.com/package/@onboardbase/cli) [](https://www.npmjs.com/package/@onboardbase/cli) [ • 1.4 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.encryptStr = exports.generateKeyPairForDC = void 0;
const nacl = require("tweetnacl");
const base64_1 = require("@stablelib/base64");
const utf8_1 = require("@stablelib/utf8");
const convStrToArr = (str) => (0, base64_1.decode)(str);
const convArrToStr = (arr) => (0, base64_1.encode)(arr);
const generateKeyPairForDC = () => {
const newPair = nacl.box.keyPair();
return {
publicKey: convArrToStr(newPair.publicKey),
secretKey: convArrToStr(newPair.secretKey),
};
};
exports.generateKeyPairForDC = generateKeyPairForDC;
function encryptDCM(message, sessionId) {
try {
const keys = sessionId;
const sharedKey = nacl.box.before(convStrToArr(keys.receiverPK), convStrToArr(keys.secretKey));
const oneTimecode = nacl.randomBytes(24);
//this might be decode instead of encode
const cipherText = nacl.box.after((0, utf8_1.encode)(message), oneTimecode, sharedKey);
return {
cipherText: convArrToStr(cipherText),
oneTimecode: convArrToStr(oneTimecode),
};
}
catch (error) {
console.log(error);
}
}
const encryptStr = (message, receiverPublicKey, secretKey) => {
return JSON.stringify(encryptDCM(message, { receiverPK: receiverPublicKey, secretKey }));
};
exports.encryptStr = encryptStr;