crypto/tls: add VersionName

Fixes #46308

Change-Id: I5162b26cbce61ae5df5d2e093cf8a28406d15863
Reviewed-on: https://go-review.googlesource.com/c/go/+/497377
Auto-Submit: Filippo Valsorda <filippo@golang.org>
Reviewed-by: Marten Seemann <martenseemann@gmail.com>
Reviewed-by: Roland Shoemaker <roland@golang.org>
Reviewed-by: Ian Lance Taylor <iant@google.com>
TryBot-Result: Gopher Robot <gobot@golang.org>
Reviewed-by: Samuli Silvius <samuli.silvius@gmail.com>
Reviewed-by: Damien Neil <dneil@google.com>
Run-TryBot: Filippo Valsorda <filippo@golang.org>
This commit is contained in:
Filippo Valsorda 2023-05-24 02:29:15 +02:00 committed by Gopher Robot
parent 4406ed6d4e
commit b267db08b2
3 changed files with 30 additions and 0 deletions

1
api/next/46308.txt Normal file
View file

@ -0,0 +1 @@
pkg crypto/tls, func VersionName(uint16) string #46308

View file

@ -36,6 +36,26 @@ const (
VersionSSL30 = 0x0300
)
// VersionName returns the name for the provided TLS version number
// (e.g. "TLS 1.3"), or a fallback representation of the value if the
// version is not implemented by this package.
func VersionName(version uint16) string {
switch version {
case VersionSSL30:
return "SSLv3"
case VersionTLS10:
return "TLS 1.0"
case VersionTLS11:
return "TLS 1.1"
case VersionTLS12:
return "TLS 1.2"
case VersionTLS13:
return "TLS 1.3"
default:
return fmt.Sprintf("0x%04X", version)
}
}
const (
maxPlaintext = 16384 // maximum plaintext payload length
maxCiphertext = 16384 + 2048 // maximum ciphertext payload length

View file

@ -1590,6 +1590,15 @@ func TestCipherSuites(t *testing.T) {
}
}
func TestVersionName(t *testing.T) {
if got, exp := VersionName(VersionTLS13), "TLS 1.3"; got != exp {
t.Errorf("unexpected VersionName: got %q, expected %q", got, exp)
}
if got, exp := VersionName(0x12a), "0x012A"; got != exp {
t.Errorf("unexpected fallback VersionName: got %q, expected %q", got, exp)
}
}
// http2isBadCipher is copied from net/http.
// TODO: if it ends up exposed somewhere, use that instead.
func http2isBadCipher(cipher uint16) bool {