From 3d13313f69df1a01fdd67a1bbe78730013ddcb18 Mon Sep 17 00:00:00 2001 From: Grant Nelson Date: Fri, 31 May 2024 16:27:02 -0600 Subject: [PATCH] Updating anyOverlap --- .../internal/alias/alias.go} | 6 +++--- .../natives/src/crypto/internal/boring/aes.go | 10 +++++++++ .../src/crypto/internal/subtle/aliasing.go | 21 ------------------- .../x/crypto/internal/subtle/aliasing.go | 21 ------------------- .../x/crypto/internal/alias/alias.go | 5 ++--- 5 files changed, 15 insertions(+), 48 deletions(-) rename compiler/natives/src/{vendor/golang.org/x/crypto/internal/subtle/aliasing.go => crypto/internal/alias/alias.go} (88%) create mode 100644 compiler/natives/src/crypto/internal/boring/aes.go delete mode 100644 compiler/natives/src/crypto/internal/subtle/aliasing.go delete mode 100644 compiler/natives/src/golang.org/x/crypto/internal/subtle/aliasing.go rename compiler/natives/src/{ => vendor}/golang.org/x/crypto/internal/alias/alias.go (82%) diff --git a/compiler/natives/src/vendor/golang.org/x/crypto/internal/subtle/aliasing.go b/compiler/natives/src/crypto/internal/alias/alias.go similarity index 88% rename from compiler/natives/src/vendor/golang.org/x/crypto/internal/subtle/aliasing.go rename to compiler/natives/src/crypto/internal/alias/alias.go index 104ac82bb..e6bb87536 100644 --- a/compiler/natives/src/vendor/golang.org/x/crypto/internal/subtle/aliasing.go +++ b/compiler/natives/src/crypto/internal/alias/alias.go @@ -1,11 +1,11 @@ //go:build js // +build js -package subtle +package alias // This file duplicated is these two locations: -// - src/crypto/internal/subtle/ -// - src/golang.org/x/crypto/internal/subtle/ +// - src/crypto/internal/alias/ +// - src/golang.org/x/crypto/internal/alias/ import "github.com/gopherjs/gopherjs/js" diff --git a/compiler/natives/src/crypto/internal/boring/aes.go b/compiler/natives/src/crypto/internal/boring/aes.go new file mode 100644 index 000000000..e2a840440 --- /dev/null +++ b/compiler/natives/src/crypto/internal/boring/aes.go @@ -0,0 +1,10 @@ +//go:build js +// +build js + +package boring + +import "crypto/internal/alias" + +func anyOverlap(x, y []byte) bool { + return alias.AnyOverlap(x, y) +} diff --git a/compiler/natives/src/crypto/internal/subtle/aliasing.go b/compiler/natives/src/crypto/internal/subtle/aliasing.go deleted file mode 100644 index 145687d59..000000000 --- a/compiler/natives/src/crypto/internal/subtle/aliasing.go +++ /dev/null @@ -1,21 +0,0 @@ -//go:build js -// +build js - -package subtle - -// This file duplicated is these two locations: -// - src/crypto/internal/subtle/aliasing.go -// - src/golang.org/x/crypto/internal/subtle/aliasing.go -// - src/golang.org/x/crypto/internal/alias/alias.go - -import "github.com/gopherjs/gopherjs/js" - -// AnyOverlap reports whether x and y share memory at any (not necessarily -// corresponding) index. The memory beyond the slice length is ignored. -func AnyOverlap(x, y []byte) bool { - // GopherJS: We can't rely on pointer arithmetic, so use GopherJS slice internals. - return len(x) > 0 && len(y) > 0 && - js.InternalObject(x).Get("$array") == js.InternalObject(y).Get("$array") && - js.InternalObject(x).Get("$offset").Int() <= js.InternalObject(y).Get("$offset").Int()+len(y)-1 && - js.InternalObject(y).Get("$offset").Int() <= js.InternalObject(x).Get("$offset").Int()+len(x)-1 -} diff --git a/compiler/natives/src/golang.org/x/crypto/internal/subtle/aliasing.go b/compiler/natives/src/golang.org/x/crypto/internal/subtle/aliasing.go deleted file mode 100644 index 145687d59..000000000 --- a/compiler/natives/src/golang.org/x/crypto/internal/subtle/aliasing.go +++ /dev/null @@ -1,21 +0,0 @@ -//go:build js -// +build js - -package subtle - -// This file duplicated is these two locations: -// - src/crypto/internal/subtle/aliasing.go -// - src/golang.org/x/crypto/internal/subtle/aliasing.go -// - src/golang.org/x/crypto/internal/alias/alias.go - -import "github.com/gopherjs/gopherjs/js" - -// AnyOverlap reports whether x and y share memory at any (not necessarily -// corresponding) index. The memory beyond the slice length is ignored. -func AnyOverlap(x, y []byte) bool { - // GopherJS: We can't rely on pointer arithmetic, so use GopherJS slice internals. - return len(x) > 0 && len(y) > 0 && - js.InternalObject(x).Get("$array") == js.InternalObject(y).Get("$array") && - js.InternalObject(x).Get("$offset").Int() <= js.InternalObject(y).Get("$offset").Int()+len(y)-1 && - js.InternalObject(y).Get("$offset").Int() <= js.InternalObject(x).Get("$offset").Int()+len(x)-1 -} diff --git a/compiler/natives/src/golang.org/x/crypto/internal/alias/alias.go b/compiler/natives/src/vendor/golang.org/x/crypto/internal/alias/alias.go similarity index 82% rename from compiler/natives/src/golang.org/x/crypto/internal/alias/alias.go rename to compiler/natives/src/vendor/golang.org/x/crypto/internal/alias/alias.go index a3e1e7f79..e6bb87536 100644 --- a/compiler/natives/src/golang.org/x/crypto/internal/alias/alias.go +++ b/compiler/natives/src/vendor/golang.org/x/crypto/internal/alias/alias.go @@ -4,9 +4,8 @@ package alias // This file duplicated is these two locations: -// - src/crypto/internal/subtle/aliasing.go -// - src/golang.org/x/crypto/internal/subtle/aliasing.go -// - src/golang.org/x/crypto/internal/alias/alias.go +// - src/crypto/internal/alias/ +// - src/golang.org/x/crypto/internal/alias/ import "github.com/gopherjs/gopherjs/js"