]> Cypherpunks repositories - gostls13.git/commitdiff
crypto: use clear built-in
authorKir Kolyshkin <kolyshkin@gmail.com>
Thu, 18 Sep 2025 00:57:27 +0000 (17:57 -0700)
committerSean Liao <sean@liao.dev>
Thu, 18 Sep 2025 22:30:53 +0000 (15:30 -0700)
Replace for loops with clear built-in, available since Go 1.21.

Change-Id: I16a2691a68042e9c5cd9bc4197690fa541a081eb
Reviewed-on: https://go-review.googlesource.com/c/go/+/704877
Reviewed-by: Michael Knyszek <mknyszek@google.com>
Reviewed-by: Mark Freeman <markfreeman@google.com>
Reviewed-by: Roland Shoemaker <roland@golang.org>
Reviewed-by: Sean Liao <sean@liao.dev>
LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com>

src/crypto/internal/fips140/mlkem/field.go
src/crypto/internal/fips140/sha3/sha3.go
src/crypto/rc4/rc4.go
src/crypto/tls/conn.go
src/crypto/tls/handshake_server_test.go

index 1a42818247221ce49accf498a9fd4525b7841a18..577062526ce0431db67e1ec1b30466239ebf7c09 100644 (file)
@@ -203,9 +203,7 @@ func sliceForAppend(in []byte, n int) (head, tail []byte) {
 // followed by ByteEncode₁, according to FIPS 203, Algorithm 5.
 func ringCompressAndEncode1(s []byte, f ringElement) []byte {
        s, b := sliceForAppend(s, encodingSize1)
-       for i := range b {
-               b[i] = 0
-       }
+       clear(b)
        for i := range f {
                b[i/8] |= uint8(compress(f[i], 1) << (i % 8))
        }
index 7513f8ef5da5866d1789dace2bd9475294f8dc70..5c77fae4e7428a4a58f103692edfa3fd1b8965be 100644 (file)
@@ -61,9 +61,7 @@ func (d *Digest) Size() int { return d.outputLen }
 // Reset resets the Digest to its initial state.
 func (d *Digest) Reset() {
        // Zero the permutation's state.
-       for i := range d.a {
-               d.a[i] = 0
-       }
+       clear(d.a[:])
        d.state = spongeAbsorbing
        d.n = 0
 }
index 90943a0935befbf1841d4ca01ccd192db35d9676..eebc1c04cbfedb52b0f54321df68cf948866ab72 100644 (file)
@@ -55,9 +55,7 @@ func NewCipher(key []byte) (*Cipher, error) {
 // Deprecated: Reset can't guarantee that the key will be entirely removed from
 // the process's memory.
 func (c *Cipher) Reset() {
-       for i := range c.s {
-               c.s[i] = 0
-       }
+       clear(c.s[:])
        c.i, c.j = 0, 0
 }
 
index d4d68c0744daa830a88e55d91405f5238b6123fd..09dc9ea94c939f6f54cbc6e8bbf135e070f0e0f3 100644 (file)
@@ -220,9 +220,7 @@ func (hc *halfConn) changeCipherSpec() error {
        hc.mac = hc.nextMac
        hc.nextCipher = nil
        hc.nextMac = nil
-       for i := range hc.seq {
-               hc.seq[i] = 0
-       }
+       clear(hc.seq[:])
        return nil
 }
 
@@ -231,9 +229,7 @@ func (hc *halfConn) setTrafficSecret(suite *cipherSuiteTLS13, level QUICEncrypti
        hc.level = level
        key, iv := suite.trafficKey(secret)
        hc.cipher = suite.aead(key, iv)
-       for i := range hc.seq {
-               hc.seq[i] = 0
-       }
+       clear(hc.seq[:])
 }
 
 // incSeq increments the sequence number.
index 4df3f5a7372bf64d6d7dba79b8a077d1becb9c53..941f2a3373feb97484fcf11760ac9fa3b1be40c3 100644 (file)
@@ -1590,9 +1590,7 @@ var getConfigForClientTests = []struct {
                },
                func(clientHello *ClientHelloInfo) (*Config, error) {
                        config := testConfig.Clone()
-                       for i := range config.SessionTicketKey {
-                               config.SessionTicketKey[i] = 0
-                       }
+                       clear(config.SessionTicketKey[:])
                        config.sessionTicketKeys = nil
                        return config, nil
                },