github.com/zmap/zcrypto@v0.0.0-20240512203510-0fef58d9a9db/tls/tls_names.go (about) 1 // Copyright 2015 The Go Authors. All rights reserved. 2 // Use of this source code is governed by a BSD-style 3 // license that can be found in the LICENSE file. 4 5 package tls 6 7 import ( 8 "strconv" 9 "strings" 10 ) 11 12 var signatureNames map[uint8]string 13 var hashNames map[uint8]string 14 var cipherSuiteNames map[int]string 15 var compressionNames map[uint8]string 16 var curveNames map[uint16]string 17 var pointFormatNames map[uint8]string 18 var clientAuthTypeNames map[int]string 19 var signatureSchemeNames map[uint16]string 20 21 func init() { 22 // RFC 5246 7.4.1.4.1 23 signatureNames = make(map[uint8]string, 8) 24 // TODO FIXME: the RFC also defines anonymous(0) and (255). 25 signatureNames[signatureRSA] = "rsa" 26 signatureNames[signatureDSA] = "dsa" 27 signatureNames[signatureECDSA] = "ecdsa" 28 29 // RFC 5246 7.4.1.4.1 30 hashNames = make(map[uint8]string, 16) 31 // TODO FIXME: the RFC also defines none(0) and (255). 32 hashNames[hashMD5] = "md5" 33 hashNames[hashSHA1] = "sha1" 34 hashNames[hashSHA224] = "sha224" 35 hashNames[hashSHA256] = "sha256" 36 hashNames[hashSHA384] = "sha384" 37 hashNames[hashSHA512] = "sha512" 38 39 cipherSuiteNames = make(map[int]string, 512) 40 cipherSuiteNames[0x0000] = "TLS_NULL_WITH_NULL_NULL" 41 cipherSuiteNames[0x0001] = "TLS_RSA_WITH_NULL_MD5" 42 cipherSuiteNames[0x0002] = "TLS_RSA_WITH_NULL_SHA" 43 cipherSuiteNames[0x0003] = "TLS_RSA_EXPORT_WITH_RC4_40_MD5" 44 cipherSuiteNames[0x0004] = "TLS_RSA_WITH_RC4_128_MD5" 45 cipherSuiteNames[0x0005] = "TLS_RSA_WITH_RC4_128_SHA" 46 cipherSuiteNames[0x0006] = "TLS_RSA_EXPORT_WITH_RC2_CBC_40_MD5" 47 cipherSuiteNames[0x0007] = "TLS_RSA_WITH_IDEA_CBC_SHA" 48 cipherSuiteNames[0x0008] = "TLS_RSA_EXPORT_WITH_DES40_CBC_SHA" 49 cipherSuiteNames[0x0009] = "TLS_RSA_WITH_DES_CBC_SHA" 50 cipherSuiteNames[0x000A] = "TLS_RSA_WITH_3DES_EDE_CBC_SHA" 51 cipherSuiteNames[0x000B] = "TLS_DH_DSS_EXPORT_WITH_DES40_CBC_SHA" 52 cipherSuiteNames[0x000C] = "TLS_DH_DSS_WITH_DES_CBC_SHA" 53 cipherSuiteNames[0x000D] = "TLS_DH_DSS_WITH_3DES_EDE_CBC_SHA" 54 cipherSuiteNames[0x000E] = "TLS_DH_RSA_EXPORT_WITH_DES40_CBC_SHA" 55 cipherSuiteNames[0x000F] = "TLS_DH_RSA_WITH_DES_CBC_SHA" 56 cipherSuiteNames[0x0010] = "TLS_DH_RSA_WITH_3DES_EDE_CBC_SHA" 57 cipherSuiteNames[0x0011] = "TLS_DHE_DSS_EXPORT_WITH_DES40_CBC_SHA" 58 cipherSuiteNames[0x0012] = "TLS_DHE_DSS_WITH_DES_CBC_SHA" 59 cipherSuiteNames[0x0013] = "TLS_DHE_DSS_WITH_3DES_EDE_CBC_SHA" 60 cipherSuiteNames[0x0014] = "TLS_DHE_RSA_EXPORT_WITH_DES40_CBC_SHA" 61 cipherSuiteNames[0x0015] = "TLS_DHE_RSA_WITH_DES_CBC_SHA" 62 cipherSuiteNames[0x0016] = "TLS_DHE_RSA_WITH_3DES_EDE_CBC_SHA" 63 cipherSuiteNames[0x0017] = "TLS_DH_ANON_EXPORT_WITH_RC4_40_MD5" 64 cipherSuiteNames[0x0018] = "TLS_DH_ANON_WITH_RC4_128_MD5" 65 cipherSuiteNames[0x0019] = "TLS_DH_ANON_EXPORT_WITH_DES40_CBC_SHA" 66 cipherSuiteNames[0x001A] = "TLS_DH_ANON_WITH_DES_CBC_SHA" 67 cipherSuiteNames[0x001B] = "TLS_DH_ANON_WITH_3DES_EDE_CBC_SHA" 68 cipherSuiteNames[0x001C] = "SSL_FORTEZZA_KEA_WITH_NULL_SHA" 69 cipherSuiteNames[0x001D] = "SSL_FORTEZZA_KEA_WITH_FORTEZZA_CBC_SHA" 70 cipherSuiteNames[0x001E] = "TLS_KRB5_WITH_DES_CBC_SHA" 71 cipherSuiteNames[0x001F] = "TLS_KRB5_WITH_3DES_EDE_CBC_SHA" 72 cipherSuiteNames[0x0020] = "TLS_KRB5_WITH_RC4_128_SHA" 73 cipherSuiteNames[0x0021] = "TLS_KRB5_WITH_IDEA_CBC_SHA" 74 cipherSuiteNames[0x0022] = "TLS_KRB5_WITH_DES_CBC_MD5" 75 cipherSuiteNames[0x0023] = "TLS_KRB5_WITH_3DES_EDE_CBC_MD5" 76 cipherSuiteNames[0x0024] = "TLS_KRB5_WITH_RC4_128_MD5" 77 cipherSuiteNames[0x0025] = "TLS_KRB5_WITH_IDEA_CBC_MD5" 78 cipherSuiteNames[0x0026] = "TLS_KRB5_EXPORT_WITH_DES_CBC_40_SHA" 79 cipherSuiteNames[0x0027] = "TLS_KRB5_EXPORT_WITH_RC2_CBC_40_SHA" 80 cipherSuiteNames[0x0028] = "TLS_KRB5_EXPORT_WITH_RC4_40_SHA" 81 cipherSuiteNames[0x0029] = "TLS_KRB5_EXPORT_WITH_DES_CBC_40_MD5" 82 cipherSuiteNames[0x002A] = "TLS_KRB5_EXPORT_WITH_RC2_CBC_40_MD5" 83 cipherSuiteNames[0x002B] = "TLS_KRB5_EXPORT_WITH_RC4_40_MD5" 84 cipherSuiteNames[0x002C] = "TLS_PSK_WITH_NULL_SHA" 85 cipherSuiteNames[0x002D] = "TLS_DHE_PSK_WITH_NULL_SHA" 86 cipherSuiteNames[0x002E] = "TLS_RSA_PSK_WITH_NULL_SHA" 87 cipherSuiteNames[0x002F] = "TLS_RSA_WITH_AES_128_CBC_SHA" 88 cipherSuiteNames[0x0030] = "TLS_DH_DSS_WITH_AES_128_CBC_SHA" 89 cipherSuiteNames[0x0031] = "TLS_DH_RSA_WITH_AES_128_CBC_SHA" 90 cipherSuiteNames[0x0032] = "TLS_DHE_DSS_WITH_AES_128_CBC_SHA" 91 cipherSuiteNames[0x0033] = "TLS_DHE_RSA_WITH_AES_128_CBC_SHA" 92 cipherSuiteNames[0x0034] = "TLS_DH_ANON_WITH_AES_128_CBC_SHA" 93 cipherSuiteNames[0x0035] = "TLS_RSA_WITH_AES_256_CBC_SHA" 94 cipherSuiteNames[0x0036] = "TLS_DH_DSS_WITH_AES_256_CBC_SHA" 95 cipherSuiteNames[0x0037] = "TLS_DH_RSA_WITH_AES_256_CBC_SHA" 96 cipherSuiteNames[0x0038] = "TLS_DHE_DSS_WITH_AES_256_CBC_SHA" 97 cipherSuiteNames[0x0039] = "TLS_DHE_RSA_WITH_AES_256_CBC_SHA" 98 cipherSuiteNames[0x003A] = "TLS_DH_ANON_WITH_AES_256_CBC_SHA" 99 cipherSuiteNames[0x003B] = "TLS_RSA_WITH_NULL_SHA256" 100 cipherSuiteNames[0x003C] = "TLS_RSA_WITH_AES_128_CBC_SHA256" 101 cipherSuiteNames[0x003D] = "TLS_RSA_WITH_AES_256_CBC_SHA256" 102 cipherSuiteNames[0x003E] = "TLS_DH_DSS_WITH_AES_128_CBC_SHA256" 103 cipherSuiteNames[0x003F] = "TLS_DH_RSA_WITH_AES_128_CBC_SHA256" 104 cipherSuiteNames[0x0040] = "TLS_DHE_DSS_WITH_AES_128_CBC_SHA256" 105 cipherSuiteNames[0x0041] = "TLS_RSA_WITH_CAMELLIA_128_CBC_SHA" 106 cipherSuiteNames[0x0042] = "TLS_DH_DSS_WITH_CAMELLIA_128_CBC_SHA" 107 cipherSuiteNames[0x0043] = "TLS_DH_RSA_WITH_CAMELLIA_128_CBC_SHA" 108 cipherSuiteNames[0x0044] = "TLS_DHE_DSS_WITH_CAMELLIA_128_CBC_SHA" 109 cipherSuiteNames[0x0045] = "TLS_DHE_RSA_WITH_CAMELLIA_128_CBC_SHA" 110 cipherSuiteNames[0x0046] = "TLS_DH_ANON_WITH_CAMELLIA_128_CBC_SHA" 111 cipherSuiteNames[0x0047] = "TLS_ECDH_ECDSA_WITH_NULL_SHA" 112 cipherSuiteNames[0x0048] = "TLS_ECDH_ECDSA_WITH_RC4_128_SHA" 113 cipherSuiteNames[0x0049] = "TLS_ECDH_ECDSA_WITH_DES_CBC_SHA" 114 cipherSuiteNames[0x004A] = "TLS_ECDH_ECDSA_WITH_3DES_EDE_CBC_SHA" 115 cipherSuiteNames[0x004B] = "TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA" 116 cipherSuiteNames[0x004C] = "TLS_ECDH_ECDSA_WITH_AES_256_CBC_SHA" 117 cipherSuiteNames[0x0060] = "TLS_RSA_EXPORT1024_WITH_RC4_56_MD5" 118 cipherSuiteNames[0x0061] = "TLS_RSA_EXPORT1024_WITH_RC2_CBC_56_MD5" 119 cipherSuiteNames[0x0062] = "TLS_RSA_EXPORT1024_WITH_DES_CBC_SHA" 120 cipherSuiteNames[0x0063] = "TLS_DHE_DSS_EXPORT1024_WITH_DES_CBC_SHA" 121 cipherSuiteNames[0x0064] = "TLS_RSA_EXPORT1024_WITH_RC4_56_SHA" 122 cipherSuiteNames[0x0065] = "TLS_DHE_DSS_EXPORT1024_WITH_RC4_56_SHA" 123 cipherSuiteNames[0x0066] = "TLS_DHE_DSS_WITH_RC4_128_SHA" 124 cipherSuiteNames[0x0067] = "TLS_DHE_RSA_WITH_AES_128_CBC_SHA256" 125 cipherSuiteNames[0x0068] = "TLS_DH_DSS_WITH_AES_256_CBC_SHA256" 126 cipherSuiteNames[0x0069] = "TLS_DH_RSA_WITH_AES_256_CBC_SHA256" 127 cipherSuiteNames[0x006A] = "TLS_DHE_DSS_WITH_AES_256_CBC_SHA256" 128 cipherSuiteNames[0x006B] = "TLS_DHE_RSA_WITH_AES_256_CBC_SHA256" 129 cipherSuiteNames[0x006C] = "TLS_DH_ANON_WITH_AES_128_CBC_SHA256" 130 cipherSuiteNames[0x006D] = "TLS_DH_ANON_WITH_AES_256_CBC_SHA256" 131 cipherSuiteNames[0x0080] = "TLS_GOSTR341094_WITH_28147_CNT_IMIT" 132 cipherSuiteNames[0x0081] = "TLS_GOSTR341001_WITH_28147_CNT_IMIT" 133 cipherSuiteNames[0x0082] = "TLS_GOSTR341094_WITH_NULL_GOSTR3411" 134 cipherSuiteNames[0x0083] = "TLS_GOSTR341001_WITH_NULL_GOSTR3411" 135 cipherSuiteNames[0x0084] = "TLS_RSA_WITH_CAMELLIA_256_CBC_SHA" 136 cipherSuiteNames[0x0085] = "TLS_DH_DSS_WITH_CAMELLIA_256_CBC_SHA" 137 cipherSuiteNames[0x0086] = "TLS_DH_RSA_WITH_CAMELLIA_256_CBC_SHA" 138 cipherSuiteNames[0x0087] = "TLS_DHE_DSS_WITH_CAMELLIA_256_CBC_SHA" 139 cipherSuiteNames[0x0088] = "TLS_DHE_RSA_WITH_CAMELLIA_256_CBC_SHA" 140 cipherSuiteNames[0x0089] = "TLS_DH_ANON_WITH_CAMELLIA_256_CBC_SHA" 141 cipherSuiteNames[0x008A] = "TLS_PSK_WITH_RC4_128_SHA" 142 cipherSuiteNames[0x008B] = "TLS_PSK_WITH_3DES_EDE_CBC_SHA" 143 cipherSuiteNames[0x008C] = "TLS_PSK_WITH_AES_128_CBC_SHA" 144 cipherSuiteNames[0x008D] = "TLS_PSK_WITH_AES_256_CBC_SHA" 145 cipherSuiteNames[0x008E] = "TLS_DHE_PSK_WITH_RC4_128_SHA" 146 cipherSuiteNames[0x008F] = "TLS_DHE_PSK_WITH_3DES_EDE_CBC_SHA" 147 cipherSuiteNames[0x0090] = "TLS_DHE_PSK_WITH_AES_128_CBC_SHA" 148 cipherSuiteNames[0x0091] = "TLS_DHE_PSK_WITH_AES_256_CBC_SHA" 149 cipherSuiteNames[0x0092] = "TLS_RSA_PSK_WITH_RC4_128_SHA" 150 cipherSuiteNames[0x0093] = "TLS_RSA_PSK_WITH_3DES_EDE_CBC_SHA" 151 cipherSuiteNames[0x0094] = "TLS_RSA_PSK_WITH_AES_128_CBC_SHA" 152 cipherSuiteNames[0x0095] = "TLS_RSA_PSK_WITH_AES_256_CBC_SHA" 153 cipherSuiteNames[0x0096] = "TLS_RSA_WITH_SEED_CBC_SHA" 154 cipherSuiteNames[0x0097] = "TLS_DH_DSS_WITH_SEED_CBC_SHA" 155 cipherSuiteNames[0x0098] = "TLS_DH_RSA_WITH_SEED_CBC_SHA" 156 cipherSuiteNames[0x0099] = "TLS_DHE_DSS_WITH_SEED_CBC_SHA" 157 cipherSuiteNames[0x009A] = "TLS_DHE_RSA_WITH_SEED_CBC_SHA" 158 cipherSuiteNames[0x009B] = "TLS_DH_ANON_WITH_SEED_CBC_SHA" 159 cipherSuiteNames[0x009C] = "TLS_RSA_WITH_AES_128_GCM_SHA256" 160 cipherSuiteNames[0x009D] = "TLS_RSA_WITH_AES_256_GCM_SHA384" 161 cipherSuiteNames[0x009E] = "TLS_DHE_RSA_WITH_AES_128_GCM_SHA256" 162 cipherSuiteNames[0x009F] = "TLS_DHE_RSA_WITH_AES_256_GCM_SHA384" 163 cipherSuiteNames[0x00A0] = "TLS_DH_RSA_WITH_AES_128_GCM_SHA256" 164 cipherSuiteNames[0x00A1] = "TLS_DH_RSA_WITH_AES_256_GCM_SHA384" 165 cipherSuiteNames[0x00A2] = "TLS_DHE_DSS_WITH_AES_128_GCM_SHA256" 166 cipherSuiteNames[0x00A3] = "TLS_DHE_DSS_WITH_AES_256_GCM_SHA384" 167 cipherSuiteNames[0x00A4] = "TLS_DH_DSS_WITH_AES_128_GCM_SHA256" 168 cipherSuiteNames[0x00A5] = "TLS_DH_DSS_WITH_AES_256_GCM_SHA384" 169 cipherSuiteNames[0x00A6] = "TLS_DH_ANON_WITH_AES_128_GCM_SHA256" 170 cipherSuiteNames[0x00A7] = "TLS_DH_ANON_WITH_AES_256_GCM_SHA384" 171 cipherSuiteNames[0x00A8] = "TLS_PSK_WITH_AES_128_GCM_SHA256" 172 cipherSuiteNames[0x00A9] = "TLS_PSK_WITH_AES_256_GCM_SHA384" 173 cipherSuiteNames[0x00AA] = "TLS_DHE_PSK_WITH_AES_128_GCM_SHA256" 174 cipherSuiteNames[0x00AB] = "TLS_DHE_PSK_WITH_AES_256_GCM_SHA384" 175 cipherSuiteNames[0x00AC] = "TLS_RSA_PSK_WITH_AES_128_GCM_SHA256" 176 cipherSuiteNames[0x00AD] = "TLS_RSA_PSK_WITH_AES_256_GCM_SHA384" 177 cipherSuiteNames[0x00AE] = "TLS_PSK_WITH_AES_128_CBC_SHA256" 178 cipherSuiteNames[0x00AF] = "TLS_PSK_WITH_AES_256_CBC_SHA384" 179 cipherSuiteNames[0x00B0] = "TLS_PSK_WITH_NULL_SHA256" 180 cipherSuiteNames[0x00B1] = "TLS_PSK_WITH_NULL_SHA384" 181 cipherSuiteNames[0x00B2] = "TLS_DHE_PSK_WITH_AES_128_CBC_SHA256" 182 cipherSuiteNames[0x00B3] = "TLS_DHE_PSK_WITH_AES_256_CBC_SHA384" 183 cipherSuiteNames[0x00B4] = "TLS_DHE_PSK_WITH_NULL_SHA256" 184 cipherSuiteNames[0x00B5] = "TLS_DHE_PSK_WITH_NULL_SHA384" 185 cipherSuiteNames[0x00B6] = "TLS_RSA_PSK_WITH_AES_128_CBC_SHA256" 186 cipherSuiteNames[0x00B7] = "TLS_RSA_PSK_WITH_AES_256_CBC_SHA384" 187 cipherSuiteNames[0x00B8] = "TLS_RSA_PSK_WITH_NULL_SHA256" 188 cipherSuiteNames[0x00B9] = "TLS_RSA_PSK_WITH_NULL_SHA384" 189 cipherSuiteNames[0x00BA] = "TLS_RSA_WITH_CAMELLIA_128_CBC_SHA256" 190 cipherSuiteNames[0x00BB] = "TLS_DH_DSS_WITH_CAMELLIA_128_CBC_SHA256" 191 cipherSuiteNames[0x00BC] = "TLS_DH_RSA_WITH_CAMELLIA_128_CBC_SHA256" 192 cipherSuiteNames[0x00BD] = "TLS_DHE_DSS_WITH_CAMELLIA_128_CBC_SHA256" 193 cipherSuiteNames[0x00BE] = "TLS_DHE_RSA_WITH_CAMELLIA_128_CBC_SHA256" 194 cipherSuiteNames[0x00BF] = "TLS_DH_ANON_WITH_CAMELLIA_128_CBC_SHA256" 195 cipherSuiteNames[0x00C0] = "TLS_RSA_WITH_CAMELLIA_256_CBC_SHA256" 196 cipherSuiteNames[0x00C1] = "TLS_DH_DSS_WITH_CAMELLIA_256_CBC_SHA256" 197 cipherSuiteNames[0x00C2] = "TLS_DH_RSA_WITH_CAMELLIA_256_CBC_SHA256" 198 cipherSuiteNames[0x00C3] = "TLS_DHE_DSS_WITH_CAMELLIA_256_CBC_SHA256" 199 cipherSuiteNames[0x00C4] = "TLS_DHE_RSA_WITH_CAMELLIA_256_CBC_SHA256" 200 cipherSuiteNames[0x00C5] = "TLS_DH_ANON_WITH_CAMELLIA_256_CBC_SHA256" 201 cipherSuiteNames[0x00FF] = "TLS_RENEGO_PROTECTION_REQUEST" 202 cipherSuiteNames[0x5600] = "TLS_FALLBACK_SCSV" 203 cipherSuiteNames[0xC001] = "TLS_ECDH_ECDSA_WITH_NULL_SHA" 204 cipherSuiteNames[0xC002] = "TLS_ECDH_ECDSA_WITH_RC4_128_SHA" 205 cipherSuiteNames[0xC003] = "TLS_ECDH_ECDSA_WITH_3DES_EDE_CBC_SHA" 206 cipherSuiteNames[0xC004] = "TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA" 207 cipherSuiteNames[0xC005] = "TLS_ECDH_ECDSA_WITH_AES_256_CBC_SHA" 208 cipherSuiteNames[0xC006] = "TLS_ECDHE_ECDSA_WITH_NULL_SHA" 209 cipherSuiteNames[0xC007] = "TLS_ECDHE_ECDSA_WITH_RC4_128_SHA" 210 cipherSuiteNames[0xC008] = "TLS_ECDHE_ECDSA_WITH_3DES_EDE_CBC_SHA" 211 cipherSuiteNames[0xC009] = "TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA" 212 cipherSuiteNames[0xC00A] = "TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA" 213 cipherSuiteNames[0xC00B] = "TLS_ECDH_RSA_WITH_NULL_SHA" 214 cipherSuiteNames[0xC00C] = "TLS_ECDH_RSA_WITH_RC4_128_SHA" 215 cipherSuiteNames[0xC00D] = "TLS_ECDH_RSA_WITH_3DES_EDE_CBC_SHA" 216 cipherSuiteNames[0xC00E] = "TLS_ECDH_RSA_WITH_AES_128_CBC_SHA" 217 cipherSuiteNames[0xC00F] = "TLS_ECDH_RSA_WITH_AES_256_CBC_SHA" 218 cipherSuiteNames[0xC010] = "TLS_ECDHE_RSA_WITH_NULL_SHA" 219 cipherSuiteNames[0xC011] = "TLS_ECDHE_RSA_WITH_RC4_128_SHA" 220 cipherSuiteNames[0xC012] = "TLS_ECDHE_RSA_WITH_3DES_EDE_CBC_SHA" 221 cipherSuiteNames[0xC013] = "TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA" 222 cipherSuiteNames[0xC014] = "TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA" 223 cipherSuiteNames[0xC015] = "TLS_ECDH_ANON_WITH_NULL_SHA" 224 cipherSuiteNames[0xC016] = "TLS_ECDH_ANON_WITH_RC4_128_SHA" 225 cipherSuiteNames[0xC017] = "TLS_ECDH_ANON_WITH_3DES_EDE_CBC_SHA" 226 cipherSuiteNames[0xC018] = "TLS_ECDH_ANON_WITH_AES_128_CBC_SHA" 227 cipherSuiteNames[0xC019] = "TLS_ECDH_ANON_WITH_AES_256_CBC_SHA" 228 cipherSuiteNames[0xC01A] = "TLS_SRP_SHA_WITH_3DES_EDE_CBC_SHA" 229 cipherSuiteNames[0xC01B] = "TLS_SRP_SHA_RSA_WITH_3DES_EDE_CBC_SHA" 230 cipherSuiteNames[0xC01C] = "TLS_SRP_SHA_DSS_WITH_3DES_EDE_CBC_SHA" 231 cipherSuiteNames[0xC01D] = "TLS_SRP_SHA_WITH_AES_128_CBC_SHA" 232 cipherSuiteNames[0xC01E] = "TLS_SRP_SHA_RSA_WITH_AES_128_CBC_SHA" 233 cipherSuiteNames[0xC01F] = "TLS_SRP_SHA_DSS_WITH_AES_128_CBC_SHA" 234 cipherSuiteNames[0xC020] = "TLS_SRP_SHA_WITH_AES_256_CBC_SHA" 235 cipherSuiteNames[0xC021] = "TLS_SRP_SHA_RSA_WITH_AES_256_CBC_SHA" 236 cipherSuiteNames[0xC022] = "TLS_SRP_SHA_DSS_WITH_AES_256_CBC_SHA" 237 cipherSuiteNames[0xC023] = "TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256" 238 cipherSuiteNames[0xC024] = "TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384" 239 cipherSuiteNames[0xC025] = "TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA256" 240 cipherSuiteNames[0xC026] = "TLS_ECDH_ECDSA_WITH_AES_256_CBC_SHA384" 241 cipherSuiteNames[0xC027] = "TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256" 242 cipherSuiteNames[0xC028] = "TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384" 243 cipherSuiteNames[0xC029] = "TLS_ECDH_RSA_WITH_AES_128_CBC_SHA256" 244 cipherSuiteNames[0xC02A] = "TLS_ECDH_RSA_WITH_AES_256_CBC_SHA384" 245 cipherSuiteNames[0xC02B] = "TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256" 246 cipherSuiteNames[0xC02C] = "TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384" 247 cipherSuiteNames[0xC02D] = "TLS_ECDH_ECDSA_WITH_AES_128_GCM_SHA256" 248 cipherSuiteNames[0xC02E] = "TLS_ECDH_ECDSA_WITH_AES_256_GCM_SHA384" 249 cipherSuiteNames[0xC02F] = "TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256" 250 cipherSuiteNames[0xC030] = "TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384" 251 cipherSuiteNames[0xC031] = "TLS_ECDH_RSA_WITH_AES_128_GCM_SHA256" 252 cipherSuiteNames[0xC032] = "TLS_ECDH_RSA_WITH_AES_256_GCM_SHA384" 253 cipherSuiteNames[0xC033] = "TLS_ECDHE_PSK_WITH_RC4_128_SHA" 254 cipherSuiteNames[0xC034] = "TLS_ECDHE_PSK_WITH_3DES_EDE_CBC_SHA" 255 cipherSuiteNames[0xC035] = "TLS_ECDHE_PSK_WITH_AES_128_CBC_SHA" 256 cipherSuiteNames[0xC036] = "TLS_ECDHE_PSK_WITH_AES_256_CBC_SHA" 257 cipherSuiteNames[0xC037] = "TLS_ECDHE_PSK_WITH_AES_128_CBC_SHA256" 258 cipherSuiteNames[0xC038] = "TLS_ECDHE_PSK_WITH_AES_256_CBC_SHA384" 259 cipherSuiteNames[0xC039] = "TLS_ECDHE_PSK_WITH_NULL_SHA" 260 cipherSuiteNames[0xC03A] = "TLS_ECDHE_PSK_WITH_NULL_SHA256" 261 cipherSuiteNames[0xC03B] = "TLS_ECDHE_PSK_WITH_NULL_SHA384" 262 cipherSuiteNames[0xC03C] = "TLS_RSA_WITH_ARIA_128_CBC_SHA256" 263 cipherSuiteNames[0xC03D] = "TLS_RSA_WITH_ARIA_256_CBC_SHA384" 264 cipherSuiteNames[0xC03E] = "TLS_DH_DSS_WITH_ARIA_128_CBC_SHA256" 265 cipherSuiteNames[0xC03F] = "TLS_DH_DSS_WITH_ARIA_256_CBC_SHA384" 266 cipherSuiteNames[0xC040] = "TLS_DH_RSA_WITH_ARIA_128_CBC_SHA256" 267 cipherSuiteNames[0xC041] = "TLS_DH_RSA_WITH_ARIA_256_CBC_SHA384" 268 cipherSuiteNames[0xC042] = "TLS_DHE_DSS_WITH_ARIA_128_CBC_SHA256" 269 cipherSuiteNames[0xC043] = "TLS_DHE_DSS_WITH_ARIA_256_CBC_SHA384" 270 cipherSuiteNames[0xC044] = "TLS_DHE_RSA_WITH_ARIA_128_CBC_SHA256" 271 cipherSuiteNames[0xC045] = "TLS_DHE_RSA_WITH_ARIA_256_CBC_SHA384" 272 cipherSuiteNames[0xC046] = "TLS_DH_ANON_WITH_ARIA_128_CBC_SHA256" 273 cipherSuiteNames[0xC047] = "TLS_DH_ANON_WITH_ARIA_256_CBC_SHA384" 274 cipherSuiteNames[0xC048] = "TLS_ECDHE_ECDSA_WITH_ARIA_128_CBC_SHA256" 275 cipherSuiteNames[0xC049] = "TLS_ECDHE_ECDSA_WITH_ARIA_256_CBC_SHA384" 276 cipherSuiteNames[0xC04A] = "TLS_ECDH_ECDSA_WITH_ARIA_128_CBC_SHA256" 277 cipherSuiteNames[0xC04B] = "TLS_ECDH_ECDSA_WITH_ARIA_256_CBC_SHA384" 278 cipherSuiteNames[0xC04C] = "TLS_ECDHE_RSA_WITH_ARIA_128_CBC_SHA256" 279 cipherSuiteNames[0xC04D] = "TLS_ECDHE_RSA_WITH_ARIA_256_CBC_SHA384" 280 cipherSuiteNames[0xC04E] = "TLS_ECDH_RSA_WITH_ARIA_128_CBC_SHA256" 281 cipherSuiteNames[0xC04F] = "TLS_ECDH_RSA_WITH_ARIA_256_CBC_SHA384" 282 cipherSuiteNames[0xC050] = "TLS_RSA_WITH_ARIA_128_GCM_SHA256" 283 cipherSuiteNames[0xC051] = "TLS_RSA_WITH_ARIA_256_GCM_SHA384" 284 cipherSuiteNames[0xC052] = "TLS_DHE_RSA_WITH_ARIA_128_GCM_SHA256" 285 cipherSuiteNames[0xC053] = "TLS_DHE_RSA_WITH_ARIA_256_GCM_SHA384" 286 cipherSuiteNames[0xC054] = "TLS_DH_RSA_WITH_ARIA_128_GCM_SHA256" 287 cipherSuiteNames[0xC055] = "TLS_DH_RSA_WITH_ARIA_256_GCM_SHA384" 288 cipherSuiteNames[0xC056] = "TLS_DHE_DSS_WITH_ARIA_128_GCM_SHA256" 289 cipherSuiteNames[0xC057] = "TLS_DHE_DSS_WITH_ARIA_256_GCM_SHA384" 290 cipherSuiteNames[0xC058] = "TLS_DH_DSS_WITH_ARIA_128_GCM_SHA256" 291 cipherSuiteNames[0xC059] = "TLS_DH_DSS_WITH_ARIA_256_GCM_SHA384" 292 cipherSuiteNames[0xC05A] = "TLS_DH_ANON_WITH_ARIA_128_GCM_SHA256" 293 cipherSuiteNames[0xC05B] = "TLS_DH_ANON_WITH_ARIA_256_GCM_SHA384" 294 cipherSuiteNames[0xC05C] = "TLS_ECDHE_ECDSA_WITH_ARIA_128_GCM_SHA256" 295 cipherSuiteNames[0xC05D] = "TLS_ECDHE_ECDSA_WITH_ARIA_256_GCM_SHA384" 296 cipherSuiteNames[0xC05E] = "TLS_ECDH_ECDSA_WITH_ARIA_128_GCM_SHA256" 297 cipherSuiteNames[0xC05F] = "TLS_ECDH_ECDSA_WITH_ARIA_256_GCM_SHA384" 298 cipherSuiteNames[0xC060] = "TLS_ECDHE_RSA_WITH_ARIA_128_GCM_SHA256" 299 cipherSuiteNames[0xC061] = "TLS_ECDHE_RSA_WITH_ARIA_256_GCM_SHA384" 300 cipherSuiteNames[0xC062] = "TLS_ECDH_RSA_WITH_ARIA_128_GCM_SHA256" 301 cipherSuiteNames[0xC063] = "TLS_ECDH_RSA_WITH_ARIA_256_GCM_SHA384" 302 cipherSuiteNames[0xC064] = "TLS_PSK_WITH_ARIA_128_CBC_SHA256" 303 cipherSuiteNames[0xC065] = "TLS_PSK_WITH_ARIA_256_CBC_SHA384" 304 cipherSuiteNames[0xC066] = "TLS_DHE_PSK_WITH_ARIA_128_CBC_SHA256" 305 cipherSuiteNames[0xC067] = "TLS_DHE_PSK_WITH_ARIA_256_CBC_SHA384" 306 cipherSuiteNames[0xC068] = "TLS_RSA_PSK_WITH_ARIA_128_CBC_SHA256" 307 cipherSuiteNames[0xC069] = "TLS_RSA_PSK_WITH_ARIA_256_CBC_SHA384" 308 cipherSuiteNames[0xC06A] = "TLS_PSK_WITH_ARIA_128_GCM_SHA256" 309 cipherSuiteNames[0xC06B] = "TLS_PSK_WITH_ARIA_256_GCM_SHA384" 310 cipherSuiteNames[0xC06C] = "TLS_DHE_PSK_WITH_ARIA_128_GCM_SHA256" 311 cipherSuiteNames[0xC06D] = "TLS_DHE_PSK_WITH_ARIA_256_GCM_SHA384" 312 cipherSuiteNames[0xC06E] = "TLS_RSA_PSK_WITH_ARIA_128_GCM_SHA256" 313 cipherSuiteNames[0xC06F] = "TLS_RSA_PSK_WITH_ARIA_256_GCM_SHA384" 314 cipherSuiteNames[0xC070] = "TLS_ECDHE_PSK_WITH_ARIA_128_CBC_SHA256" 315 cipherSuiteNames[0xC071] = "TLS_ECDHE_PSK_WITH_ARIA_256_CBC_SHA384" 316 cipherSuiteNames[0xC072] = "TLS_ECDHE_ECDSA_WITH_CAMELLIA_128_CBC_SHA256" 317 cipherSuiteNames[0xC073] = "TLS_ECDHE_ECDSA_WITH_CAMELLIA_256_CBC_SHA384" 318 cipherSuiteNames[0xC074] = "TLS_ECDH_ECDSA_WITH_CAMELLIA_128_CBC_SHA256" 319 cipherSuiteNames[0xC075] = "TLS_ECDH_ECDSA_WITH_CAMELLIA_256_CBC_SHA384" 320 cipherSuiteNames[0xC076] = "TLS_ECDHE_RSA_WITH_CAMELLIA_128_CBC_SHA256" 321 cipherSuiteNames[0xC077] = "TLS_ECDHE_RSA_WITH_CAMELLIA_256_CBC_SHA384" 322 cipherSuiteNames[0xC078] = "TLS_ECDH_RSA_WITH_CAMELLIA_128_CBC_SHA256" 323 cipherSuiteNames[0xC079] = "TLS_ECDH_RSA_WITH_CAMELLIA_256_CBC_SHA384" 324 cipherSuiteNames[0xC07A] = "TLS_RSA_WITH_CAMELLIA_128_GCM_SHA256" 325 cipherSuiteNames[0xC07B] = "TLS_RSA_WITH_CAMELLIA_256_GCM_SHA384" 326 cipherSuiteNames[0xC07C] = "TLS_DHE_RSA_WITH_CAMELLIA_128_GCM_SHA256" 327 cipherSuiteNames[0xC07D] = "TLS_DHE_RSA_WITH_CAMELLIA_256_GCM_SHA384" 328 cipherSuiteNames[0xC07E] = "TLS_DH_RSA_WITH_CAMELLIA_128_GCM_SHA256" 329 cipherSuiteNames[0xC07F] = "TLS_DH_RSA_WITH_CAMELLIA_256_GCM_SHA384" 330 cipherSuiteNames[0xC080] = "TLS_DHE_DSS_WITH_CAMELLIA_128_GCM_SHA256" 331 cipherSuiteNames[0xC081] = "TLS_DHE_DSS_WITH_CAMELLIA_256_GCM_SHA384" 332 cipherSuiteNames[0xC082] = "TLS_DH_DSS_WITH_CAMELLIA_128_GCM_SHA256" 333 cipherSuiteNames[0xC083] = "TLS_DH_DSS_WITH_CAMELLIA_256_GCM_SHA384" 334 cipherSuiteNames[0xC084] = "TLS_DH_ANON_WITH_CAMELLIA_128_GCM_SHA256" 335 cipherSuiteNames[0xC085] = "TLS_DH_ANON_WITH_CAMELLIA_256_GCM_SHA384" 336 cipherSuiteNames[0xC086] = "TLS_ECDHE_ECDSA_WITH_CAMELLIA_128_GCM_SHA256" 337 cipherSuiteNames[0xC087] = "TLS_ECDHE_ECDSA_WITH_CAMELLIA_256_GCM_SHA384" 338 cipherSuiteNames[0xC088] = "TLS_ECDH_ECDSA_WITH_CAMELLIA_128_GCM_SHA256" 339 cipherSuiteNames[0xC089] = "TLS_ECDH_ECDSA_WITH_CAMELLIA_256_GCM_SHA384" 340 cipherSuiteNames[0xC08A] = "TLS_ECDHE_RSA_WITH_CAMELLIA_128_GCM_SHA256" 341 cipherSuiteNames[0xC08B] = "TLS_ECDHE_RSA_WITH_CAMELLIA_256_GCM_SHA384" 342 cipherSuiteNames[0xC08C] = "TLS_ECDH_RSA_WITH_CAMELLIA_128_GCM_SHA256" 343 cipherSuiteNames[0xC08D] = "TLS_ECDH_RSA_WITH_CAMELLIA_256_GCM_SHA384" 344 cipherSuiteNames[0xC08E] = "TLS_PSK_WITH_CAMELLIA_128_GCM_SHA256" 345 cipherSuiteNames[0xC08F] = "TLS_PSK_WITH_CAMELLIA_256_GCM_SHA384" 346 cipherSuiteNames[0xC090] = "TLS_DHE_PSK_WITH_CAMELLIA_128_GCM_SHA256" 347 cipherSuiteNames[0xC091] = "TLS_DHE_PSK_WITH_CAMELLIA_256_GCM_SHA384" 348 cipherSuiteNames[0xC092] = "TLS_RSA_PSK_WITH_CAMELLIA_128_GCM_SHA256" 349 cipherSuiteNames[0xC093] = "TLS_RSA_PSK_WITH_CAMELLIA_256_GCM_SHA384" 350 cipherSuiteNames[0xC094] = "TLS_PSK_WITH_CAMELLIA_128_CBC_SHA256" 351 cipherSuiteNames[0xC095] = "TLS_PSK_WITH_CAMELLIA_256_CBC_SHA384" 352 cipherSuiteNames[0xC096] = "TLS_DHE_PSK_WITH_CAMELLIA_128_CBC_SHA256" 353 cipherSuiteNames[0xC097] = "TLS_DHE_PSK_WITH_CAMELLIA_256_CBC_SHA384" 354 cipherSuiteNames[0xC098] = "TLS_RSA_PSK_WITH_CAMELLIA_128_CBC_SHA256" 355 cipherSuiteNames[0xC099] = "TLS_RSA_PSK_WITH_CAMELLIA_256_CBC_SHA384" 356 cipherSuiteNames[0xC09A] = "TLS_ECDHE_PSK_WITH_CAMELLIA_128_CBC_SHA256" 357 cipherSuiteNames[0xC09B] = "TLS_ECDHE_PSK_WITH_CAMELLIA_256_CBC_SHA384" 358 cipherSuiteNames[0xC09C] = "TLS_RSA_WITH_AES_128_CCM" 359 cipherSuiteNames[0xC09D] = "TLS_RSA_WITH_AES_256_CCM" 360 cipherSuiteNames[0xC09E] = "TLS_DHE_RSA_WITH_AES_128_CCM" 361 cipherSuiteNames[0xC09F] = "TLS_DHE_RSA_WITH_AES_256_CCM" 362 cipherSuiteNames[0xC0A0] = "TLS_RSA_WITH_AES_128_CCM_8" 363 cipherSuiteNames[0xC0A1] = "TLS_RSA_WITH_AES_256_CCM_8" 364 cipherSuiteNames[0xC0A2] = "TLS_DHE_RSA_WITH_AES_128_CCM_8" 365 cipherSuiteNames[0xC0A3] = "TLS_DHE_RSA_WITH_AES_256_CCM_8" 366 cipherSuiteNames[0xC0A4] = "TLS_PSK_WITH_AES_128_CCM" 367 cipherSuiteNames[0xC0A5] = "TLS_PSK_WITH_AES_256_CCM" 368 cipherSuiteNames[0xC0A6] = "TLS_DHE_PSK_WITH_AES_128_CCM" 369 cipherSuiteNames[0xC0A7] = "TLS_DHE_PSK_WITH_AES_256_CCM" 370 cipherSuiteNames[0xC0A8] = "TLS_PSK_WITH_AES_128_CCM_8" 371 cipherSuiteNames[0xC0A9] = "TLS_PSK_WITH_AES_256_CCM_8" 372 cipherSuiteNames[0xC0AA] = "TLS_PSK_DHE_WITH_AES_128_CCM_8" 373 cipherSuiteNames[0xC0AB] = "TLS_PSK_DHE_WITH_AES_256_CCM_8" 374 cipherSuiteNames[0xC0AC] = "TLS_ECDHE_ECDSA_WITH_AES_128_CCM" 375 cipherSuiteNames[0xC0AD] = "TLS_ECDHE_ECDSA_WITH_AES_256_CCM" 376 cipherSuiteNames[0xC0AE] = "TLS_ECDHE_ECDSA_WITH_AES_128_CCM_8" 377 cipherSuiteNames[0xC0AF] = "TLS_ECDHE_ECDSA_WITH_AES_256_CCM_8" 378 cipherSuiteNames[0xCAFE] = "TLS_ECDHE_PSK_WITH_AES_128_GCM_SHA256" 379 cipherSuiteNames[0xCC13] = "TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256_OLD" 380 cipherSuiteNames[0xCC14] = "TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256_OLD" 381 cipherSuiteNames[0xCC15] = "TLS_DHE_RSA_WITH_CHACHA20_POLY1305_SHA256_OLD" 382 cipherSuiteNames[0xCCA8] = "TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256" 383 cipherSuiteNames[0xCCA9] = "TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256" 384 cipherSuiteNames[0xCCAA] = "TLS_DHE_RSA_WITH_CHACHA20_POLY1305_SHA256" 385 cipherSuiteNames[0xFEFE] = "SSL_RSA_FIPS_WITH_DES_CBC_SHA" 386 cipherSuiteNames[0xFEFF] = "SSL_RSA_FIPS_WITH_3DES_EDE_CBC_SHA" 387 cipherSuiteNames[0xFFE0] = "SSL_RSA_FIPS_WITH_3DES_EDE_CBC_SHA" 388 cipherSuiteNames[0xFFE1] = "SSL_RSA_FIPS_WITH_DES_CBC_SHA" 389 cipherSuiteNames[0xFF80] = "SSL_RSA_WITH_RC2_CBC_MD5" 390 cipherSuiteNames[0xFF81] = "SSL_RSA_WITH_IDEA_CBC_MD5" 391 cipherSuiteNames[0xFF82] = "SSL_RSA_WITH_DES_CBC_MD5" 392 cipherSuiteNames[0xFF83] = "SSL_RSA_WITH_3DES_EDE_CBC_MD5" 393 cipherSuiteNames[0xFF03] = "SSL_EN_RC2_128_CBC_WITH_MD5" 394 cipherSuiteNames[0xFF85] = "OP_PCL_TLS10_AES_128_CBC_SHA512" 395 396 // https://www.iana.org/assignments/comp-meth-ids/comp-meth-ids.xhtml#comp-meth-ids-2 397 compressionNames = make(map[uint8]string) 398 compressionNames[0] = "NULL" 399 compressionNames[1] = "DEFLATE" 400 compressionNames[64] = "LZS" 401 402 // https://www.iana.org/assignments/tls-parameters/tls-parameters.xml#tls-parameters-8 403 curveNames = make(map[uint16]string) 404 curveNames[1] = "sect163k1" 405 curveNames[2] = "sect163r1" 406 curveNames[3] = "sect163r2" 407 curveNames[4] = "sect193r1" 408 curveNames[5] = "sect193r2" 409 curveNames[6] = "sect233k1" 410 curveNames[7] = "sect233r1" 411 curveNames[8] = "sect239k1" 412 curveNames[9] = "sect283k1" 413 curveNames[10] = "sect283r1" 414 curveNames[11] = "sect409k1" 415 curveNames[12] = "sect409r1" 416 curveNames[13] = "sect571k1" 417 curveNames[14] = "sect571r1" 418 curveNames[15] = "secp160k1" 419 curveNames[16] = "secp160r1" 420 curveNames[17] = "secp160r2" 421 curveNames[18] = "secp192k1" 422 curveNames[19] = "secp192r1" 423 curveNames[20] = "secp224k1" 424 curveNames[21] = "secp224r1" 425 curveNames[22] = "secp256k1" 426 curveNames[23] = "secp256r1" 427 curveNames[24] = "secp384r1" 428 curveNames[25] = "secp521r1" 429 curveNames[26] = "brainpoolP256r1" 430 curveNames[27] = "brainpoolP384r1" 431 curveNames[28] = "brainpoolP512r1" 432 curveNames[29] = "ecdh_x25519" // TEMPORARY -- expires 1Mar2018 433 curveNames[30] = "ecdh_x448" // TEMPORARY -- expires 1Mar2018 434 curveNames[256] = "ffdhe2048" 435 curveNames[257] = "ffdhe3072" 436 curveNames[258] = "ffdhe4096" 437 curveNames[259] = "ffdhe6144" 438 curveNames[260] = "ffdhe8192" 439 curveNames[65281] = "arbitrary_explicit_prime_curves" 440 curveNames[65282] = "arbitrary_explicit_char2_curves" 441 442 // https://www.iana.org/assignments/tls-parameters/tls-parameters.xml#tls-parameters-9 443 pointFormatNames = make(map[uint8]string) 444 pointFormatNames[0] = "uncompressed" 445 pointFormatNames[1] = "ansiX962_compressed_prime" 446 pointFormatNames[2] = "ansiX962_compressed_char2" 447 448 // Name-value paires *are* not standardized, only dereferenced for JSON output 449 clientAuthTypeNames = make(map[int]string) 450 clientAuthTypeNames[0] = "NoClientCert" 451 clientAuthTypeNames[1] = "RequestClientCert" 452 clientAuthTypeNames[2] = "RequireAnyClientCert" 453 clientAuthTypeNames[3] = "VerifyClientCertIfGiven" 454 clientAuthTypeNames[4] = "RequireAndVerifyClientCert" 455 456 // https://tools.ietf.org/html/draft-ietf-tls-tls13-18#section-4.2.3 457 signatureSchemeNames = make(map[uint16]string) 458 signatureSchemeNames[uint16(PKCS1WithSHA1)] = "rsa_pkcs1_sha1" 459 signatureSchemeNames[uint16(PKCS1WithSHA256)] = "rsa_pkcs1_sha256" 460 signatureSchemeNames[uint16(PKCS1WithSHA384)] = "rsa_pkcs1_sha384" 461 signatureSchemeNames[uint16(PKCS1WithSHA512)] = "rsa_pkcs1_sha512" 462 signatureSchemeNames[uint16(PSSWithSHA256)] = "rsa_pss_sha256" 463 signatureSchemeNames[uint16(PSSWithSHA384)] = "rsa_pss_sha384" 464 signatureSchemeNames[uint16(PSSWithSHA512)] = "rsa_pss_sha512" 465 signatureSchemeNames[uint16(ECDSAWithP256AndSHA256)] = "ecdsa_secp256r1_sha256" 466 signatureSchemeNames[uint16(ECDSAWithP384AndSHA384)] = "ecdsa_secp384r1_sha384" 467 signatureSchemeNames[uint16(ECDSAWithP521AndSHA512)] = "ecdsa_secp521r1_sha512" 468 signatureSchemeNames[uint16(EdDSAWithEd25519)] = "ed25519" 469 signatureSchemeNames[uint16(EdDSAWithEd448)] = "ed448" 470 } 471 472 func nameForSignature(s uint8) string { 473 if name, ok := signatureNames[s]; ok { 474 return name 475 } 476 return "unknown." + strconv.Itoa(int(s)) 477 } 478 479 func nameForHash(h uint8) string { 480 if name, ok := hashNames[h]; ok { 481 return name 482 } 483 num := strconv.Itoa(int(h)) 484 return "unknown." + num 485 } 486 487 func signatureToName(n string) uint8 { 488 for k, v := range signatureNames { 489 if v == n { 490 return k 491 } 492 } 493 s, _ := strconv.ParseInt(strings.TrimPrefix(n, "unknown."), 10, 32) 494 return uint8(s) 495 } 496 497 func hashToName(n string) uint8 { 498 for k, v := range hashNames { 499 if v == n { 500 return k 501 } 502 } 503 h, _ := strconv.ParseInt(strings.TrimPrefix(n, "unknown."), 10, 32) 504 return uint8(h) 505 } 506 507 func nameForSuite(cs uint16) string { 508 cipher := CipherSuite(cs) 509 return cipher.String() 510 } 511 512 func (cs CipherSuite) Bytes() []byte { 513 return []byte{uint8(cs >> 8), uint8(cs)} 514 } 515 516 func (cs CipherSuite) String() string { 517 if name, ok := cipherSuiteNames[int(cs)]; ok { 518 return name 519 } 520 return "unknown" 521 } 522 523 func (cm CompressionMethod) String() string { 524 if name, ok := compressionNames[uint8(cm)]; ok { 525 return name 526 } 527 return "unknown" 528 } 529 530 func (curveID CurveID) String() string { 531 if name, ok := curveNames[uint16(curveID)]; ok { 532 return name 533 } 534 return "unknown" 535 } 536 537 func (pFormat PointFormat) String() string { 538 if name, ok := pointFormatNames[uint8(pFormat)]; ok { 539 return name 540 } 541 return "unknown" 542 } 543 544 func nameForCompressionMethod(cm uint8) string { 545 compressionMethod := CompressionMethod(cm) 546 return compressionMethod.String() 547 } 548 549 func nameForCurve(curveID uint16) string { 550 curve := CurveID(curveID) 551 return curve.String() 552 } 553 554 func nameForPointFormat(pFormat uint8) string { 555 format := PointFormat(pFormat) 556 return format.String() 557 } 558 559 func (v TLSVersion) Bytes() []byte { 560 return []byte{uint8(v >> 8), uint8(v)} 561 } 562 563 func (v TLSVersion) String() string { 564 switch v { 565 case 0x0300: 566 return "SSLv3" 567 case 0x0301: 568 return "TLSv1.0" 569 case 0x0302: 570 return "TLSv1.1" 571 case 0x0303: 572 return "TLSv1.2" 573 default: 574 return "unknown" 575 } 576 } 577 578 func nameForSignatureScheme(scheme uint16) string { 579 sigScheme := SignatureScheme(scheme) 580 return sigScheme.String() 581 } 582 583 func (sigScheme *SignatureScheme) String() string { 584 if name, ok := signatureSchemeNames[uint16(*sigScheme)]; ok { 585 return name 586 } 587 return "unknown" 588 } 589 590 func (sigScheme *SignatureScheme) Bytes() []byte { 591 return []byte{byte(*sigScheme >> 8), byte(*sigScheme)} 592 }