]> Cypherpunks repositories - gostls13.git/commitdiff
crypto/internal/fips/subtle: provide XORBytes
authorFilippo Valsorda <filippo@golang.org>
Mon, 30 Sep 2024 15:08:12 +0000 (17:08 +0200)
committerGopher Robot <gobot@golang.org>
Wed, 23 Oct 2024 15:21:50 +0000 (15:21 +0000)
This is needed from inside the module, and we generally don't want to
import the crypto tree from it.

For #69536

Change-Id: I69e91e4df89ecac0016c671ccd28e733a7131533
Reviewed-on: https://go-review.googlesource.com/c/go/+/616716
Reviewed-by: Michael Pratt <mpratt@google.com>
LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com>
Reviewed-by: Roland Shoemaker <roland@golang.org>
Auto-Submit: Filippo Valsorda <filippo@golang.org>
Reviewed-by: Daniel McCarney <daniel@binaryparadox.net>
13 files changed:
src/crypto/internal/fips/subtle/xor.go [new file with mode: 0644]
src/crypto/internal/fips/subtle/xor_amd64.go [moved from src/crypto/subtle/xor_amd64.go with 100% similarity]
src/crypto/internal/fips/subtle/xor_amd64.s [moved from src/crypto/subtle/xor_amd64.s with 100% similarity]
src/crypto/internal/fips/subtle/xor_arm64.go [moved from src/crypto/subtle/xor_arm64.go with 100% similarity]
src/crypto/internal/fips/subtle/xor_arm64.s [moved from src/crypto/subtle/xor_arm64.s with 100% similarity]
src/crypto/internal/fips/subtle/xor_generic.go [moved from src/crypto/subtle/xor_generic.go with 100% similarity]
src/crypto/internal/fips/subtle/xor_loong64.go [moved from src/crypto/subtle/xor_loong64.go with 100% similarity]
src/crypto/internal/fips/subtle/xor_loong64.s [moved from src/crypto/subtle/xor_loong64.s with 100% similarity]
src/crypto/internal/fips/subtle/xor_ppc64x.go [moved from src/crypto/subtle/xor_ppc64x.go with 100% similarity]
src/crypto/internal/fips/subtle/xor_ppc64x.s [moved from src/crypto/subtle/xor_ppc64x.s with 100% similarity]
src/crypto/internal/fips/subtle/xor_test.go [moved from src/crypto/subtle/xor_test.go with 98% similarity]
src/crypto/subtle/xor.go
src/go/build/deps_test.go

diff --git a/src/crypto/internal/fips/subtle/xor.go b/src/crypto/internal/fips/subtle/xor.go
new file mode 100644 (file)
index 0000000..158dbce
--- /dev/null
@@ -0,0 +1,21 @@
+// Copyright 2022 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+package subtle
+
+// XORBytes sets dst[i] = x[i] ^ y[i] for all i < n = min(len(x), len(y)),
+// returning n, the number of bytes written to dst.
+// If dst does not have length at least n,
+// XORBytes panics without writing anything to dst.
+func XORBytes(dst, x, y []byte) int {
+       n := min(len(x), len(y))
+       if n == 0 {
+               return 0
+       }
+       if n > len(dst) {
+               panic("subtle.XORBytes: dst too short")
+       }
+       xorBytes(&dst[0], &x[0], &y[0], n) // arch-specific
+       return n
+}
similarity index 98%
rename from src/crypto/subtle/xor_test.go
rename to src/crypto/internal/fips/subtle/xor_test.go
index a348660c6369f4f1377b6e7f0976fc350321d458..3f5ef980a323dce2eec748ac893ffc5c594d5943 100644 (file)
@@ -6,8 +6,8 @@ package subtle_test
 
 import (
        "bytes"
+       . "crypto/internal/fips/subtle"
        "crypto/rand"
-       . "crypto/subtle"
        "fmt"
        "io"
        "testing"
index 158dbcede9046f021ffd53b9f7f890982d0a673a..86cbd5cb54c18420465d58f2ec44b7d46b6c8108 100644 (file)
@@ -4,18 +4,12 @@
 
 package subtle
 
+import "crypto/internal/fips/subtle"
+
 // XORBytes sets dst[i] = x[i] ^ y[i] for all i < n = min(len(x), len(y)),
 // returning n, the number of bytes written to dst.
 // If dst does not have length at least n,
 // XORBytes panics without writing anything to dst.
 func XORBytes(dst, x, y []byte) int {
-       n := min(len(x), len(y))
-       if n == 0 {
-               return 0
-       }
-       if n > len(dst) {
-               panic("subtle.XORBytes: dst too short")
-       }
-       xorBytes(&dst[0], &x[0], &y[0], n) // arch-specific
-       return n
+       return subtle.XORBytes(dst, x, y)
 }
index 98bcaccdc2a16de97aeb5205f241121393ffe874..cc9d304bc628209bbbb6ab39b5ebe7daf24e651e 100644 (file)
@@ -450,6 +450,7 @@ var depsRules = `
        # backwards compatibility with older versions of the module.
        STR, crypto/internal/impl
        < crypto/internal/fips
+       < crypto/internal/fips/subtle
        < crypto/internal/fips/sha256
        < crypto/internal/fips/sha512
        < crypto/internal/fips/hmac