digest method
Implementation
List<int> digest() {
finalize();
var blockCount = this.blockCount,
s = this.s,
outputBlocks = this.outputBlocks,
extraBytes = this.extraBytes,
i = 0,
j = 0;
var array =
List<int>.filled((outputBlocks! << 2), 0); // final hash Uint8Array
var offset, block;
while (j < outputBlocks) {
for (i = 0; i < blockCount! && j < outputBlocks; ++i, ++j) {
offset = j << 2;
block = s![i];
array[offset] = block & 0xFF;
array[offset + 1] = (block >> 8) & 0xFF;
array[offset + 2] = (block >> 16) & 0xFF;
array[offset + 3] = (block >> 24) & 0xFF;
}
if (j % blockCount == 0) {
f(s!);
}
}
if (extraBytes! > 0) {
offset = j << 2 & 0xFFFFFFFF;
block = s![i];
array[offset] = block & 0xFF;
if (extraBytes > 1) {
array[offset + 1] = (block >> 8) & 0xFF;
}
if (extraBytes > 2) {
array[offset + 2] = (block >> 16) & 0xFF;
}
}
return array;
}