mirror of
https://blitiri.com.ar/repos/chasquid
synced 2025-12-17 14:37:02 +00:00
There are a couple of places where it's handy to print TLS constants in human-readable form. To do so, we need functions that take TLS constants (usually in uint16 form) and give us friendly strings. Go's crypto/tls package does not provide us with this, so this patch introduces a new module with that purpose.
33 lines
757 B
Go
33 lines
757 B
Go
// Package tlsconst contains TLS constants for human consumption.
|
|
package tlsconst
|
|
|
|
// Most of the constants get automatically generated from IANA's assignments.
|
|
//go:generate ./generate-ciphers.py ciphers.go
|
|
|
|
import "fmt"
|
|
|
|
var versionName = map[uint16]string{
|
|
0x0300: "SSL-3.0",
|
|
0x0301: "TLS-1.0",
|
|
0x0302: "TLS-1.1",
|
|
0x0303: "TLS-1.2",
|
|
}
|
|
|
|
// VersionName returns a human-readable TLS version name.
|
|
func VersionName(v uint16) string {
|
|
name, ok := versionName[v]
|
|
if !ok {
|
|
return fmt.Sprintf("TLS-%#04x", v)
|
|
}
|
|
return name
|
|
}
|
|
|
|
// CipherSuiteName returns a human-readable TLS cipher suite name.
|
|
func CipherSuiteName(s uint16) string {
|
|
name, ok := cipherSuiteName[s]
|
|
if !ok {
|
|
return fmt.Sprintf("TLS_UNKNOWN_CIPHER_SUITE-%#04x", s)
|
|
}
|
|
return name
|
|
}
|