Documentation
¶
Index ¶
- Variables
- func ConnContext(ctx context.Context, c net.Conn) context.Context
- func GetConfigForClient(chi *tls.ClientHelloInfo) (*tls.Config, error)
- func NewClient(ctx context.Context, conn net.Conn, ja3Spec ClientHelloSpec, disHttp2 bool, ...) (*tls.Conn, error)
- func VerifyWithMd5(md string) (string, bool)
- type ClientHello
- type ClientHelloId
- type ClientHelloSpec
- type H2Ja3Spec
- type Ja3ContextData
- type Setting
Constants ¶
This section is empty.
Variables ¶
View Source
var ( HelloFirefox_Auto = utls.HelloFirefox_Auto HelloFirefox_55 = utls.HelloFirefox_55 HelloFirefox_56 = utls.HelloFirefox_56 HelloFirefox_63 = utls.HelloFirefox_63 HelloFirefox_65 = utls.HelloFirefox_65 HelloFirefox_99 = utls.HelloFirefox_99 HelloFirefox_105 = utls.HelloFirefox_105 HelloChrome_Auto = utls.HelloChrome_Auto HelloChrome_58 = utls.HelloChrome_58 HelloChrome_62 = utls.HelloChrome_62 HelloChrome_70 = utls.HelloChrome_70 HelloChrome_72 = utls.HelloChrome_72 HelloChrome_83 = utls.HelloChrome_83 HelloChrome_87 = utls.HelloChrome_87 HelloChrome_96 = utls.HelloChrome_96 HelloChrome_100 = utls.HelloChrome_100 HelloChrome_102 = utls.HelloChrome_102 HelloChrome_106_Shuffle = utls.HelloChrome_106_Shuffle HelloIOS_Auto = utls.HelloIOS_Auto HelloIOS_11_1 = utls.HelloIOS_11_1 HelloIOS_12_1 = utls.HelloIOS_12_1 HelloIOS_13 = utls.HelloIOS_13 HelloIOS_14 = utls.HelloIOS_14 HelloAndroid_11_OkHttp = utls.HelloAndroid_11_OkHttp HelloEdge_Auto = utls.HelloEdge_Auto HelloEdge_85 = utls.HelloEdge_85 HelloEdge_106 = utls.HelloEdge_106 HelloSafari_Auto = utls.HelloSafari_Auto HelloSafari_16_0 = utls.HelloSafari_16_0 Hello360_Auto = utls.Hello360_Auto Hello360_7_5 = utls.Hello360_7_5 Hello360_11_0 = utls.Hello360_11_0 HelloQQ_Auto = utls.HelloQQ_Auto HelloQQ_11_1 = utls.HelloQQ_11_1 )
View Source
var ClientHelloIDs = []ClientHelloId{ HelloFirefox_Auto, HelloFirefox_55, HelloFirefox_56, HelloFirefox_63, HelloFirefox_65, HelloFirefox_99, HelloFirefox_105, HelloChrome_Auto, HelloChrome_58, HelloChrome_62, HelloChrome_70, HelloChrome_72, HelloChrome_83, HelloChrome_87, HelloChrome_96, HelloChrome_100, HelloChrome_102, HelloChrome_106_Shuffle, HelloIOS_Auto, HelloIOS_11_1, HelloIOS_12_1, HelloIOS_13, HelloIOS_14, HelloAndroid_11_OkHttp, HelloEdge_Auto, HelloEdge_85, HelloEdge_106, HelloSafari_Auto, HelloSafari_16_0, Hello360_Auto, Hello360_7_5, Hello360_11_0, HelloQQ_Auto, HelloQQ_11_1, }
Functions ¶
func GetConfigForClient ¶
func GetConfigForClient(chi *tls.ClientHelloInfo) (*tls.Config, error)
func VerifyWithMd5 ¶
Types ¶
type ClientHello ¶
type ClientHello struct { ServerName string SupportedProtos []string // 列出客户端支持的应用协议。[h2 http/1.1] SupportedPoints []uint8 // 列出了客户端支持的点格式[0] SupportedCurves []tls.CurveID // 列出了客户端支持的椭圆曲线。 [CurveID(2570) X25519 CurveP256 CurveP384] SupportedVersions []uint16 // 列出了客户端支持的TLS版本。[2570 772 771] CipherSuites []uint16 // 客户端支持的密码套件 [14906 4865 4866 4867 49195 49199 49196 49200 52393 52392 49171 49172 156 157 47 53] SignatureSchemes []tls.SignatureScheme // 列出了客户端愿意验证的签名和散列方案[ECDSAWithP256AndSHA256 PSSWithSHA256 PKCS1WithSHA256 ECDSAWithP384AndSHA384 PSSWithSHA384 PKCS1WithSHA384 PSSWithSHA512 PKCS1WithSHA512] }
type ClientHelloId ¶
type ClientHelloId = utls.ClientHelloID
type ClientHelloSpec ¶
type ClientHelloSpec utls.ClientHelloSpec
func CreateSpecWithId ¶
func CreateSpecWithId(ja3Id ClientHelloId) (clientHelloSpec ClientHelloSpec, err error)
CreateSpecWithId ja3 clientHelloId 生成 clientHello
func CreateSpecWithStr ¶
func CreateSpecWithStr(ja3Str string) (clientHelloSpec ClientHelloSpec, err error)
CreateSpecWithStr ja3 字符串中生成 clientHello
func (ClientHelloSpec) IsSet ¶
func (obj ClientHelloSpec) IsSet() bool
type H2Ja3Spec ¶
type Ja3ContextData ¶
type Ja3ContextData struct { ClientHello ClientHello `json:"clientHello"` Init bool `json:"init"` }
func GetRequestJa3Data ¶
func GetRequestJa3Data(r *http.Request) *Ja3ContextData
func (Ja3ContextData) Md5 ¶
func (obj Ja3ContextData) Md5() string
func (Ja3ContextData) Verify ¶
func (obj Ja3ContextData) Verify() (string, bool)
type Setting ¶
type Setting struct { // ID is which setting is being set. // See https://httpwg.org/specs/rfc7540.html#SettingFormat Id uint16 // Val is the value. Val uint32 }
Click to show internal directories.
Click to hide internal directories.