add method

void add(
  1. List<int> data
)

Implementation

void add(List<int> data) {
  if (_closed) throw StateError("UHasher is already closed.");
  _totalLength += data.length;
  int offset = 0;
  if (_blockLength > 0) {
    final int take = (64 - _blockLength) < data.length ? 64 - _blockLength : data.length;
    _block.setRange(_blockLength, _blockLength + take, data);
    _blockLength += take;
    offset = take;
    if (_blockLength < 64) return;
    _compress(_block, 0);
    _blockLength = 0;
  }
  final Uint8List bytes = data is Uint8List ? data : Uint8List.fromList(data);
  while (data.length - offset >= 64) {
    _compress(bytes, offset);
    offset += 64;
  }
  if (offset < data.length) {
    _block.setRange(0, data.length - offset, bytes, offset);
    _blockLength = data.length - offset;
  }
}