digest method

Uint8List digest(
  1. Uint8List out,
  2. int outOffset
)

Implementation

Uint8List digest(Uint8List out, final int outOffset) {
  _f0 = Const.f0;
  _t0 += _bufferPos;

  if (0 < _bufferPos && _t0 == 0) {
    _t1++;
  }

  _compress(_buffer, 0);

  _buffer.fillRange(0, _buffer.length, 0);
  _internalState = List<Int64>.filled(_internalState.length, Int64.fromInts(0, 0));

  for (int i = 0; i < _chainValue!.length && (i * 8 < _digestSize); i++) {
    Uint8List bytes = ByteUtils.long2bytes(_chainValue![i]);

    if ((i * 8) < (_digestSize - 8)) {
      out = _arrayCopy(bytes, 0, out, outOffset + (i * 8), 8);
    } else {
      out = _arrayCopy(bytes, 0, out, outOffset + (i * 8), _digestSize - (i * 8));
    }
  }

  _chainValue = List<Int64>.filled(_chainValue!.length, Int64.fromInts(0, 0));

  reset();

  return out;
}