in packages/utils-crypto/src/sha256.ts [176:210]
private _int32(data: Int32Array, offset?: number): void {
let { A, B, C, D, E, F, G, H, _W: W } = this;
let i = 0;
offset = offset!! | 0;
while (i < N.inputWords) {
W[i++] = swap32(data[offset++]);
}
for (i = N.inputWords; i < N.workWords; i++) {
W[i] = (gamma1(W[i - 2]) + W[i - 7] + gamma0(W[i - 15]) + W[i - 16]) | 0;
}
for (i = 0; i < N.workWords; i++) {
const T1 = (H + sigma1(E) + ch(E, F, G) + K[i] + W[i]) | 0;
const T2 = (sigma0(A) + maj(A, B, C)) | 0;
H = G;
G = F;
F = E;
E = (D + T1) | 0;
D = C;
C = B;
B = A;
A = (T1 + T2) | 0;
}
this.A = (A + this.A) | 0;
this.B = (B + this.B) | 0;
this.C = (C + this.C) | 0;
this.D = (D + this.D) | 0;
this.E = (E + this.E) | 0;
this.F = (F + this.F) | 0;
this.G = (G + this.G) | 0;
this.H = (H + this.H) | 0;
}