kuznyechik_multi
Version:
Шифрование ГОСТ 34.12-2018 Кузнечик. Encryption GOST 34.12-2018 Kuznyechik || Grasshopper. Support || Поддержка ESM/CommonJS/ChildProcess/browser
34 lines (33 loc) • 1.6 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
const node_crypto_1 = require("node:crypto");
const functions_cjs_1 = require("../functions.cjs");
const checkSpeed_cjs_1 = __importDefault(require("./checkSpeed.cjs"));
const TEXT = (() => {
let start = 1040;
let size = 64;
return "\n\t" + Array.from({ length: size }).reduce((acc, x, i) => {
acc.i += 1;
acc.str += String.fromCharCode(i + start) + " ";
if (acc.i === 8 || i == 31) {
acc.i = 0;
acc.str += '\n\t' + (i == 31 ? "\n\t" : '');
}
return acc;
}, { str: '', i: 0 }).str;
})();
exports.default = async (msg = TEXT, size = 0) => {
const KEY_TRUE = (0, node_crypto_1.randomBytes)(32).toString("hex");
let data = Buffer.from(msg, 'utf8');
console.log("Пример работоспособности шифра: ");
console.log("\t Ключ 32 байта (HEX) : " + KEY_TRUE);
console.log("\t Исходный текст(HEX) : " + data.toString('hex') + '');
let eBuff = await (0, functions_cjs_1.encryptAsync)(data, KEY_TRUE);
console.log("\t Шифротекст(HEX) : " + eBuff.reduce((acc, x) => acc + x.toString(16), '') + '');
console.log("\tРасшифрованный(UTF-8) : ");
console.log(new TextDecoder().decode(await (0, functions_cjs_1.decryptAsync)(eBuff, KEY_TRUE)) + '\n\n');
await (0, checkSpeed_cjs_1.default)(size);
};