Как вы получаете имя константы с учетом ее значения?
В частности (и чтобы получить более понятное понимание), я работаю с пакетом crypto/tls
. Cipher suites определяются как константы:
const (
TLS_RSA_WITH_RC4_128_SHA uint16 = 0x0005
TLS_RSA_WITH_3DES_EDE_CBC_SHA uint16 = 0x000a
TLS_RSA_WITH_AES_128_CBC_SHA uint16 = 0x002f
TLS_RSA_WITH_AES_256_CBC_SHA uint16 = 0x0035
TLS_ECDHE_RSA_WITH_RC4_128_SHA uint16 = 0xc011
TLS_ECDHE_RSA_WITH_3DES_EDE_CBC_SHA uint16 = 0xc012
TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA uint16 = 0xc013
TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA uint16 = 0xc014
)
После успешного рукопожатия с сервером я могу связаться с Ciphersuite, согласованным через соединение:
c, _ := tls.Dial("tcp", "somedomain.com:443", nil)
// Suppose everything went right
// This is the Ciphersuite for the conn:
cipher := c.ConnectionState().Ciphersuite
cipher
здесь находится uint16. Есть ли способ показать его как строку, например TLS_RSA_WITH_3DES_EDE_CBC_SHA
, если это было согласовано?