func Xor(left, right []byte) []byte {
	result := make([]byte, len(left))

	for i := 0; i < len(left); i++ {
		result[i] = left[i] ^ right[i]
	}

	return result
}
func Xor(left, right []byte) []byte {
	result := make([]byte, len(left))

	for i := 0; i < len(left); i++ {
		result[i] = left[i] ^ right[i]
	}

	return result
}
func Xor ( left , right [ ] byte ) [ ] byte { result := make ( [ ] byte , len ( left ) ) for i := 0 ; i < len ( left ) ; i ++ { result [ i ] = left [ i ] ^ right [ i ] } return result }
// Xor is doing byte by byte exclusive or of 2 byte arrays
Xor is doing byte by byte exclusive or of 2 byte arrays