in lib/src/sha512_fastsinks.dart [49:96]
void updateHash(Uint32List chunk) {
assert(chunk.length == 32);
// Prepare message schedule.
for (var i = 0, x = 0; i < 32; i += 2, x++) {
_extended[x] = (chunk[i] << 32) | chunk[i + 1];
}
for (var t = 16; t < 80; t++) {
_extended[t] = _ssig1(_extended[t - 2]) +
_extended[t - 7] +
_ssig0(_extended[t - 15]) +
_extended[t - 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 < 80; i++) {
var temp1 = h + _bsig1(e) + _ch(e, f, g) + _noise64[i] + _extended[i];
var temp2 = _bsig0(a) + _maj(a, b, c);
h = g;
g = f;
f = e;
e = d + temp1;
d = c;
c = b;
b = a;
a = temp1 + temp2;
}
// Update hash values after iteration.
_digest[0] += a;
_digest[1] += b;
_digest[2] += c;
_digest[3] += d;
_digest[4] += e;
_digest[5] += f;
_digest[6] += g;
_digest[7] += h;
}