in packages/sha256-js/src/jsSha256.ts [11:31]
constructor(secret?: SourceData) {
if (secret) {
this.outer = new RawSha256();
const inner = bufferFromSecret(secret);
const outer = new Uint8Array(BLOCK_SIZE);
outer.set(inner);
for (let i = 0; i < BLOCK_SIZE; i++) {
inner[i] ^= 0x36;
outer[i] ^= 0x5c;
}
this.hash.update(inner);
this.outer.update(outer);
// overwrite the copied key in memory
for (let i = 0; i < inner.byteLength; i++) {
inner[i] = 0;
}
}
}