ja3

package
v1.3.2 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Apr 12, 2024 License: AGPL-3.0 Imports: 12 Imported by: 0

Documentation

Index

Constants

View Source
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
)
View Source
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

View Source
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

View Source
var (
	Exports = map[string]interface{}{
		"ParseJA3":                      ParseJA3,
		"ParseJA3S":                     ParseJA3S,
		"ParseJA3ToClientHelloSpec":     ParseJA3ToClientHelloSpec,
		"GetTransportByClientHelloSpec": GetTransportByClientHelloSpec,
	}
)

Functions

func CipherSuiteName

func CipherSuiteName(id uint16) string

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 NotImplementedCipherSuites

func NotImplementedCipherSuites(id uint16) string

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.

const (
	CurveP256 CurveID = 23
	CurveP384 CurveID = 24
	CurveP521 CurveID = 25
	X25519    CurveID = 29
)

CurveID

type EllipticCurve

type EllipticCurve struct {
	CurveID   uint16
	CurveName string
}

func GetEllipticCurvesByID

func GetEllipticCurvesByID(id string) *EllipticCurve

func ParseEllipticCurves

func ParseEllipticCurves(curve string) []*EllipticCurve

type EllipticCurvePointFormat

type EllipticCurvePointFormat struct {
	CurvePoint           uint8
	CurvePointFormatName string
}

func GetEllipticCurvePointFormatByID

func GetEllipticCurvePointFormatByID(id string) *EllipticCurvePointFormat

func ParseEllipticCurvePointFormats

func ParseEllipticCurvePointFormats(pointFormat string) []*EllipticCurvePointFormat

type ExtensionsType

type ExtensionsType struct {
	Type     uint16
	TypeName string
}

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
}

func ParseJA3

func ParseJA3(ja3FullString string) (*JA3, error)

func (JA3) Calc

func (j JA3) Calc() string

func (JA3) String

func (j JA3) String() string

type JA3S

type JA3S struct {
	TLSVersion      *TLSVersion
	AcceptedCipher  *CipherSuite
	ExtensionsTypes []*ExtensionsType
	JA3SFullStr     string
}

func ParseJA3S

func ParseJA3S(ja3sFullString string) (*JA3S, error)

func (JA3S) Calc

func (j JA3S) Calc() string

func (JA3S) String

func (j JA3S) String() string

type TLSVersion

type TLSVersion struct {
	Version     uint16
	VersionName string
}

func ParseTLSVersion

func ParseTLSVersion(version string) *TLSVersion

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL