]> Cypherpunks repositories - gostls13.git/commitdiff
crypto/ecdsa: deprecate direct use of big.Int fields in keys
authorFilippo Valsorda <filippo@golang.org>
Sun, 7 Sep 2025 13:36:10 +0000 (15:36 +0200)
committerGopher Robot <gobot@golang.org>
Tue, 9 Sep 2025 19:20:39 +0000 (12:20 -0700)
Updates #63963

Change-Id: I6a6a69645e625cde1ac1c6abf698a5fd3d52b4cf
Reviewed-on: https://go-review.googlesource.com/c/go/+/701516
Auto-Submit: Filippo Valsorda <filippo@golang.org>
LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com>
Reviewed-by: Daniel McCarney <daniel@binaryparadox.net>
Reviewed-by: Mark Freeman <markfreeman@google.com>
Reviewed-by: Michael Pratt <mpratt@google.com>
api/next/63963.txt [new file with mode: 0644]
doc/next/6-stdlib/99-minor/crypto/ecdsa/63963.md [new file with mode: 0644]
src/crypto/ecdsa/ecdsa.go

diff --git a/api/next/63963.txt b/api/next/63963.txt
new file mode 100644 (file)
index 0000000..c1aaae5
--- /dev/null
@@ -0,0 +1,3 @@
+pkg crypto/ecdsa, type PrivateKey struct, D //deprecated #63963
+pkg crypto/ecdsa, type PublicKey struct, X //deprecated #63963
+pkg crypto/ecdsa, type PublicKey struct, Y //deprecated #63963
diff --git a/doc/next/6-stdlib/99-minor/crypto/ecdsa/63963.md b/doc/next/6-stdlib/99-minor/crypto/ecdsa/63963.md
new file mode 100644 (file)
index 0000000..81efc00
--- /dev/null
@@ -0,0 +1 @@
+The `big.Int` fields of [PublicKey] and [PrivateKey] are now deprecated.
index 340edbbaba78072424eef49e27016225f1efd8ec..54fbecb5764aab3391283e24e4aecd461367b2c5 100644 (file)
@@ -44,15 +44,13 @@ type PublicKey struct {
 
        // X, Y are the coordinates of the public key point.
        //
-       // Modifying the raw coordinates can produce invalid keys, and may
+       // Deprecated: modifying the raw coordinates can produce invalid keys, and may
        // invalidate internal optimizations; moreover, [big.Int] methods are not
        // suitable for operating on cryptographic values. To encode and decode
        // PublicKey values, use [PublicKey.Bytes] and [ParseUncompressedPublicKey]
        // or [crypto/x509.MarshalPKIXPublicKey] and [crypto/x509.ParsePKIXPublicKey].
        // For ECDH, use [crypto/ecdh]. For lower-level elliptic curve operations,
        // use a third-party module like filippo.io/nistec.
-       //
-       // These fields will be deprecated in Go 1.26.
        X, Y *big.Int
 }
 
@@ -171,14 +169,12 @@ type PrivateKey struct {
 
        // D is the private scalar value.
        //
-       // Modifying the raw value can produce invalid keys, and may
+       // Deprecated: modifying the raw value can produce invalid keys, and may
        // invalidate internal optimizations; moreover, [big.Int] methods are not
        // suitable for operating on cryptographic values. To encode and decode
        // PrivateKey values, use [PrivateKey.Bytes] and [ParseRawPrivateKey] or
        // [crypto/x509.MarshalPKCS8PrivateKey] and [crypto/x509.ParsePKCS8PrivateKey].
        // For ECDH, use [crypto/ecdh].
-       //
-       // This field will be deprecated in Go 1.26.
        D *big.Int
 }