値を指定して定数の名前を取得するにはどうすればよいですか?
より具体的には(そしてより読みやすい理解を得るために)、私はcrypto/tls
パッケージで作業しています。暗号スイートは定数として定義されます。
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
たとえば、それが合意されたものである場合、文字列として表示する方法はありますか?