update method
add data
Implementation
BlockHash update(List<int> msg) {
/// Convert message to array, pad it, and join into 32bit blocks
if (pending?.isEmpty ?? true) {
pending = List.from(msg);
} else {
pending!.addAll(msg);
}
pendingTotal += msg.length;
/// Enough data, try updating
if (pending!.length >= _delta8) {
msg = pending!;
/// Process pending data in blocks
var r = msg.length % _delta8;
pending = msg.sublist(msg.length - r, msg.length);
if (pending?.isEmpty ?? true) {
pending = null;
}
msg = _join32(msg, 0, msg.length - r, endian);
for (var i = 0; i < msg.length; i += _delta32) {
_update(msg, i);
}
}
return this;
}