UNPKG

payload

Version:

Node, React and MongoDB Headless CMS and Application Framework

48 lines (47 loc) 3.9 kB
"use strict"; 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==