Documentation ¶
Index ¶
- Constants
- Variables
- func CipherSuiteName(id uint16) string
- func GetTransportByClientHelloSpec(spec *tls.ClientHelloSpec) *http.Transport
- func NotImplementedCipherSuites(id uint16) string
- func ParseJA3ToClientHelloSpec(str string) (*tls.ClientHelloSpec, error)
- type CipherSuite
- type CurveID
- type EllipticCurve
- type EllipticCurvePointFormat
- type ExtensionsType
- type JA3
- type JA3S
- type TLSVersion
Constants ¶
const ( TLS_NULL_WITH_NULL_NULL uint16 = 0x0000 TLS_RSA_WITH_NULL_MD5 uint16 = 0x0001 TLS_RSA_WITH_NULL_SHA uint16 = 0x0002 TLS_RSA_EXPORT_WITH_RC4_40_MD5 uint16 = 0x0003 TLS_RSA_WITH_RC4_128_MD5 uint16 = 0x0004 TLS_RSA_EXPORT_WITH_RC2_CBC_40_MD5 uint16 = 0x0006 TLS_RSA_WITH_IDEA_CBC_SHA uint16 = 0x0007 TLS_RSA_EXPORT_WITH_DES40_CBC_SHA uint16 = 0x0008 TLS_RSA_WITH_DES_CBC_SHA uint16 = 0x0009 TLS_DH_DSS_EXPORT_WITH_DES40_CBC_SHA uint16 = 0x000B TLS_DH_DSS_WITH_DES_CBC_SHA uint16 = 0x000C TLS_DH_DSS_WITH_3DES_EDE_CBC_SHA uint16 = 0x000D TLS_DH_RSA_EXPORT_WITH_DES40_CBC_SHA uint16 = 0x000E TLS_DH_RSA_WITH_DES_CBC_SHA uint16 = 0x000F TLS_DH_RSA_WITH_3DES_EDE_CBC_SHA uint16 = 0x0010 TLS_DHE_DSS_EXPORT_WITH_DES40_CBC_SHA uint16 = 0x0011 TLS_DHE_DSS_WITH_DES_CBC_SHA uint16 = 0x0012 TLS_DHE_DSS_WITH_3DES_EDE_CBC_SHA uint16 = 0x0013 TLS_DHE_RSA_EXPORT_WITH_DES40_CBC_SHA uint16 = 0x0014 TLS_DHE_RSA_WITH_DES_CBC_SHA uint16 = 0x0015 TLS_DHE_RSA_WITH_3DES_EDE_CBC_SHA uint16 = 0x0016 TLS_DH_anon_EXPORT_WITH_RC4_40_MD5 uint16 = 0x0017 TLS_DH_anon_WITH_RC4_128_MD5 uint16 = 0x0018 TLS_DH_anon_EXPORT_WITH_DES40_CBC_SHA uint16 = 0x0019 TLS_DH_anon_WITH_DES_CBC_SHA uint16 = 0x001A TLS_DH_anon_WITH_3DES_EDE_CBC_SHA uint16 = 0x001B // Reserved uint16 = 0x001C-1D TLS_KRB5_WITH_DES_CBC_SHA uint16 = 0x001E TLS_KRB5_WITH_3DES_EDE_CBC_SHA uint16 = 0x001F TLS_KRB5_WITH_RC4_128_SHA uint16 = 0x0020 TLS_KRB5_WITH_IDEA_CBC_SHA uint16 = 0x0021 TLS_KRB5_WITH_DES_CBC_MD5 uint16 = 0x0022 TLS_KRB5_WITH_3DES_EDE_CBC_MD5 uint16 = 0x0023 TLS_KRB5_WITH_RC4_128_MD5 uint16 = 0x0024 TLS_KRB5_WITH_IDEA_CBC_MD5 uint16 = 0x0025 TLS_KRB5_EXPORT_WITH_DES_CBC_40_SHA uint16 = 0x0026 TLS_KRB5_EXPORT_WITH_RC2_CBC_40_SHA uint16 = 0x0027 TLS_KRB5_EXPORT_WITH_RC4_40_SHA uint16 = 0x0028 TLS_KRB5_EXPORT_WITH_DES_CBC_40_MD5 uint16 = 0x0029 TLS_KRB5_EXPORT_WITH_RC2_CBC_40_MD5 uint16 = 0x002A TLS_KRB5_EXPORT_WITH_RC4_40_MD5 uint16 = 0x002B TLS_PSK_WITH_NULL_SHA uint16 = 0x002C TLS_DHE_PSK_WITH_NULL_SHA uint16 = 0x002D TLS_RSA_PSK_WITH_NULL_SHA uint16 = 0x002E TLS_DH_DSS_WITH_AES_128_CBC_SHA uint16 = 0x0030 TLS_DH_RSA_WITH_AES_128_CBC_SHA uint16 = 0x0031 TLS_DHE_DSS_WITH_AES_128_CBC_SHA uint16 = 0x0032 TLS_DHE_RSA_WITH_AES_128_CBC_SHA uint16 = 0x0033 TLS_DH_anon_WITH_AES_128_CBC_SHA uint16 = 0x0034 TLS_DH_DSS_WITH_AES_256_CBC_SHA uint16 = 0x0036 TLS_DH_RSA_WITH_AES_256_CBC_SHA uint16 = 0x0037 TLS_DHE_DSS_WITH_AES_256_CBC_SHA uint16 = 0x0038 TLS_DHE_RSA_WITH_AES_256_CBC_SHA uint16 = 0x0039 TLS_DH_anon_WITH_AES_256_CBC_SHA uint16 = 0x003A TLS_RSA_WITH_NULL_SHA256 uint16 = 0x003B TLS_RSA_WITH_AES_256_CBC_SHA256 uint16 = 0x003D TLS_DH_DSS_WITH_AES_128_CBC_SHA256 uint16 = 0x003E TLS_DH_RSA_WITH_AES_128_CBC_SHA256 uint16 = 0x003F TLS_DHE_DSS_WITH_AES_128_CBC_SHA256 uint16 = 0x0040 TLS_RSA_WITH_CAMELLIA_128_CBC_SHA uint16 = 0x0041 TLS_DH_DSS_WITH_CAMELLIA_128_CBC_SHA uint16 = 0x0042 TLS_DH_RSA_WITH_CAMELLIA_128_CBC_SHA uint16 = 0x0043 TLS_DHE_DSS_WITH_CAMELLIA_128_CBC_SHA uint16 = 0x0044 TLS_DHE_RSA_WITH_CAMELLIA_128_CBC_SHA uint16 = 0x0045 TLS_DH_anon_WITH_CAMELLIA_128_CBC_SHA uint16 = 0x0046 // Reserved uint16 = 0x0047-4F // Reserved uint16 = 0x0050-58 // Reserved uint16 = 0x0059-5C // Unassigned uint16 = 0x005D-5F // Reserved uint16 = 0x0060-66 TLS_DHE_RSA_WITH_AES_128_CBC_SHA256 uint16 = 0x0067 TLS_DH_DSS_WITH_AES_256_CBC_SHA256 uint16 = 0x0068 TLS_DH_RSA_WITH_AES_256_CBC_SHA256 uint16 = 0x0069 TLS_DHE_DSS_WITH_AES_256_CBC_SHA256 uint16 = 0x006A TLS_DHE_RSA_WITH_AES_256_CBC_SHA256 uint16 = 0x006B TLS_DH_anon_WITH_AES_128_CBC_SHA256 uint16 = 0x006C TLS_DH_anon_WITH_AES_256_CBC_SHA256 uint16 = 0x006D // Unassigned uint16 = 0x006E-83 TLS_RSA_WITH_CAMELLIA_256_CBC_SHA uint16 = 0x0084 TLS_DH_DSS_WITH_CAMELLIA_256_CBC_SHA uint16 = 0x0085 TLS_DH_RSA_WITH_CAMELLIA_256_CBC_SHA uint16 = 0x0086 TLS_DHE_DSS_WITH_CAMELLIA_256_CBC_SHA uint16 = 0x0087 TLS_DHE_RSA_WITH_CAMELLIA_256_CBC_SHA uint16 = 0x0088 TLS_DH_anon_WITH_CAMELLIA_256_CBC_SHA uint16 = 0x0089 TLS_PSK_WITH_RC4_128_SHA uint16 = 0x008A TLS_PSK_WITH_3DES_EDE_CBC_SHA uint16 = 0x008B TLS_PSK_WITH_AES_128_CBC_SHA uint16 = 0x008C TLS_PSK_WITH_AES_256_CBC_SHA uint16 = 0x008D TLS_DHE_PSK_WITH_RC4_128_SHA uint16 = 0x008E TLS_DHE_PSK_WITH_3DES_EDE_CBC_SHA uint16 = 0x008F TLS_DHE_PSK_WITH_AES_128_CBC_SHA uint16 = 0x0090 TLS_DHE_PSK_WITH_AES_256_CBC_SHA uint16 = 0x0091 TLS_RSA_PSK_WITH_RC4_128_SHA uint16 = 0x0092 TLS_RSA_PSK_WITH_3DES_EDE_CBC_SHA uint16 = 0x0093 TLS_RSA_PSK_WITH_AES_128_CBC_SHA uint16 = 0x0094 TLS_RSA_PSK_WITH_AES_256_CBC_SHA uint16 = 0x0095 TLS_RSA_WITH_SEED_CBC_SHA uint16 = 0x0096 TLS_DH_DSS_WITH_SEED_CBC_SHA uint16 = 0x0097 TLS_DH_RSA_WITH_SEED_CBC_SHA uint16 = 0x0098 TLS_DHE_DSS_WITH_SEED_CBC_SHA uint16 = 0x0099 TLS_DHE_RSA_WITH_SEED_CBC_SHA uint16 = 0x009A TLS_DH_anon_WITH_SEED_CBC_SHA uint16 = 0x009B TLS_DHE_RSA_WITH_AES_128_GCM_SHA256 uint16 = 0x009E TLS_DHE_RSA_WITH_AES_256_GCM_SHA384 uint16 = 0x009F TLS_DH_RSA_WITH_AES_128_GCM_SHA256 uint16 = 0x00A0 TLS_DH_RSA_WITH_AES_256_GCM_SHA384 uint16 = 0x00A1 TLS_DHE_DSS_WITH_AES_128_GCM_SHA256 uint16 = 0x00A2 TLS_DHE_DSS_WITH_AES_256_GCM_SHA384 uint16 = 0x00A3 TLS_DH_DSS_WITH_AES_128_GCM_SHA256 uint16 = 0x00A4 TLS_DH_DSS_WITH_AES_256_GCM_SHA384 uint16 = 0x00A5 TLS_DH_anon_WITH_AES_128_GCM_SHA256 uint16 = 0x00A6 TLS_DH_anon_WITH_AES_256_GCM_SHA384 uint16 = 0x00A7 TLS_PSK_WITH_AES_128_GCM_SHA256 uint16 = 0x00A8 TLS_PSK_WITH_AES_256_GCM_SHA384 uint16 = 0x00A9 TLS_DHE_PSK_WITH_AES_128_GCM_SHA256 uint16 = 0x00AA TLS_DHE_PSK_WITH_AES_256_GCM_SHA384 uint16 = 0x00AB TLS_RSA_PSK_WITH_AES_128_GCM_SHA256 uint16 = 0x00AC TLS_RSA_PSK_WITH_AES_256_GCM_SHA384 uint16 = 0x00AD TLS_PSK_WITH_AES_128_CBC_SHA256 uint16 = 0x00AE TLS_PSK_WITH_AES_256_CBC_SHA384 uint16 = 0x00AF TLS_PSK_WITH_NULL_SHA256 uint16 = 0x00B0 TLS_PSK_WITH_NULL_SHA384 uint16 = 0x00B1 TLS_DHE_PSK_WITH_AES_128_CBC_SHA256 uint16 = 0x00B2 TLS_DHE_PSK_WITH_AES_256_CBC_SHA384 uint16 = 0x00B3 TLS_DHE_PSK_WITH_NULL_SHA256 uint16 = 0x00B4 TLS_DHE_PSK_WITH_NULL_SHA384 uint16 = 0x00B5 TLS_RSA_PSK_WITH_AES_128_CBC_SHA256 uint16 = 0x00B6 TLS_RSA_PSK_WITH_AES_256_CBC_SHA384 uint16 = 0x00B7 TLS_RSA_PSK_WITH_NULL_SHA256 uint16 = 0x00B8 TLS_RSA_PSK_WITH_NULL_SHA384 uint16 = 0x00B9 TLS_RSA_WITH_CAMELLIA_128_CBC_SHA256 uint16 = 0x00BA TLS_DH_DSS_WITH_CAMELLIA_128_CBC_SHA256 uint16 = 0x00BB TLS_DH_RSA_WITH_CAMELLIA_128_CBC_SHA256 uint16 = 0x00BC TLS_DHE_DSS_WITH_CAMELLIA_128_CBC_SHA256 uint16 = 0x00BD TLS_DHE_RSA_WITH_CAMELLIA_128_CBC_SHA256 uint16 = 0x00BE TLS_DH_anon_WITH_CAMELLIA_128_CBC_SHA256 uint16 = 0x00BF TLS_RSA_WITH_CAMELLIA_256_CBC_SHA256 uint16 = 0x00C0 TLS_DH_DSS_WITH_CAMELLIA_256_CBC_SHA256 uint16 = 0x00C1 TLS_DH_RSA_WITH_CAMELLIA_256_CBC_SHA256 uint16 = 0x00C2 TLS_DHE_DSS_WITH_CAMELLIA_256_CBC_SHA256 uint16 = 0x00C3 TLS_DHE_RSA_WITH_CAMELLIA_256_CBC_SHA256 uint16 = 0x00C4 TLS_DH_anon_WITH_CAMELLIA_256_CBC_SHA256 uint16 = 0x00C5 // Unassigned uint16 = 0x00C6-FE TLS_EMPTY_RENEGOTIATION_INFO_SCSV uint16 = 0x00FF // Unassigned uint16 = 0x5601 - 0xC000 TLS_ECDH_ECDSA_WITH_NULL_SHA uint16 = 0xC001 TLS_ECDH_ECDSA_WITH_RC4_128_SHA uint16 = 0xC002 TLS_ECDH_ECDSA_WITH_3DES_EDE_CBC_SHA uint16 = 0xC003 TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA uint16 = 0xC004 TLS_ECDH_ECDSA_WITH_AES_256_CBC_SHA uint16 = 0xC005 TLS_ECDHE_ECDSA_WITH_NULL_SHA uint16 = 0xC006 TLS_ECDHE_ECDSA_WITH_3DES_EDE_CBC_SHA uint16 = 0xC008 TLS_ECDH_RSA_WITH_NULL_SHA uint16 = 0xC00B TLS_ECDH_RSA_WITH_RC4_128_SHA uint16 = 0xC00C TLS_ECDH_RSA_WITH_3DES_EDE_CBC_SHA uint16 = 0xC00D TLS_ECDH_RSA_WITH_AES_128_CBC_SHA uint16 = 0xC00E TLS_ECDH_RSA_WITH_AES_256_CBC_SHA uint16 = 0xC00F TLS_ECDHE_RSA_WITH_NULL_SHA uint16 = 0xC010 TLS_ECDH_anon_WITH_NULL_SHA uint16 = 0xC015 TLS_ECDH_anon_WITH_RC4_128_SHA uint16 = 0xC016 TLS_ECDH_anon_WITH_3DES_EDE_CBC_SHA uint16 = 0xC017 TLS_ECDH_anon_WITH_AES_128_CBC_SHA uint16 = 0xC018 TLS_ECDH_anon_WITH_AES_256_CBC_SHA uint16 = 0xC019 TLS_SRP_SHA_WITH_3DES_EDE_CBC_SHA uint16 = 0xC01A TLS_SRP_SHA_RSA_WITH_3DES_EDE_CBC_SHA uint16 = 0xC01B TLS_SRP_SHA_DSS_WITH_3DES_EDE_CBC_SHA uint16 = 0xC01C TLS_SRP_SHA_WITH_AES_128_CBC_SHA uint16 = 0xC01D TLS_SRP_SHA_RSA_WITH_AES_128_CBC_SHA uint16 = 0xC01E TLS_SRP_SHA_DSS_WITH_AES_128_CBC_SHA uint16 = 0xC01F TLS_SRP_SHA_WITH_AES_256_CBC_SHA uint16 = 0xC020 TLS_SRP_SHA_RSA_WITH_AES_256_CBC_SHA uint16 = 0xC021 TLS_SRP_SHA_DSS_WITH_AES_256_CBC_SHA uint16 = 0xC022 TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384 uint16 = 0xC024 TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA256 uint16 = 0xC025 TLS_ECDH_ECDSA_WITH_AES_256_CBC_SHA384 uint16 = 0xC026 TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384 uint16 = 0xC028 TLS_ECDH_RSA_WITH_AES_128_CBC_SHA256 uint16 = 0xC029 TLS_ECDH_RSA_WITH_AES_256_CBC_SHA384 uint16 = 0xC02A TLS_ECDH_ECDSA_WITH_AES_128_GCM_SHA256 uint16 = 0xC02D TLS_ECDH_ECDSA_WITH_AES_256_GCM_SHA384 uint16 = 0xC02E TLS_ECDH_RSA_WITH_AES_128_GCM_SHA256 uint16 = 0xC031 TLS_ECDH_RSA_WITH_AES_256_GCM_SHA384 uint16 = 0xC032 TLS_ECDHE_PSK_WITH_RC4_128_SHA uint16 = 0xC033 TLS_ECDHE_PSK_WITH_3DES_EDE_CBC_SHA uint16 = 0xC034 TLS_ECDHE_PSK_WITH_AES_128_CBC_SHA uint16 = 0xC035 TLS_ECDHE_PSK_WITH_AES_256_CBC_SHA uint16 = 0xC036 TLS_ECDHE_PSK_WITH_AES_128_CBC_SHA256 uint16 = 0xC037 TLS_ECDHE_PSK_WITH_AES_256_CBC_SHA384 uint16 = 0xC038 TLS_ECDHE_PSK_WITH_NULL_SHA uint16 = 0xC039 TLS_ECDHE_PSK_WITH_NULL_SHA256 uint16 = 0xC03A TLS_ECDHE_PSK_WITH_NULL_SHA384 uint16 = 0xC03B TLS_RSA_WITH_ARIA_128_CBC_SHA256 uint16 = 0xC03C TLS_RSA_WITH_ARIA_256_CBC_SHA384 uint16 = 0xC03D TLS_DH_DSS_WITH_ARIA_128_CBC_SHA256 uint16 = 0xC03E TLS_DH_DSS_WITH_ARIA_256_CBC_SHA384 uint16 = 0xC03F TLS_DH_RSA_WITH_ARIA_128_CBC_SHA256 uint16 = 0xC040 TLS_DH_RSA_WITH_ARIA_256_CBC_SHA384 uint16 = 0xC041 TLS_DHE_DSS_WITH_ARIA_128_CBC_SHA256 uint16 = 0xC042 TLS_DHE_DSS_WITH_ARIA_256_CBC_SHA384 uint16 = 0xC043 TLS_DHE_RSA_WITH_ARIA_128_CBC_SHA256 uint16 = 0xC044 TLS_DHE_RSA_WITH_ARIA_256_CBC_SHA384 uint16 = 0xC045 TLS_DH_anon_WITH_ARIA_128_CBC_SHA256 uint16 = 0xC046 TLS_DH_anon_WITH_ARIA_256_CBC_SHA384 uint16 = 0xC047 TLS_ECDHE_ECDSA_WITH_ARIA_128_CBC_SHA256 uint16 = 0xC048 TLS_ECDHE_ECDSA_WITH_ARIA_256_CBC_SHA384 uint16 = 0xC049 TLS_ECDH_ECDSA_WITH_ARIA_128_CBC_SHA256 uint16 = 0xC04A TLS_ECDH_ECDSA_WITH_ARIA_256_CBC_SHA384 uint16 = 0xC04B TLS_ECDHE_RSA_WITH_ARIA_128_CBC_SHA256 uint16 = 0xC04C TLS_ECDHE_RSA_WITH_ARIA_256_CBC_SHA384 uint16 = 0xC04D TLS_ECDH_RSA_WITH_ARIA_128_CBC_SHA256 uint16 = 0xC04E TLS_ECDH_RSA_WITH_ARIA_256_CBC_SHA384 uint16 = 0xC04F TLS_RSA_WITH_ARIA_128_GCM_SHA256 uint16 = 0xC050 TLS_RSA_WITH_ARIA_256_GCM_SHA384 uint16 = 0xC051 TLS_DHE_RSA_WITH_ARIA_128_GCM_SHA256 uint16 = 0xC052 TLS_DHE_RSA_WITH_ARIA_256_GCM_SHA384 uint16 = 0xC053 TLS_DH_RSA_WITH_ARIA_128_GCM_SHA256 uint16 = 0xC054 TLS_DH_RSA_WITH_ARIA_256_GCM_SHA384 uint16 = 0xC055 TLS_DHE_DSS_WITH_ARIA_128_GCM_SHA256 uint16 = 0xC056 TLS_DHE_DSS_WITH_ARIA_256_GCM_SHA384 uint16 = 0xC057 TLS_DH_DSS_WITH_ARIA_128_GCM_SHA256 uint16 = 0xC058 TLS_DH_DSS_WITH_ARIA_256_GCM_SHA384 uint16 = 0xC059 TLS_DH_anon_WITH_ARIA_128_GCM_SHA256 uint16 = 0xC05A TLS_DH_anon_WITH_ARIA_256_GCM_SHA384 uint16 = 0xC05B TLS_ECDHE_ECDSA_WITH_ARIA_128_GCM_SHA256 uint16 = 0xC05C TLS_ECDHE_ECDSA_WITH_ARIA_256_GCM_SHA384 uint16 = 0xC05D TLS_ECDH_ECDSA_WITH_ARIA_128_GCM_SHA256 uint16 = 0xC05E TLS_ECDH_ECDSA_WITH_ARIA_256_GCM_SHA384 uint16 = 0xC05F TLS_ECDHE_RSA_WITH_ARIA_128_GCM_SHA256 uint16 = 0xC060 TLS_ECDHE_RSA_WITH_ARIA_256_GCM_SHA384 uint16 = 0xC061 TLS_ECDH_RSA_WITH_ARIA_128_GCM_SHA256 uint16 = 0xC062 TLS_ECDH_RSA_WITH_ARIA_256_GCM_SHA384 uint16 = 0xC063 TLS_PSK_WITH_ARIA_128_CBC_SHA256 uint16 = 0xC064 TLS_PSK_WITH_ARIA_256_CBC_SHA384 uint16 = 0xC065 TLS_DHE_PSK_WITH_ARIA_128_CBC_SHA256 uint16 = 0xC066 TLS_DHE_PSK_WITH_ARIA_256_CBC_SHA384 uint16 = 0xC067 TLS_RSA_PSK_WITH_ARIA_128_CBC_SHA256 uint16 = 0xC068 TLS_RSA_PSK_WITH_ARIA_256_CBC_SHA384 uint16 = 0xC069 TLS_PSK_WITH_ARIA_128_GCM_SHA256 uint16 = 0xC06A TLS_PSK_WITH_ARIA_256_GCM_SHA384 uint16 = 0xC06B TLS_DHE_PSK_WITH_ARIA_128_GCM_SHA256 uint16 = 0xC06C TLS_DHE_PSK_WITH_ARIA_256_GCM_SHA384 uint16 = 0xC06D TLS_RSA_PSK_WITH_ARIA_128_GCM_SHA256 uint16 = 0xC06E TLS_RSA_PSK_WITH_ARIA_256_GCM_SHA384 uint16 = 0xC06F TLS_ECDHE_PSK_WITH_ARIA_128_CBC_SHA256 uint16 = 0xC070 TLS_ECDHE_PSK_WITH_ARIA_256_CBC_SHA384 uint16 = 0xC071 TLS_ECDHE_ECDSA_WITH_CAMELLIA_128_CBC_SHA256 uint16 = 0xC072 TLS_ECDHE_ECDSA_WITH_CAMELLIA_256_CBC_SHA384 uint16 = 0xC073 TLS_ECDH_ECDSA_WITH_CAMELLIA_128_CBC_SHA256 uint16 = 0xC074 TLS_ECDH_ECDSA_WITH_CAMELLIA_256_CBC_SHA384 uint16 = 0xC075 TLS_ECDHE_RSA_WITH_CAMELLIA_128_CBC_SHA256 uint16 = 0xC076 TLS_ECDHE_RSA_WITH_CAMELLIA_256_CBC_SHA384 uint16 = 0xC077 TLS_ECDH_RSA_WITH_CAMELLIA_128_CBC_SHA256 uint16 = 0xC078 TLS_ECDH_RSA_WITH_CAMELLIA_256_CBC_SHA384 uint16 = 0xC079 TLS_RSA_WITH_CAMELLIA_128_GCM_SHA256 uint16 = 0xC07A TLS_RSA_WITH_CAMELLIA_256_GCM_SHA384 uint16 = 0xC07B TLS_DHE_RSA_WITH_CAMELLIA_128_GCM_SHA256 uint16 = 0xC07C TLS_DHE_RSA_WITH_CAMELLIA_256_GCM_SHA384 uint16 = 0xC07D TLS_DH_RSA_WITH_CAMELLIA_128_GCM_SHA256 uint16 = 0xC07E TLS_DH_RSA_WITH_CAMELLIA_256_GCM_SHA384 uint16 = 0xC07F TLS_DHE_DSS_WITH_CAMELLIA_128_GCM_SHA256 uint16 = 0xC080 TLS_DHE_DSS_WITH_CAMELLIA_256_GCM_SHA384 uint16 = 0xC081 TLS_DH_DSS_WITH_CAMELLIA_128_GCM_SHA256 uint16 = 0xC082 TLS_DH_DSS_WITH_CAMELLIA_256_GCM_SHA384 uint16 = 0xC083 TLS_DH_anon_WITH_CAMELLIA_128_GCM_SHA256 uint16 = 0xC084 TLS_DH_anon_WITH_CAMELLIA_256_GCM_SHA384 uint16 = 0xC085 TLS_ECDHE_ECDSA_WITH_CAMELLIA_128_GCM_SHA256 uint16 = 0xC086 TLS_ECDHE_ECDSA_WITH_CAMELLIA_256_GCM_SHA384 uint16 = 0xC087 TLS_ECDH_ECDSA_WITH_CAMELLIA_128_GCM_SHA256 uint16 = 0xC088 TLS_ECDH_ECDSA_WITH_CAMELLIA_256_GCM_SHA384 uint16 = 0xC089 TLS_ECDHE_RSA_WITH_CAMELLIA_128_GCM_SHA256 uint16 = 0xC08A TLS_ECDHE_RSA_WITH_CAMELLIA_256_GCM_SHA384 uint16 = 0xC08B TLS_ECDH_RSA_WITH_CAMELLIA_128_GCM_SHA256 uint16 = 0xC08C TLS_ECDH_RSA_WITH_CAMELLIA_256_GCM_SHA384 uint16 = 0xC08D TLS_PSK_WITH_CAMELLIA_128_GCM_SHA256 uint16 = 0xC08E TLS_PSK_WITH_CAMELLIA_256_GCM_SHA384 uint16 = 0xC08F TLS_DHE_PSK_WITH_CAMELLIA_128_GCM_SHA256 uint16 = 0xC090 TLS_DHE_PSK_WITH_CAMELLIA_256_GCM_SHA384 uint16 = 0xC091 TLS_RSA_PSK_WITH_CAMELLIA_128_GCM_SHA256 uint16 = 0xC092 TLS_RSA_PSK_WITH_CAMELLIA_256_GCM_SHA384 uint16 = 0xC093 TLS_PSK_WITH_CAMELLIA_128_CBC_SHA256 uint16 = 0xC094 TLS_PSK_WITH_CAMELLIA_256_CBC_SHA384 uint16 = 0xC095 TLS_DHE_PSK_WITH_CAMELLIA_128_CBC_SHA256 uint16 = 0xC096 TLS_DHE_PSK_WITH_CAMELLIA_256_CBC_SHA384 uint16 = 0xC097 TLS_RSA_PSK_WITH_CAMELLIA_128_CBC_SHA256 uint16 = 0xC098 TLS_RSA_PSK_WITH_CAMELLIA_256_CBC_SHA384 uint16 = 0xC099 TLS_ECDHE_PSK_WITH_CAMELLIA_128_CBC_SHA256 uint16 = 0xC09A TLS_ECDHE_PSK_WITH_CAMELLIA_256_CBC_SHA384 uint16 = 0xC09B TLS_RSA_WITH_AES_128_CCM uint16 = 0xC09C TLS_RSA_WITH_AES_256_CCM uint16 = 0xC09D TLS_DHE_RSA_WITH_AES_128_CCM uint16 = 0xC09E TLS_DHE_RSA_WITH_AES_256_CCM uint16 = 0xC09F TLS_RSA_WITH_AES_128_CCM_8 uint16 = 0xC0A0 TLS_RSA_WITH_AES_256_CCM_8 uint16 = 0xC0A1 TLS_DHE_RSA_WITH_AES_128_CCM_8 uint16 = 0xC0A2 TLS_DHE_RSA_WITH_AES_256_CCM_8 uint16 = 0xC0A3 TLS_PSK_WITH_AES_128_CCM uint16 = 0xC0A4 TLS_PSK_WITH_AES_256_CCM uint16 = 0xC0A5 TLS_DHE_PSK_WITH_AES_128_CCM uint16 = 0xC0A6 TLS_DHE_PSK_WITH_AES_256_CCM uint16 = 0xC0A7 TLS_PSK_WITH_AES_128_CCM_8 uint16 = 0xC0A8 TLS_PSK_WITH_AES_256_CCM_8 uint16 = 0xC0A9 TLS_PSK_DHE_WITH_AES_128_CCM_8 uint16 = 0xC0AA TLS_PSK_DHE_WITH_AES_256_CCM_8 uint16 = 0xC0AB TLS_ECDHE_ECDSA_WITH_AES_128_CCM uint16 = 0xC0AC TLS_ECDHE_ECDSA_WITH_AES_256_CCM uint16 = 0xC0AD TLS_ECDHE_ECDSA_WITH_AES_128_CCM_8 uint16 = 0xC0AE TLS_ECDHE_ECDSA_WITH_AES_256_CCM_8 uint16 = 0xC0AF TLS_DHE_RSA_WITH_CHACHA20_POLY1305_SHA256 uint16 = 0xCCAA TLS_PSK_WITH_CHACHA20_POLY1305_SHA256 uint16 = 0xCCAB TLS_ECDHE_PSK_WITH_CHACHA20_POLY1305_SHA256 uint16 = 0xCCAC TLS_DHE_PSK_WITH_CHACHA20_POLY1305_SHA256 uint16 = 0xCCAD TLS_RSA_PSK_WITH_CHACHA20_POLY1305_SHA256 uint16 = 0xCCAE )
const ( VersionTLS10 = 0x0301 VersionTLS11 = 0x0302 VersionTLS12 = 0x0303 VersionTLS13 = 0x0304 VersionGMSSL = 0x0101 // GM/T 0024-2014 // Deprecated: SSLv3 is cryptographically broken, and is no longer // supported by this package. See golang.org/issue/32716. VersionSSL30 = 0x0300 )
TLS version numbers
const ( // TLS 1.0 - 1.2 cipher suites. 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_RSA_WITH_AES_128_CBC_SHA256 uint16 = 0x003c TLS_RSA_WITH_AES_128_GCM_SHA256 uint16 = 0x009c TLS_RSA_WITH_AES_256_GCM_SHA384 uint16 = 0x009d TLS_ECDHE_ECDSA_WITH_RC4_128_SHA uint16 = 0xc007 TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA uint16 = 0xc009 TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA uint16 = 0xc00a 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 TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256 uint16 = 0xc023 TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256 uint16 = 0xc027 TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 uint16 = 0xc02f TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256 uint16 = 0xc02b TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 uint16 = 0xc030 TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384 uint16 = 0xc02c TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256 uint16 = 0xcca8 TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256 uint16 = 0xcca9 // TLS 1.3 cipher suites. TLS_AES_128_GCM_SHA256 uint16 = 0x1301 TLS_AES_256_GCM_SHA384 uint16 = 0x1302 TLS_CHACHA20_POLY1305_SHA256 uint16 = 0x1303 // TLS_FALLBACK_SCSV isn't a standard cipher suite but an indicator // that the client is doing version fallback. See RFC 7507. TLS_FALLBACK_SCSV uint16 = 0x5600 // Legacy names for the corresponding cipher suites with the correct _SHA256 // suffix, retained for backward compatibility. TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305 = TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256 TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305 = TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256 //GM crypto suites ID Taken from GM/T 0024-2014 GMTLS_ECDHE_SM2_WITH_SM1_SM3 uint16 = 0xe001 GMTLS_SM2_WITH_SM1_SM3 uint16 = 0xe003 GMTLS_IBSDH_WITH_SM1_SM3 uint16 = 0xe005 GMTLS_IBC_WITH_SM1_SM3 uint16 = 0xe007 GMTLS_RSA_WITH_SM1_SM3 uint16 = 0xe009 GMTLS_RSA_WITH_SM1_SHA1 uint16 = 0xe00a GMTLS_ECDHE_SM2_WITH_SM4_SM3 uint16 = 0xe011 GMTLS_ECDHE_SM4_CBC_SM3 uint16 = 0xe011 GMTLS_ECDHE_SM4_GCM_SM3 uint16 = 0xe051 GMTLS_SM2_WITH_SM4_SM3 uint16 = 0xe013 GMTLS_ECC_SM4_CBC_SM3 uint16 = 0xe013 GMTLS_ECC_SM4_GCM_SM3 uint16 = 0xe053 GMTLS_IBSDH_WITH_SM4_SM3 uint16 = 0xe015 GMTLS_IBC_WITH_SM4_SM3 uint16 = 0xe017 GMTLS_RSA_WITH_SM4_SM3 uint16 = 0xe019 GMTLS_RSA_WITH_SM4_SHA1 uint16 = 0xe01a )
A list of cipher suite IDs that are, or have been, implemented by this package.
See https://www.iana.org/assignments/tls-parameters/tls-parameters.xml
Variables ¶
var ( Exports = map[string]interface{}{ "ParseJA3": ParseJA3, "ParseJA3S": ParseJA3S, "ParseJA3ToClientHelloSpec": ParseJA3ToClientHelloSpec, "GetTransportByClientHelloSpec": GetTransportByClientHelloSpec, } )
Functions ¶
func CipherSuiteName ¶
CipherSuiteName returns the standard name for the passed cipher suite ID (e.g. "TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256"), or a fallback representation of the ID value if the cipher suite is not implemented by this package.
func GetTransportByClientHelloSpec ¶
func GetTransportByClientHelloSpec(spec *tls.ClientHelloSpec) *http.Transport
func ParseJA3ToClientHelloSpec ¶
func ParseJA3ToClientHelloSpec(str string) (*tls.ClientHelloSpec, error)
Types ¶
type CipherSuite ¶
type CipherSuite struct { ID uint16 Name string // Supported versions is the list of TLS protocol versions that can // negotiate this cipher suite. SupportedVersions []uint16 // Insecure is true if the cipher suite has known security issues // due to its primitives, design, or implementation. Insecure bool }
CipherSuite is a TLS cipher suite. Note that most functions in this package accept and expose cipher suite IDs instead of this type.
func CipherSuites ¶
func CipherSuites() []*CipherSuite
func GetCipherSuiteByID ¶
func GetCipherSuiteByID(id string) *CipherSuite
func ParseCipherSuites ¶
func ParseCipherSuites(suite string) []*CipherSuite
type CurveID ¶
type CurveID uint16
CurveID is the type of a TLS identifier for an elliptic curve. See https://www.iana.org/assignments/tls-parameters/tls-parameters.xml#tls-parameters-8.
In TLS 1.3, this type is called NamedGroup, but at this time this library only supports Elliptic Curve based groups. See RFC 8446, Section 4.2.7.
type EllipticCurve ¶
func GetEllipticCurvesByID ¶
func GetEllipticCurvesByID(id string) *EllipticCurve
func ParseEllipticCurves ¶
func ParseEllipticCurves(curve string) []*EllipticCurve
type EllipticCurvePointFormat ¶
func GetEllipticCurvePointFormatByID ¶
func GetEllipticCurvePointFormatByID(id string) *EllipticCurvePointFormat
func ParseEllipticCurvePointFormats ¶
func ParseEllipticCurvePointFormats(pointFormat string) []*EllipticCurvePointFormat
type ExtensionsType ¶
func GetExtensionByType ¶
func GetExtensionByType(typeNum string) *ExtensionsType
func ParseExtensionsTypes ¶
func ParseExtensionsTypes(extension string) []*ExtensionsType
type JA3 ¶
type JA3 struct { TLSVersion *TLSVersion CipherSuites []*CipherSuite ExtensionsTypes []*ExtensionsType EllipticCurves []*EllipticCurve EllipticCurvePointFormats []*EllipticCurvePointFormat JA3FullStr string }
type JA3S ¶
type JA3S struct { TLSVersion *TLSVersion AcceptedCipher *CipherSuite ExtensionsTypes []*ExtensionsType JA3SFullStr string }
type TLSVersion ¶
func ParseTLSVersion ¶
func ParseTLSVersion(version string) *TLSVersion