UNPKG

citi-hub-session-engine

Version:

Module for authentication methods for CITI hub

38 lines (28 loc) 1.32 kB
const { publicEncrypt, createDecipheriv, privateDecrypt } = require("crypto"); const { logger } = require("../utils/Logger"); const decrypt = (encryptedData, privateKey, publicKey, aesKeyH, ivH) => { try { logger.info(`Initiating Decrypt`); const aesKey = Buffer.from(aesKeyH, "hex"); const iv = Buffer.from(ivH, "hex"); logger.info("aesKey", aesKey); logger.info("iv", iv); // Encriptar la clave AES con la llave pública RSA const encryptedAesKey = publicEncrypt(publicKey, aesKey); logger.info("encryptedAesKey", encryptedAesKey); logger.info("Encrypted Data:", encryptedData); logger.info("Encrypted AES Key:", encryptedAesKey.toString("base64")); logger.info("IV:", iv.toString("base64")); const decryptedAesKey = privateDecrypt(privateKey, encryptedAesKey); // Desencriptar los datos con AES const decipher = createDecipheriv("aes-256-cbc", decryptedAesKey, iv); let decryptedData = decipher.update(encryptedData, "base64", "utf8"); decryptedData += decipher.final("utf8"); logger.info(`Decrypted Data: ${decryptedData}`); return JSON.parse(decryptedData); } catch (e) { logger.error(`An error occurred while decrypting the data :: ${e}`); return null; } }; module.exports = decrypt;