payload
Version:
Node, React and MongoDB Headless CMS and Application Framework
48 lines (47 loc) • 3.9 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
function _export(target, all) {
for(var name in all)Object.defineProperty(target, name, {
enumerable: true,
get: all[name]
});
}
_export(exports, {
decrypt: function() {
return decrypt;
},
encrypt: function() {
return encrypt;
}
});
const _crypto = /*#__PURE__*/ _interop_require_default(require("crypto"));
function _interop_require_default(obj) {
return obj && obj.__esModule ? obj : {
default: obj
};
}
const algorithm = 'aes-256-ctr';
function encrypt(text) {
const iv = _crypto.default.randomBytes(16);
const cipher = _crypto.default.createCipheriv(algorithm, this.secret, iv);
const encrypted = Buffer.concat([
cipher.update(text),
cipher.final()
]);
const ivString = iv.toString('hex');
const encryptedString = encrypted.toString('hex');
return `${ivString}${encryptedString}`;
}
function decrypt(hash) {
const iv = hash.slice(0, 32);
const content = hash.slice(32);
const decipher = _crypto.default.createDecipheriv(algorithm, this.secret, Buffer.from(iv, 'hex'));
const decrypted = Buffer.concat([
decipher.update(Buffer.from(content, 'hex')),
decipher.final()
]);
return decrypted.toString();
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9hdXRoL2NyeXB0by50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgY3J5cHRvIGZyb20gJ2NyeXB0bydcblxuY29uc3QgYWxnb3JpdGhtID0gJ2Flcy0yNTYtY3RyJ1xuXG5leHBvcnQgZnVuY3Rpb24gZW5jcnlwdCh0ZXh0OiBzdHJpbmcpOiBzdHJpbmcge1xuICBjb25zdCBpdiA9IGNyeXB0by5yYW5kb21CeXRlcygxNilcbiAgY29uc3QgY2lwaGVyID0gY3J5cHRvLmNyZWF0ZUNpcGhlcml2KGFsZ29yaXRobSwgdGhpcy5zZWNyZXQsIGl2KVxuXG4gIGNvbnN0IGVuY3J5cHRlZCA9IEJ1ZmZlci5jb25jYXQoW2NpcGhlci51cGRhdGUodGV4dCksIGNpcGhlci5maW5hbCgpXSlcblxuICBjb25zdCBpdlN0cmluZyA9IGl2LnRvU3RyaW5nKCdoZXgnKVxuICBjb25zdCBlbmNyeXB0ZWRTdHJpbmcgPSBlbmNyeXB0ZWQudG9TdHJpbmcoJ2hleCcpXG5cbiAgcmV0dXJuIGAke2l2U3RyaW5nfSR7ZW5jcnlwdGVkU3RyaW5nfWBcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGRlY3J5cHQoaGFzaDogc3RyaW5nKTogc3RyaW5nIHtcbiAgY29uc3QgaXYgPSBoYXNoLnNsaWNlKDAsIDMyKVxuICBjb25zdCBjb250ZW50ID0gaGFzaC5zbGljZSgzMilcblxuICBjb25zdCBkZWNpcGhlciA9IGNyeXB0by5jcmVhdGVEZWNpcGhlcml2KGFsZ29yaXRobSwgdGhpcy5zZWNyZXQsIEJ1ZmZlci5mcm9tKGl2LCAnaGV4JykpXG5cbiAgY29uc3QgZGVjcnlwdGVkID0gQnVmZmVyLmNvbmNhdChbZGVjaXBoZXIudXBkYXRlKEJ1ZmZlci5mcm9tKGNvbnRlbnQsICdoZXgnKSksIGRlY2lwaGVyLmZpbmFsKCldKVxuXG4gIHJldHVybiBkZWNyeXB0ZWQudG9TdHJpbmcoKVxufVxuIl0sIm5hbWVzIjpbImRlY3J5cHQiLCJlbmNyeXB0IiwiYWxnb3JpdGhtIiwidGV4dCIsIml2IiwiY3J5cHRvIiwicmFuZG9tQnl0ZXMiLCJjaXBoZXIiLCJjcmVhdGVDaXBoZXJpdiIsInNlY3JldCIsImVuY3J5cHRlZCIsIkJ1ZmZlciIsImNvbmNhdCIsInVwZGF0ZSIsImZpbmFsIiwiaXZTdHJpbmciLCJ0b1N0cmluZyIsImVuY3J5cHRlZFN0cmluZyIsImhhc2giLCJzbGljZSIsImNvbnRlbnQiLCJkZWNpcGhlciIsImNyZWF0ZURlY2lwaGVyaXYiLCJmcm9tIiwiZGVjcnlwdGVkIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7OztJQWdCZ0JBLE9BQU87ZUFBUEE7O0lBWkFDLE9BQU87ZUFBUEE7OzsrREFKRzs7Ozs7O0FBRW5CLE1BQU1DLFlBQVk7QUFFWCxTQUFTRCxRQUFRRSxJQUFZO0lBQ2xDLE1BQU1DLEtBQUtDLGVBQU0sQ0FBQ0MsV0FBVyxDQUFDO0lBQzlCLE1BQU1DLFNBQVNGLGVBQU0sQ0FBQ0csY0FBYyxDQUFDTixXQUFXLElBQUksQ0FBQ08sTUFBTSxFQUFFTDtJQUU3RCxNQUFNTSxZQUFZQyxPQUFPQyxNQUFNLENBQUM7UUFBQ0wsT0FBT00sTUFBTSxDQUFDVjtRQUFPSSxPQUFPTyxLQUFLO0tBQUc7SUFFckUsTUFBTUMsV0FBV1gsR0FBR1ksUUFBUSxDQUFDO0lBQzdCLE1BQU1DLGtCQUFrQlAsVUFBVU0sUUFBUSxDQUFDO0lBRTNDLE9BQU8sQ0FBQyxFQUFFRCxTQUFTLEVBQUVFLGdCQUFnQixDQUFDO0FBQ3hDO0FBRU8sU0FBU2pCLFFBQVFrQixJQUFZO0lBQ2xDLE1BQU1kLEtBQUtjLEtBQUtDLEtBQUssQ0FBQyxHQUFHO0lBQ3pCLE1BQU1DLFVBQVVGLEtBQUtDLEtBQUssQ0FBQztJQUUzQixNQUFNRSxXQUFXaEIsZUFBTSxDQUFDaUIsZ0JBQWdCLENBQUNwQixXQUFXLElBQUksQ0FBQ08sTUFBTSxFQUFFRSxPQUFPWSxJQUFJLENBQUNuQixJQUFJO0lBRWpGLE1BQU1vQixZQUFZYixPQUFPQyxNQUFNLENBQUM7UUFBQ1MsU0FBU1IsTUFBTSxDQUFDRixPQUFPWSxJQUFJLENBQUNILFNBQVM7UUFBU0MsU0FBU1AsS0FBSztLQUFHO0lBRWhHLE9BQU9VLFVBQVVSLFFBQVE7QUFDM0IifQ==