processBytes method
void
processBytes()
override
Process len
bytes of data given by inp
and starting at offset inpOff
.
The resulting cipher text is put in out
beginning at position outOff
.
Implementation
@override
void processBytes(
Uint8List inp, int inpOff, int len, Uint8List out, int outOff) {
if ((inpOff + len) > inp.length) {
throw ArgumentError('input buffer too short');
}
if ((outOff + len) > out.length) {
throw ArgumentError('output buffer too short');
}
for (var i = 0; i < len; i++) {
_x = (_x + 1) & 0xff;
_y = (_engineState![_x] + _y) & 0xff;
// swap
var tmp = _engineState![_x];
_engineState![_x] = _engineState![_y];
_engineState![_y] = tmp;
// xor
out[i + outOff] = inp[i + inpOff] ^
_engineState![(_engineState![_x] + _engineState![_y]) & 0xff];
}
}