From efad15f9f4d5819083241a611a67506b827a70d1 Mon Sep 17 00:00:00 2001 From: Daniel Liu Date: Fri, 3 Jan 2025 09:56:02 +0800 Subject: [PATCH] crypto: use clear from go1.21 (#29307) --- crypto/crypto.go | 4 +--- crypto/secp256k1/scalar_mult_cgo.go | 8 ++------ 2 files changed, 3 insertions(+), 9 deletions(-) diff --git a/crypto/crypto.go b/crypto/crypto.go index 552e93f9cb..a5da711124 100644 --- a/crypto/crypto.go +++ b/crypto/crypto.go @@ -287,7 +287,5 @@ func PubkeyToAddress(p ecdsa.PublicKey) common.Address { } func zeroBytes(bytes []byte) { - for i := range bytes { - bytes[i] = 0 - } + clear(bytes) } diff --git a/crypto/secp256k1/scalar_mult_cgo.go b/crypto/secp256k1/scalar_mult_cgo.go index 8afa9d023b..bdf8eeede7 100644 --- a/crypto/secp256k1/scalar_mult_cgo.go +++ b/crypto/secp256k1/scalar_mult_cgo.go @@ -44,12 +44,8 @@ func (BitCurve *BitCurve) ScalarMult(Bx, By *big.Int, scalar []byte) (*big.Int, // Unpack the result and clear temporaries. x := new(big.Int).SetBytes(point[:32]) y := new(big.Int).SetBytes(point[32:]) - for i := range point { - point[i] = 0 - } - for i := range padded { - scalar[i] = 0 - } + clear(point) + clear(scalar) if res != 1 { return nil, nil }