From: Mike Beaumont Date: Mon, 29 Apr 2024 10:14:32 +0000 (+0200) Subject: crypto/tls: don't call tlsrsakex.IncNonDefault with FIPS X-Git-Tag: go1.23rc1~307 X-Git-Url: http://www.git.cypherpunks.su/?a=commitdiff_plain;h=78e50d0fa0bc78d197bd1b41e1bdef8c20a03396;p=gostls13.git crypto/tls: don't call tlsrsakex.IncNonDefault with FIPS We haven't called tlsrsakex.Value() yet at this point if we're using FIPS, like if CipherSuites != nil. This adds needFIPS as a gate next to CipherSuites != nil. FIPS specifies suites that would be skipped if tlsarsakex were set. Fixes #65991 Change-Id: I8070d8f43f27c04067490af8cc7ec5e787f2b9bd Reviewed-on: https://go-review.googlesource.com/c/go/+/582315 Reviewed-by: Filippo Valsorda Reviewed-by: Cherry Mui TryBot-Bypass: Filippo Valsorda Auto-Submit: Filippo Valsorda Reviewed-by: Dmitri Shuralyov --- diff --git a/src/crypto/tls/handshake_client.go b/src/crypto/tls/handshake_client.go index 0b35deefa1..d046c86679 100644 --- a/src/crypto/tls/handshake_client.go +++ b/src/crypto/tls/handshake_client.go @@ -526,7 +526,7 @@ func (hs *clientHandshakeState) pickCipherSuite() error { return errors.New("tls: server chose an unconfigured cipher suite") } - if hs.c.config.CipherSuites == nil && rsaKexCiphers[hs.suite.id] { + if hs.c.config.CipherSuites == nil && !needFIPS() && rsaKexCiphers[hs.suite.id] { tlsrsakex.IncNonDefault() } diff --git a/src/crypto/tls/handshake_server.go b/src/crypto/tls/handshake_server.go index eb87ee038c..d5f8cc843e 100644 --- a/src/crypto/tls/handshake_server.go +++ b/src/crypto/tls/handshake_server.go @@ -370,7 +370,7 @@ func (hs *serverHandshakeState) pickCipherSuite() error { } c.cipherSuite = hs.suite.id - if c.config.CipherSuites == nil && rsaKexCiphers[hs.suite.id] { + if c.config.CipherSuites == nil && !needFIPS() && rsaKexCiphers[hs.suite.id] { tlsrsakex.IncNonDefault() }