finalize method

void finalize()

Implementation

void finalize() {
  if (finalized) {
    return;
  }

  finalized = true;
  var blocks = this.blocks,
      i = lastByteIndex,
      blockCount = this.blockCount,
      s = this.s;

  blocks![i >> 2] |= padding![i & 3];
  if (lastByteIndex == byteCount) {
    blocks[0] = blocks[blockCount!];
    for (var i = 1; i < blockCount + 1; ++i) {
      blocks[i] = 0;
    }
  }

  blocks[blockCount! - 1] |= 0x80000000;
  for (var i = 0; i < blockCount; ++i) {
    s![i] ^= blocks[i];
  }
  f(s!);
}