@logismika/crypto
Version:
Crypto algorithms library
28 lines (27 loc) • 932 B
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.GOST_Kuz_L_testPackage = exports.GOST_Kuz_L = void 0;
const consts_1 = require("./consts");
const GOST_Kuz_GF_mul_1 = require("./GOST_Kuz_GF_mul");
const utils_1 = require("./utils");
const GOST_Kuz_L = (in_data) => {
let result = in_data.slice();
for (let i = 0; i < 16; i += 1) {
result = GOST_Kuz_R(result);
}
return result;
};
exports.GOST_Kuz_L = GOST_Kuz_L;
const GOST_Kuz_R = (in_data) => {
let a_15 = 0;
const internal = new Uint8Array(16);
for (let i = 15; i >= 0; i -= 1) {
if (i > 0) {
internal[i - 1] = in_data[i];
}
a_15 ^= (0, GOST_Kuz_GF_mul_1.GOST_Kuz_GF_mul)((0, utils_1.toByte)(in_data[i]), (0, utils_1.toByte)(consts_1.l_vec[i]));
}
internal[15] = (0, utils_1.toByte)(a_15);
return internal;
};
exports.GOST_Kuz_L_testPackage = { GOST_Kuz_R };