update method

Poly1305 update(
  1. Uint8List m,
  2. int mpos,
  3. int bytes
)

Implementation

Poly1305 update(Uint8List m, int mpos, int bytes) {
  int i, want;

  if (this._leftover != 0) {
    want = (16 - this._leftover);
    if (want > bytes) want = bytes;
    for (i = 0; i < want; i++)
      this._buffer![this._leftover + i] = m[mpos + i];
    bytes -= want;
    mpos += want;
    this._leftover += want;
    if (this._leftover < 16) return this;
    this.blocks(_buffer, 0, 16);
    this._leftover = 0;
  }

  if (bytes >= 16) {
    want = bytes - (bytes % 16);
    this.blocks(m, mpos, want);
    mpos += want;
    bytes -= want;
  }

  if (bytes != 0) {
    for (i = 0; i < bytes; i++)
      this._buffer![this._leftover + i] = m[mpos + i];
    this._leftover += bytes;
  }

  return this;
}