decord/source/8930_pbkdf2Init.js

107 lines
3.5 KiB
JavaScript
Raw Normal View History

2026-07-24 07:16:23 +00:00
// Module ID: 8930
// Function ID: 70324
2026-07-20 16:05:17 +00:00
// Name: pbkdf2Init
2026-07-24 07:16:23 +00:00
// Dependencies: [5, 8928, 8927, 8931]
2026-07-20 16:05:17 +00:00
// Exports: pbkdf2, pbkdf2Async
2026-07-24 07:16:23 +00:00
// Module 8930 (pbkdf2Init)
2026-07-23 10:11:24 +00:00
import asyncGeneratorStep from "asyncGeneratorStep";
2026-07-20 16:05:17 +00:00
function pbkdf2Init(sha256, B, B, arg3) {
let asyncTick;
let c;
let dkLen;
2026-07-24 07:16:23 +00:00
require(8928) /* number */.hash(sha256);
({ c, dkLen, asyncTick } = require(8927) /* asciiToBase16 */.checkOpts({ dkLen: 32, asyncTick: 10 }, arg3));
require(8928) /* number */.number(c);
require(8928) /* number */.number(dkLen);
require(8928) /* number */.number(asyncTick);
2026-07-20 16:05:17 +00:00
if (c < 1) {
const _Error = Error;
const error = new Error("PBKDF2: iterations (c) should be >= 1");
throw error;
} else {
const _Uint8Array = Uint8Array;
2026-07-24 07:16:23 +00:00
const toBytesResult = require(8927) /* asciiToBase16 */.toBytes(B);
2026-07-20 16:05:17 +00:00
const uint8Array = new Uint8Array(dkLen);
2026-07-24 07:16:23 +00:00
const hmac = require(8931) /* _isNativeReflectConstruct */.hmac;
2026-07-20 16:05:17 +00:00
let obj = hmac.create(sha256, toBytesResult);
2026-07-24 07:16:23 +00:00
const toBytesResult1 = require(8927) /* asciiToBase16 */.toBytes(B);
2026-07-20 16:05:17 +00:00
obj = { c, dkLen, asyncTick, DK: uint8Array };
obj.PRF = obj;
obj.PRFSalt = obj._cloneInto().update(toBytesResult1);
return obj;
}
2026-07-24 07:16:23 +00:00
const checkOptsResult = require(8927) /* asciiToBase16 */.checkOpts({ dkLen: 32, asyncTick: 10 }, arg3);
2026-07-20 16:05:17 +00:00
}
function pbkdf2Output(PRF, PRFSalt, DK, destroy3, uint8Array1) {
PRF.destroy();
PRFSalt.destroy();
if (destroy3) {
destroy3.destroy();
}
uint8Array1.fill(0);
return DK;
}
function _pbkdf2Async() {
// CreateGeneratorClosureLongIndex (0x67)
2026-07-23 10:11:24 +00:00
const obj = asyncGeneratorStep(tmp);
2026-07-20 16:05:17 +00:00
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);
2026-07-24 07:16:23 +00:00
const view = require(8927) /* asciiToBase16 */.createView(uint8Array);
2026-07-20 16:05:17 +00:00
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;
2026-07-23 10:11:24 +00:00
length = subarrayResult.length;
2026-07-20 16:05:17 +00:00
} while (num4 < length);
}
num3 = num3 + 1;
let tmp11 = num5;
} while (num3 < c);
}
num = num + 1;
num2 = num2 + PRF.outputLen;
2026-07-23 10:11:24 +00:00
tmp3 = _cloneIntoResult;
2026-07-20 16:05:17 +00:00
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);
};