digest method

List<int> digest()

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