cryptoStreamXor static method

Uint8List cryptoStreamXor(
  1. Uint8List m,
  2. Uint8List n,
  3. Uint8List k
)

Implementation

static Uint8List cryptoStreamXor(Uint8List m, Uint8List n, Uint8List k) {
  RangeError.checkValueInInterval(n.length, cryptoStreamNoncebytes,
      cryptoStreamNoncebytes, 'n', 'Invalid length');
  RangeError.checkValueInInterval(k.length, cryptoStreamKeybytes,
      cryptoStreamKeybytes, 'k', 'Invalid length');

  final _c = calloc<Uint8>(m.length);
  final _m = m.toPointer();
  final _n = n.toPointer();
  final _k = k.toPointer();
  try {
    _cryptoStream
        .crypto_stream_xor(_c, _m, m.length, _n, _k)
        .mustSucceed('crypto_stream_xor');
    return _c.toList(m.length);
  } finally {
    calloc.free(_c);
    calloc.free(_m);
    calloc.free(_n);
    calloc.free(_k);
  }
}