1// Copyright 2022 The Go Authors. All rights reserved.
2// Use of this source code is governed by a BSD-style
3// license that can be found in the LICENSE file.
4
5package subtle
6
7// XORBytes sets dst[i] = x[i] ^ y[i] for all i < n = min(len(x), len(y)),
8// returning n, the number of bytes written to dst.
9// If dst does not have length at least n,
10// XORBytes panics without writing anything to dst.
11func XORBytes(dst, x, y []byte) int {
12	n := min(len(x), len(y))
13	if n == 0 {
14		return 0
15	}
16	if n > len(dst) {
17		panic("subtle.XORBytes: dst too short")
18	}
19	xorBytes(&dst[0], &x[0], &y[0], n) // arch-specific
20	return n
21}
22