in lib/src/sha256.dart [94:139]
void updateHash(Uint32List chunk) {
assert(chunk.length == 16);
// Prepare message schedule.
for (var i = 0; i < 16; i++) {
_extended[i] = chunk[i];
}
for (var i = 16; i < 64; i++) {
_extended[i] = add32(add32(_ssig1(_extended[i - 2]), _extended[i - 7]),
add32(_ssig0(_extended[i - 15]), _extended[i - 16]));
}
// Shuffle around the bits.
var a = _digest[0];
var b = _digest[1];
var c = _digest[2];
var d = _digest[3];
var e = _digest[4];
var f = _digest[5];
var g = _digest[6];
var h = _digest[7];
for (var i = 0; i < 64; i++) {
var temp1 = add32(add32(h, _bsig1(e)),
add32(_ch(e, f, g), add32(_noise[i], _extended[i])));
var temp2 = add32(_bsig0(a), _maj(a, b, c));
h = g;
g = f;
f = e;
e = add32(d, temp1);
d = c;
c = b;
b = a;
a = add32(temp1, temp2);
}
// Update hash values after iteration.
_digest[0] = add32(a, _digest[0]);
_digest[1] = add32(b, _digest[1]);
_digest[2] = add32(c, _digest[2]);
_digest[3] = add32(d, _digest[3]);
_digest[4] = add32(e, _digest[4]);
_digest[5] = add32(f, _digest[5]);
_digest[6] = add32(g, _digest[6]);
_digest[7] = add32(h, _digest[7]);
}