mirror of
https://github.com/golang/go.git
synced 2025-12-08 06:10:04 +00:00
crypto/tls: err for unsupported point format configs
If a client or server explicitly offers point formats, and the point formats don't include the uncompressed format, then error. This matches BoringSSL and Rustls behaviour and allows enabling the PointFormat-Client-MissingUncompressed bogo test. Updates #72006 Change-Id: I27a2cd231e4b8762b0d9e2dbd3d8ddd5b87fd5c5 Reviewed-on: https://go-review.googlesource.com/c/go/+/669157 Reviewed-by: Roland Shoemaker <roland@golang.org> Reviewed-by: Cherry Mui <cherryyz@google.com> LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com>
This commit is contained in:
parent
992d154717
commit
00b6348658
5 changed files with 31 additions and 7 deletions
|
|
@ -893,6 +893,19 @@ func (hs *clientHandshakeState) processServerHello() (bool, error) {
|
|||
return false, errors.New("tls: server selected unsupported compression format")
|
||||
}
|
||||
|
||||
supportsPointFormat := false
|
||||
offeredNonCompressedFormat := false
|
||||
for _, format := range hs.serverHello.supportedPoints {
|
||||
if format == pointFormatUncompressed {
|
||||
supportsPointFormat = true
|
||||
} else {
|
||||
offeredNonCompressedFormat = true
|
||||
}
|
||||
}
|
||||
if !supportsPointFormat && offeredNonCompressedFormat {
|
||||
return false, errors.New("tls: server offered only incompatible point formats")
|
||||
}
|
||||
|
||||
if c.handshakes == 0 && hs.serverHello.secureRenegotiationSupported {
|
||||
c.secureRenegotiation = true
|
||||
if len(hs.serverHello.secureRenegotiation) != 0 {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue