-- XOR two bytestrings of the same length
-- uses zipWith to take one byte of each ByteString and apply the xor function on those two
-- and do that for all bytes
fixedXor :: B.ByteString -> B.ByteString -> B.ByteString
fixedXor bs1 bs2 =
  B.zipWith BB.xor bs1 bs2
  |> B.pack
fixedXor :: B.ByteString -> B.ByteString -> B.ByteString
fixedXor bs1 bs2 =
  B.zipWith BB.xor bs1 bs2
  |> B.pack
fixedXor bs1 bs2 =
  B.zipWith BB.xor bs1 bs2
  |> B.pack