]> Cypherpunks repositories - gostls13.git/commitdiff
crypto/tls: avoid referencing potentially unused symbols in init
authorDamien Neil <dneil@google.com>
Fri, 26 May 2023 14:57:45 +0000 (07:57 -0700)
committerDamien Neil <dneil@google.com>
Fri, 26 May 2023 15:24:38 +0000 (15:24 +0000)
A reference to a function in a "var _ = ..." init-time
initialization keeps the symbol live. Move references to
Config.EncryptTicket and Config.DecryptTicket into tests.
These references increase the size of an unused import of
crypto/tls by about 1MiB.

Change-Id: I6d62a6dcbd73e22972a217afcda7395e909b52cc
Reviewed-on: https://go-review.googlesource.com/c/go/+/498595
Reviewed-by: Filippo Valsorda <filippo@golang.org>
Run-TryBot: Damien Neil <dneil@google.com>
Reviewed-by: Dmitri Shuralyov <dmitshur@google.com>
TryBot-Result: Gopher Robot <gobot@golang.org>

src/crypto/tls/ticket.go
src/crypto/tls/ticket_test.go [new file with mode: 0644]

index 1a94c04eee372d91405f0512d6e33fc003a1c7a9..1a3d0c7cfdef254c10597a59e7a5e5beb2fc6e09 100644 (file)
@@ -301,8 +301,6 @@ func (c *Config) EncryptTicket(cs ConnectionState, ss *SessionState) ([]byte, er
        return c.encryptTicket(stateBytes, ticketKeys)
 }
 
-var _ = &Config{WrapSession: (&Config{}).EncryptTicket}
-
 func (c *Config) encryptTicket(state []byte, ticketKeys []ticketKey) ([]byte, error) {
        if len(ticketKeys) == 0 {
                return nil, errors.New("tls: internal error: session ticket keys unavailable")
@@ -348,8 +346,6 @@ func (c *Config) DecryptTicket(identity []byte, cs ConnectionState) (*SessionSta
        return s, nil
 }
 
-var _ = &Config{UnwrapSession: (&Config{}).DecryptTicket}
-
 func (c *Config) decryptTicket(encrypted []byte, ticketKeys []ticketKey) []byte {
        if len(encrypted) < aes.BlockSize+sha256.Size {
                return nil
diff --git a/src/crypto/tls/ticket_test.go b/src/crypto/tls/ticket_test.go
new file mode 100644 (file)
index 0000000..f925451
--- /dev/null
@@ -0,0 +1,8 @@
+// Copyright 2023 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+package tls
+
+var _ = &Config{WrapSession: (&Config{}).EncryptTicket}
+var _ = &Config{UnwrapSession: (&Config{}).DecryptTicket}