UNPKG

ltijs

Version:

Easily turn your web application into a LTI 1.3 Learning Tool.

24 lines • 1.4 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.encryptAes256 = encryptAes256; exports.decryptAes256 = decryptAes256; const node_crypto_1 = __importDefault(require("node:crypto")); // SHA-256-derived key, AES-256-CBC, random IV -- ported as-is from legacy's Encrypt/Decrypt methods, // since MongoLegacyDatabaseManager must keep decrypting data written by existing deployments. function encryptAes256(data, secret) { const key = node_crypto_1.default.createHash('sha256').update(secret).digest().subarray(0, 32); const iv = node_crypto_1.default.randomBytes(16); const cipher = node_crypto_1.default.createCipheriv('aes-256-cbc', key, iv); const encrypted = Buffer.concat([cipher.update(data), cipher.final()]); return { iv: iv.toString('hex'), data: encrypted.toString('hex') }; } function decryptAes256(data, iv, secret) { const key = node_crypto_1.default.createHash('sha256').update(secret).digest().subarray(0, 32); const decipher = node_crypto_1.default.createDecipheriv('aes-256-cbc', key, Buffer.from(iv, 'hex')); const decrypted = Buffer.concat([decipher.update(Buffer.from(data, 'hex')), decipher.final()]); return decrypted.toString(); } //# sourceMappingURL=aes-encryption.js.map