xor function

Uint8List xor(
  1. List<int> aList,
  2. List<int> bList
)

Realiza a operação XOR entre dois arrays de bytes aList e bList.

Se um array for menor, os bytes faltantes são considerados 0. Retorna um Uint8List com o resultado do XOR byte a byte.

Implementation

Uint8List xor(List<int> aList, List<int> bList) {
  final a = Uint8List.fromList(aList);
  final b = Uint8List.fromList(bList);
  if (a.isEmpty || b.isEmpty) {
    throw ArgumentError("Uint8List arguments must not be empty");
  }
  final length = a.length > b.length ? a.length : b.length;
  final buffer = Uint8List(length);

  for (int i = 0; i < length; i++) {
    final aa = i < a.length ? a[i] : 0;
    final bb = i < b.length ? b[i] : 0;
    buffer[i] = aa ^ bb;
  }
  return buffer;
}