decord/source/8818_pbkdf2Init.js
2026-07-27 11:26:19 +00:00

106 lines
3.5 KiB
JavaScript

// Module ID: 8818
// Function ID: 69804
// Name: pbkdf2Init
// Dependencies: [5, 8816, 8815, 8819]
// Exports: pbkdf2, pbkdf2Async
// Module 8818 (pbkdf2Init)
import asyncGeneratorStep from "asyncGeneratorStep";
function pbkdf2Init(sha256, B, B, arg3) {
let asyncTick;
let c;
let dkLen;
require(8816) /* number */.hash(sha256);
({ c, dkLen, asyncTick } = require(8815) /* asciiToBase16 */.checkOpts({ dkLen: 32, asyncTick: 10 }, arg3));
require(8816) /* number */.number(c);
require(8816) /* number */.number(dkLen);
require(8816) /* number */.number(asyncTick);
if (c < 1) {
const _Error = Error;
const error = new Error("PBKDF2: iterations (c) should be >= 1");
throw error;
} else {
const _Uint8Array = Uint8Array;
const toBytesResult = require(8815) /* asciiToBase16 */.toBytes(B);
const uint8Array = new Uint8Array(dkLen);
const hmac = require(8819) /* _isNativeReflectConstruct */.hmac;
let obj = hmac.create(sha256, toBytesResult);
const toBytesResult1 = require(8815) /* asciiToBase16 */.toBytes(B);
obj = { c, dkLen, asyncTick, DK: uint8Array };
obj.PRF = obj;
obj.PRFSalt = obj._cloneInto().update(toBytesResult1);
return obj;
}
const checkOptsResult = require(8815) /* asciiToBase16 */.checkOpts({ dkLen: 32, asyncTick: 10 }, arg3);
}
function pbkdf2Output(PRF, PRFSalt, DK, destroy3, uint8Array1) {
PRF.destroy();
PRFSalt.destroy();
if (destroy3) {
destroy3.destroy();
}
uint8Array1.fill(0);
return DK;
}
function _pbkdf2Async() {
// CreateGeneratorClosureLongIndex (0x67)
const obj = asyncGeneratorStep(tmp);
return obj(...arguments);
}
export const pbkdf2 = function pbkdf2(sha256, B, B, arg3) {
let DK;
let PRF;
let PRFSalt;
let c;
let dkLen;
({ c, dkLen, DK, PRF, PRFSalt } = pbkdf2Init(sha256, B, B, arg3));
const uint8Array = new Uint8Array(4);
const view = require(8815) /* asciiToBase16 */.createView(uint8Array);
const uint8Array1 = new Uint8Array(PRF.outputLen);
let num = 1;
let num2 = 0;
let tmp4;
if (0 < dkLen) {
do {
let subarrayResult = DK.subarray(num2, num2 + PRF.outputLen);
let setInt32Result = view.setInt32(0, num, false);
let _cloneIntoResult = PRFSalt._cloneInto(tmp3);
let updateResult = _cloneIntoResult.update(uint8Array);
let digestIntoResult = updateResult.digestInto(uint8Array1);
let result = subarrayResult.set(uint8Array1.subarray(0, subarrayResult.length));
let tmp8 = num;
let tmp9 = num2;
let num3 = 1;
if (1 < c) {
do {
let _cloneIntoResult1 = PRF._cloneInto(_cloneIntoResult);
let updateResult1 = _cloneIntoResult1.update(uint8Array1);
let digestIntoResult1 = updateResult1.digestInto(uint8Array1);
let num4 = 0;
let num5 = 0;
if (0 < subarrayResult.length) {
do {
subarrayResult[num4] = subarrayResult[num4] ^ uint8Array1[num4];
num4 = num4 + 1;
num5 = num4;
length = subarrayResult.length;
} while (num4 < length);
}
num3 = num3 + 1;
let tmp11 = num5;
} while (num3 < c);
}
num = num + 1;
num2 = num2 + PRF.outputLen;
tmp3 = _cloneIntoResult;
tmp4 = _cloneIntoResult;
} while (num2 < dkLen);
}
pbkdf2Output(PRF, PRFSalt, DK, tmp4, uint8Array1);
return DK;
};
export const pbkdf2Async = function pbkdf2Async(arg0, arg1, arg2, arg3) {
return _pbkdf2Async(...arguments);
};