From 7c74b0db8a27188d0ca3bb2f4bd46d00c0dc8eea Mon Sep 17 00:00:00 2001 From: Filippo Valsorda Date: Thu, 7 Apr 2022 15:15:31 -0400 Subject: [PATCH] crypto/ed25519/internal/edwards25519: move to crypto/internal/edwards25519 This will allow us to use crypto/internal/edwards25519/field from crypto/ecdh to implement X25519, dropping the dependency on golang.org/x/crypto/curve25519. For #52182 Change-Id: I3be9debc6e13bf06944b98668f34313a975914d0 Reviewed-on: https://go-review.googlesource.com/c/go/+/402556 Reviewed-by: Roland Shoemaker Reviewed-by: David Chase Run-TryBot: Filippo Valsorda TryBot-Result: Gopher Robot --- src/crypto/ed25519/ed25519.go | 2 +- src/crypto/{ed25519 => }/internal/edwards25519/doc.go | 0 .../{ed25519 => }/internal/edwards25519/edwards25519.go | 7 +++---- .../internal/edwards25519/edwards25519_test.go | 2 +- .../internal/edwards25519/field/_asm/fe_amd64_asm.go | 2 +- .../{ed25519 => }/internal/edwards25519/field/_asm/go.mod | 0 .../{ed25519 => }/internal/edwards25519/field/_asm/go.sum | 0 src/crypto/{ed25519 => }/internal/edwards25519/field/fe.go | 0 .../internal/edwards25519/field/fe_alias_test.go | 0 .../{ed25519 => }/internal/edwards25519/field/fe_amd64.go | 0 .../{ed25519 => }/internal/edwards25519/field/fe_amd64.s | 0 .../internal/edwards25519/field/fe_amd64_noasm.go | 0 .../{ed25519 => }/internal/edwards25519/field/fe_arm64.go | 0 .../{ed25519 => }/internal/edwards25519/field/fe_arm64.s | 0 .../internal/edwards25519/field/fe_arm64_noasm.go | 0 .../internal/edwards25519/field/fe_bench_test.go | 0 .../internal/edwards25519/field/fe_generic.go | 0 .../{ed25519 => }/internal/edwards25519/field/fe_test.go | 0 src/crypto/{ed25519 => }/internal/edwards25519/scalar.go | 0 .../internal/edwards25519/scalar_alias_test.go | 0 .../{ed25519 => }/internal/edwards25519/scalar_test.go | 0 .../{ed25519 => }/internal/edwards25519/scalarmult.go | 0 .../{ed25519 => }/internal/edwards25519/scalarmult_test.go | 0 src/crypto/{ed25519 => }/internal/edwards25519/tables.go | 0 .../{ed25519 => }/internal/edwards25519/tables_test.go | 0 src/go/build/deps_test.go | 4 ++-- 26 files changed, 8 insertions(+), 9 deletions(-) rename src/crypto/{ed25519 => }/internal/edwards25519/doc.go (100%) rename src/crypto/{ed25519 => }/internal/edwards25519/edwards25519.go (97%) rename src/crypto/{ed25519 => }/internal/edwards25519/edwards25519_test.go (99%) rename src/crypto/{ed25519 => }/internal/edwards25519/field/_asm/fe_amd64_asm.go (99%) rename src/crypto/{ed25519 => }/internal/edwards25519/field/_asm/go.mod (100%) rename src/crypto/{ed25519 => }/internal/edwards25519/field/_asm/go.sum (100%) rename src/crypto/{ed25519 => }/internal/edwards25519/field/fe.go (100%) rename src/crypto/{ed25519 => }/internal/edwards25519/field/fe_alias_test.go (100%) rename src/crypto/{ed25519 => }/internal/edwards25519/field/fe_amd64.go (100%) rename src/crypto/{ed25519 => }/internal/edwards25519/field/fe_amd64.s (100%) rename src/crypto/{ed25519 => }/internal/edwards25519/field/fe_amd64_noasm.go (100%) rename src/crypto/{ed25519 => }/internal/edwards25519/field/fe_arm64.go (100%) rename src/crypto/{ed25519 => }/internal/edwards25519/field/fe_arm64.s (100%) rename src/crypto/{ed25519 => }/internal/edwards25519/field/fe_arm64_noasm.go (100%) rename src/crypto/{ed25519 => }/internal/edwards25519/field/fe_bench_test.go (100%) rename src/crypto/{ed25519 => }/internal/edwards25519/field/fe_generic.go (100%) rename src/crypto/{ed25519 => }/internal/edwards25519/field/fe_test.go (100%) rename src/crypto/{ed25519 => }/internal/edwards25519/scalar.go (100%) rename src/crypto/{ed25519 => }/internal/edwards25519/scalar_alias_test.go (100%) rename src/crypto/{ed25519 => }/internal/edwards25519/scalar_test.go (100%) rename src/crypto/{ed25519 => }/internal/edwards25519/scalarmult.go (100%) rename src/crypto/{ed25519 => }/internal/edwards25519/scalarmult_test.go (100%) rename src/crypto/{ed25519 => }/internal/edwards25519/tables.go (100%) rename src/crypto/{ed25519 => }/internal/edwards25519/tables_test.go (100%) diff --git a/src/crypto/ed25519/ed25519.go b/src/crypto/ed25519/ed25519.go index 4669e02db2..d43dd12d08 100644 --- a/src/crypto/ed25519/ed25519.go +++ b/src/crypto/ed25519/ed25519.go @@ -15,7 +15,7 @@ package ed25519 import ( "bytes" "crypto" - "crypto/ed25519/internal/edwards25519" + "crypto/internal/edwards25519" cryptorand "crypto/rand" "crypto/sha512" "errors" diff --git a/src/crypto/ed25519/internal/edwards25519/doc.go b/src/crypto/internal/edwards25519/doc.go similarity index 100% rename from src/crypto/ed25519/internal/edwards25519/doc.go rename to src/crypto/internal/edwards25519/doc.go diff --git a/src/crypto/ed25519/internal/edwards25519/edwards25519.go b/src/crypto/internal/edwards25519/edwards25519.go similarity index 97% rename from src/crypto/ed25519/internal/edwards25519/edwards25519.go rename to src/crypto/internal/edwards25519/edwards25519.go index 4e0ad7a357..71e9c097a9 100644 --- a/src/crypto/ed25519/internal/edwards25519/edwards25519.go +++ b/src/crypto/internal/edwards25519/edwards25519.go @@ -5,7 +5,7 @@ package edwards25519 import ( - "crypto/ed25519/internal/edwards25519/field" + "crypto/internal/edwards25519/field" "errors" ) @@ -147,9 +147,8 @@ func (v *Point) SetBytes(x []byte) (*Point, error) { // (*field.Element).SetBytes docs) and // 2) the ones where the x-coordinate is zero and the sign bit is set. // - // This is consistent with crypto/ed25519/internal/edwards25519. Read more - // at https://hdevalence.ca/blog/2020-10-04-its-25519am, specifically the - // "Canonical A, R" section. + // Read more at https://hdevalence.ca/blog/2020-10-04-its-25519am, + // specifically the "Canonical A, R" section. y, err := new(field.Element).SetBytes(x) if err != nil { diff --git a/src/crypto/ed25519/internal/edwards25519/edwards25519_test.go b/src/crypto/internal/edwards25519/edwards25519_test.go similarity index 99% rename from src/crypto/ed25519/internal/edwards25519/edwards25519_test.go rename to src/crypto/internal/edwards25519/edwards25519_test.go index 8031256525..9bc33f9017 100644 --- a/src/crypto/ed25519/internal/edwards25519/edwards25519_test.go +++ b/src/crypto/internal/edwards25519/edwards25519_test.go @@ -5,7 +5,7 @@ package edwards25519 import ( - "crypto/ed25519/internal/edwards25519/field" + "crypto/internal/edwards25519/field" "encoding/hex" "os" "reflect" diff --git a/src/crypto/ed25519/internal/edwards25519/field/_asm/fe_amd64_asm.go b/src/crypto/internal/edwards25519/field/_asm/fe_amd64_asm.go similarity index 99% rename from src/crypto/ed25519/internal/edwards25519/field/_asm/fe_amd64_asm.go rename to src/crypto/internal/edwards25519/field/_asm/fe_amd64_asm.go index fbc0cce22c..411399cb1e 100644 --- a/src/crypto/ed25519/internal/edwards25519/field/_asm/fe_amd64_asm.go +++ b/src/crypto/internal/edwards25519/field/_asm/fe_amd64_asm.go @@ -16,7 +16,7 @@ import ( //go:generate go run . -out ../fe_amd64.s -stubs ../fe_amd64.go -pkg field func main() { - Package("crypto/ed25519/internal/edwards25519/field") + Package("crypto/internal/edwards25519/field") ConstraintExpr("amd64,gc,!purego") feMul() feSquare() diff --git a/src/crypto/ed25519/internal/edwards25519/field/_asm/go.mod b/src/crypto/internal/edwards25519/field/_asm/go.mod similarity index 100% rename from src/crypto/ed25519/internal/edwards25519/field/_asm/go.mod rename to src/crypto/internal/edwards25519/field/_asm/go.mod diff --git a/src/crypto/ed25519/internal/edwards25519/field/_asm/go.sum b/src/crypto/internal/edwards25519/field/_asm/go.sum similarity index 100% rename from src/crypto/ed25519/internal/edwards25519/field/_asm/go.sum rename to src/crypto/internal/edwards25519/field/_asm/go.sum diff --git a/src/crypto/ed25519/internal/edwards25519/field/fe.go b/src/crypto/internal/edwards25519/field/fe.go similarity index 100% rename from src/crypto/ed25519/internal/edwards25519/field/fe.go rename to src/crypto/internal/edwards25519/field/fe.go diff --git a/src/crypto/ed25519/internal/edwards25519/field/fe_alias_test.go b/src/crypto/internal/edwards25519/field/fe_alias_test.go similarity index 100% rename from src/crypto/ed25519/internal/edwards25519/field/fe_alias_test.go rename to src/crypto/internal/edwards25519/field/fe_alias_test.go diff --git a/src/crypto/ed25519/internal/edwards25519/field/fe_amd64.go b/src/crypto/internal/edwards25519/field/fe_amd64.go similarity index 100% rename from src/crypto/ed25519/internal/edwards25519/field/fe_amd64.go rename to src/crypto/internal/edwards25519/field/fe_amd64.go diff --git a/src/crypto/ed25519/internal/edwards25519/field/fe_amd64.s b/src/crypto/internal/edwards25519/field/fe_amd64.s similarity index 100% rename from src/crypto/ed25519/internal/edwards25519/field/fe_amd64.s rename to src/crypto/internal/edwards25519/field/fe_amd64.s diff --git a/src/crypto/ed25519/internal/edwards25519/field/fe_amd64_noasm.go b/src/crypto/internal/edwards25519/field/fe_amd64_noasm.go similarity index 100% rename from src/crypto/ed25519/internal/edwards25519/field/fe_amd64_noasm.go rename to src/crypto/internal/edwards25519/field/fe_amd64_noasm.go diff --git a/src/crypto/ed25519/internal/edwards25519/field/fe_arm64.go b/src/crypto/internal/edwards25519/field/fe_arm64.go similarity index 100% rename from src/crypto/ed25519/internal/edwards25519/field/fe_arm64.go rename to src/crypto/internal/edwards25519/field/fe_arm64.go diff --git a/src/crypto/ed25519/internal/edwards25519/field/fe_arm64.s b/src/crypto/internal/edwards25519/field/fe_arm64.s similarity index 100% rename from src/crypto/ed25519/internal/edwards25519/field/fe_arm64.s rename to src/crypto/internal/edwards25519/field/fe_arm64.s diff --git a/src/crypto/ed25519/internal/edwards25519/field/fe_arm64_noasm.go b/src/crypto/internal/edwards25519/field/fe_arm64_noasm.go similarity index 100% rename from src/crypto/ed25519/internal/edwards25519/field/fe_arm64_noasm.go rename to src/crypto/internal/edwards25519/field/fe_arm64_noasm.go diff --git a/src/crypto/ed25519/internal/edwards25519/field/fe_bench_test.go b/src/crypto/internal/edwards25519/field/fe_bench_test.go similarity index 100% rename from src/crypto/ed25519/internal/edwards25519/field/fe_bench_test.go rename to src/crypto/internal/edwards25519/field/fe_bench_test.go diff --git a/src/crypto/ed25519/internal/edwards25519/field/fe_generic.go b/src/crypto/internal/edwards25519/field/fe_generic.go similarity index 100% rename from src/crypto/ed25519/internal/edwards25519/field/fe_generic.go rename to src/crypto/internal/edwards25519/field/fe_generic.go diff --git a/src/crypto/ed25519/internal/edwards25519/field/fe_test.go b/src/crypto/internal/edwards25519/field/fe_test.go similarity index 100% rename from src/crypto/ed25519/internal/edwards25519/field/fe_test.go rename to src/crypto/internal/edwards25519/field/fe_test.go diff --git a/src/crypto/ed25519/internal/edwards25519/scalar.go b/src/crypto/internal/edwards25519/scalar.go similarity index 100% rename from src/crypto/ed25519/internal/edwards25519/scalar.go rename to src/crypto/internal/edwards25519/scalar.go diff --git a/src/crypto/ed25519/internal/edwards25519/scalar_alias_test.go b/src/crypto/internal/edwards25519/scalar_alias_test.go similarity index 100% rename from src/crypto/ed25519/internal/edwards25519/scalar_alias_test.go rename to src/crypto/internal/edwards25519/scalar_alias_test.go diff --git a/src/crypto/ed25519/internal/edwards25519/scalar_test.go b/src/crypto/internal/edwards25519/scalar_test.go similarity index 100% rename from src/crypto/ed25519/internal/edwards25519/scalar_test.go rename to src/crypto/internal/edwards25519/scalar_test.go diff --git a/src/crypto/ed25519/internal/edwards25519/scalarmult.go b/src/crypto/internal/edwards25519/scalarmult.go similarity index 100% rename from src/crypto/ed25519/internal/edwards25519/scalarmult.go rename to src/crypto/internal/edwards25519/scalarmult.go diff --git a/src/crypto/ed25519/internal/edwards25519/scalarmult_test.go b/src/crypto/internal/edwards25519/scalarmult_test.go similarity index 100% rename from src/crypto/ed25519/internal/edwards25519/scalarmult_test.go rename to src/crypto/internal/edwards25519/scalarmult_test.go diff --git a/src/crypto/ed25519/internal/edwards25519/tables.go b/src/crypto/internal/edwards25519/tables.go similarity index 100% rename from src/crypto/ed25519/internal/edwards25519/tables.go rename to src/crypto/internal/edwards25519/tables.go diff --git a/src/crypto/ed25519/internal/edwards25519/tables_test.go b/src/crypto/internal/edwards25519/tables_test.go similarity index 100% rename from src/crypto/ed25519/internal/edwards25519/tables_test.go rename to src/crypto/internal/edwards25519/tables_test.go diff --git a/src/go/build/deps_test.go b/src/go/build/deps_test.go index f6d41dd28f..5b971b93e2 100644 --- a/src/go/build/deps_test.go +++ b/src/go/build/deps_test.go @@ -408,8 +408,8 @@ var depsRules = ` < crypto/internal/subtle < crypto/internal/nistec/fiat < crypto/internal/nistec - < crypto/ed25519/internal/edwards25519/field, golang.org/x/crypto/curve25519/internal/field - < crypto/ed25519/internal/edwards25519 + < crypto/internal/edwards25519/field, golang.org/x/crypto/curve25519/internal/field + < crypto/internal/edwards25519 < crypto/cipher < crypto/internal/boring < crypto/boring -- 2.50.0