private _int32()

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;
  }