PHP WebShell

Текущая директория: /opt/BitGoJS/modules/sdk-core/dist/src/bitgo/trading/network

Просмотр файла: encrypt-aes-gcm.js

"use strict";
var __importDefault = (this && this.__importDefault) || function (mod) {
    return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports._encryptAesGcm = _encryptAesGcm;
const crypto_1 = __importDefault(require("crypto"));
const utils_1 = require("./utils");
/**
 * Encrypts a string using AES-GCM
 * @param {string | Buffer} secret The secret to use for encryption
 * @param {string} text The text to encrypt
 * @returns {string} The encrypted text
 */
async function _encryptAesGcm(secret, text) {
    const version = Buffer.alloc(1, 1);
    const salt = crypto_1.default.randomBytes(16);
    const iv = crypto_1.default.randomBytes(12);
    const key = await (0, utils_1.computeKey)(secret, salt);
    const cipher = crypto_1.default.createCipheriv('aes-256-gcm', key, iv);
    const encrypted = Buffer.concat([cipher.update(text, 'utf8'), cipher.final()]);
    const authTag = cipher.getAuthTag();
    return Buffer.concat([version, salt, iv, encrypted, authTag]).toString('base64');
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW5jcnlwdC1hZXMtZ2NtLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2JpdGdvL3RyYWRpbmcvbmV0d29yay9lbmNyeXB0LWFlcy1nY20udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFTQSx3Q0FjQztBQXZCRCxvREFBNEI7QUFDNUIsbUNBQXFDO0FBRXJDOzs7OztHQUtHO0FBQ0ksS0FBSyxVQUFVLGNBQWMsQ0FBQyxNQUF1QixFQUFFLElBQVk7SUFDeEUsTUFBTSxPQUFPLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFFbkMsTUFBTSxJQUFJLEdBQUcsZ0JBQU0sQ0FBQyxXQUFXLENBQUMsRUFBRSxDQUFDLENBQUM7SUFFcEMsTUFBTSxFQUFFLEdBQUcsZ0JBQU0sQ0FBQyxXQUFXLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDbEMsTUFBTSxHQUFHLEdBQUcsTUFBTSxJQUFBLGtCQUFVLEVBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxDQUFDO0lBRTNDLE1BQU0sTUFBTSxHQUFHLGdCQUFNLENBQUMsY0FBYyxDQUFDLGFBQWEsRUFBRSxHQUFHLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFDN0QsTUFBTSxTQUFTLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLE1BQU0sQ0FBQyxFQUFFLE1BQU0sQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFFL0UsTUFBTSxPQUFPLEdBQUcsTUFBTSxDQUFDLFVBQVUsRUFBRSxDQUFDO0lBRXBDLE9BQU8sTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLE9BQU8sRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLFNBQVMsRUFBRSxPQUFPLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsQ0FBQztBQUNuRixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGNyeXB0byBmcm9tICdjcnlwdG8nO1xuaW1wb3J0IHsgY29tcHV0ZUtleSB9IGZyb20gJy4vdXRpbHMnO1xuXG4vKipcbiAqIEVuY3J5cHRzIGEgc3RyaW5nIHVzaW5nIEFFUy1HQ01cbiAqIEBwYXJhbSB7c3RyaW5nIHwgQnVmZmVyfSBzZWNyZXQgVGhlIHNlY3JldCB0byB1c2UgZm9yIGVuY3J5cHRpb25cbiAqIEBwYXJhbSB7c3RyaW5nfSB0ZXh0IFRoZSB0ZXh0IHRvIGVuY3J5cHRcbiAqIEByZXR1cm5zIHtzdHJpbmd9IFRoZSBlbmNyeXB0ZWQgdGV4dFxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gX2VuY3J5cHRBZXNHY20oc2VjcmV0OiBzdHJpbmcgfCBCdWZmZXIsIHRleHQ6IHN0cmluZyk6IFByb21pc2U8c3RyaW5nPiB7XG4gIGNvbnN0IHZlcnNpb24gPSBCdWZmZXIuYWxsb2MoMSwgMSk7XG5cbiAgY29uc3Qgc2FsdCA9IGNyeXB0by5yYW5kb21CeXRlcygxNik7XG5cbiAgY29uc3QgaXYgPSBjcnlwdG8ucmFuZG9tQnl0ZXMoMTIpO1xuICBjb25zdCBrZXkgPSBhd2FpdCBjb21wdXRlS2V5KHNlY3JldCwgc2FsdCk7XG5cbiAgY29uc3QgY2lwaGVyID0gY3J5cHRvLmNyZWF0ZUNpcGhlcml2KCdhZXMtMjU2LWdjbScsIGtleSwgaXYpO1xuICBjb25zdCBlbmNyeXB0ZWQgPSBCdWZmZXIuY29uY2F0KFtjaXBoZXIudXBkYXRlKHRleHQsICd1dGY4JyksIGNpcGhlci5maW5hbCgpXSk7XG5cbiAgY29uc3QgYXV0aFRhZyA9IGNpcGhlci5nZXRBdXRoVGFnKCk7XG5cbiAgcmV0dXJuIEJ1ZmZlci5jb25jYXQoW3ZlcnNpb24sIHNhbHQsIGl2LCBlbmNyeXB0ZWQsIGF1dGhUYWddKS50b1N0cmluZygnYmFzZTY0Jyk7XG59XG4iXX0=

Выполнить команду


Для локальной разработки. Не используйте в интернете!