Skip to content

Commit a1d7f59

Browse files
committed
Use Go cipher suites to find TLS suite string name
1 parent 313861e commit a1d7f59

File tree

1 file changed

+18
-30
lines changed

1 file changed

+18
-30
lines changed

credentials/tls.go

Lines changed: 18 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -44,10 +44,27 @@ func (t TLSInfo) AuthType() string {
4444
return "tls"
4545
}
4646

47+
// cipherSuiteLookup returns the string version of a TLS cipher suite ID.
48+
func cipherSuiteLookup(cipherSuiteID uint16) string {
49+
suites := tls.CipherSuites()
50+
insecureSuites := tls.InsecureCipherSuites()
51+
for i := range suites {
52+
if suites[i].ID == cipherSuiteID {
53+
return suites[i].Name
54+
}
55+
}
56+
for i := range insecureSuites {
57+
if insecureSuites[i].ID == cipherSuiteID {
58+
return suites[i].Name
59+
}
60+
}
61+
return ""
62+
}
63+
4764
// GetSecurityValue returns security info requested by channelz.
4865
func (t TLSInfo) GetSecurityValue() ChannelzSecurityValue {
4966
v := &TLSChannelzSecurityValue{
50-
StandardName: cipherSuiteLookup[t.State.CipherSuite],
67+
StandardName: cipherSuiteLookup(t.State.CipherSuite),
5168
}
5269
// Currently there's no way to get LocalCertificate info from tls package.
5370
if len(t.State.PeerCertificates) > 0 {
@@ -205,32 +222,3 @@ type TLSChannelzSecurityValue struct {
205222
LocalCertificate []byte
206223
RemoteCertificate []byte
207224
}
208-
209-
var cipherSuiteLookup = map[uint16]string{
210-
tls.TLS_RSA_WITH_RC4_128_SHA: "TLS_RSA_WITH_RC4_128_SHA",
211-
tls.TLS_RSA_WITH_3DES_EDE_CBC_SHA: "TLS_RSA_WITH_3DES_EDE_CBC_SHA",
212-
tls.TLS_RSA_WITH_AES_128_CBC_SHA: "TLS_RSA_WITH_AES_128_CBC_SHA",
213-
tls.TLS_RSA_WITH_AES_256_CBC_SHA: "TLS_RSA_WITH_AES_256_CBC_SHA",
214-
tls.TLS_RSA_WITH_AES_128_GCM_SHA256: "TLS_RSA_WITH_AES_128_GCM_SHA256",
215-
tls.TLS_RSA_WITH_AES_256_GCM_SHA384: "TLS_RSA_WITH_AES_256_GCM_SHA384",
216-
tls.TLS_ECDHE_ECDSA_WITH_RC4_128_SHA: "TLS_ECDHE_ECDSA_WITH_RC4_128_SHA",
217-
tls.TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA: "TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA",
218-
tls.TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA: "TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA",
219-
tls.TLS_ECDHE_RSA_WITH_RC4_128_SHA: "TLS_ECDHE_RSA_WITH_RC4_128_SHA",
220-
tls.TLS_ECDHE_RSA_WITH_3DES_EDE_CBC_SHA: "TLS_ECDHE_RSA_WITH_3DES_EDE_CBC_SHA",
221-
tls.TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA: "TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA",
222-
tls.TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA: "TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA",
223-
tls.TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256: "TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256",
224-
tls.TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256: "TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256",
225-
tls.TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384: "TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384",
226-
tls.TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384: "TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384",
227-
tls.TLS_FALLBACK_SCSV: "TLS_FALLBACK_SCSV",
228-
tls.TLS_RSA_WITH_AES_128_CBC_SHA256: "TLS_RSA_WITH_AES_128_CBC_SHA256",
229-
tls.TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256: "TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256",
230-
tls.TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256: "TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256",
231-
tls.TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305: "TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305",
232-
tls.TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305: "TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305",
233-
tls.TLS_AES_128_GCM_SHA256: "TLS_AES_128_GCM_SHA256",
234-
tls.TLS_AES_256_GCM_SHA384: "TLS_AES_256_GCM_SHA384",
235-
tls.TLS_CHACHA20_POLY1305_SHA256: "TLS_CHACHA20_POLY1305_SHA256",
236-
}

0 commit comments

Comments
 (0)