processBlock method

  1. @override
int processBlock(
  1. Uint8List inp,
  2. int inpOff,
  3. Uint8List out,
  4. int outOff,
)
override

Process a block of data.

Implementation

@override
int processBlock(Uint8List inp, int inpOff, Uint8List out, int outOff) {
  if (_forEncryption) {
    final block = Uint8List(blockSize);
    for (int i = 0; i < blockSize; i++) {
      block[i] = inp[inpOff + i] ^ _cbcV[i];
    }
    _cipher.processBlock(block, 0, out, outOff);
    _cbcV = out.sublist(outOff, outOff + blockSize);
    return blockSize;
  } else {
    final temp = Uint8List(blockSize);
    _cipher.processBlock(inp, inpOff, temp, 0);
    for (int i = 0; i < blockSize; i++) {
      out[outOff + i] = temp[i] ^ _cbcV[i];
    }
    _cbcV = inp.sublist(inpOff, inpOff + blockSize);
    return blockSize;
  }
}