Documentation
¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
View Source
var Chrome120 = ClientProfile{ ClientHelloSpec: func() *tls.ClientHelloSpec { return &tls.ClientHelloSpec{ CipherSuites: []uint16{ tls.GREASE_PLACEHOLDER, tls.TLS_AES_128_GCM_SHA256, tls.TLS_AES_256_GCM_SHA384, tls.TLS_CHACHA20_POLY1305_SHA256, tls.TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256, tls.TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256, tls.TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384, tls.TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384, tls.TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305, tls.TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305, tls.TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA, tls.TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA, tls.TLS_RSA_WITH_AES_128_GCM_SHA256, tls.TLS_RSA_WITH_AES_256_GCM_SHA384, tls.TLS_RSA_WITH_AES_128_CBC_SHA, tls.TLS_RSA_WITH_AES_256_CBC_SHA, }, CompressionMethods: []byte{ 0x00, }, Extensions: tls.ShuffleChromeTLSExtensions([]tls.TLSExtension{ &tls.UtlsGREASEExtension{}, &tls.SNIExtension{}, &tls.ExtendedMasterSecretExtension{}, &tls.RenegotiationInfoExtension{Renegotiation: tls.RenegotiateOnceAsClient}, &tls.SupportedCurvesExtension{Curves: []tls.CurveID{ tls.GREASE_PLACEHOLDER, tls.X25519, tls.CurveP256, tls.CurveP384, }}, &tls.SupportedPointsExtension{SupportedPoints: []byte{ 0x00, }}, &tls.SessionTicketExtension{}, &tls.ALPNExtension{AlpnProtocols: []string{"h2", "http/1.1"}}, &tls.StatusRequestExtension{}, &tls.SignatureAlgorithmsExtension{SupportedSignatureAlgorithms: []tls.SignatureScheme{ tls.ECDSAWithP256AndSHA256, tls.PSSWithSHA256, tls.PKCS1WithSHA256, tls.ECDSAWithP384AndSHA384, tls.PSSWithSHA384, tls.PKCS1WithSHA384, tls.PSSWithSHA512, tls.PKCS1WithSHA512, }}, &tls.SCTExtension{}, &tls.KeyShareExtension{KeyShares: []tls.KeyShare{ {Group: tls.CurveID(tls.GREASE_PLACEHOLDER), Data: []byte{0}}, {Group: tls.X25519}, }}, &tls.PSKKeyExchangeModesExtension{Modes: []uint8{ tls.PskModeDHE, }}, &tls.SupportedVersionsExtension{Versions: []uint16{ tls.GREASE_PLACEHOLDER, tls.VersionTLS13, tls.VersionTLS12, }}, &tls.UtlsCompressCertExtension{Algorithms: []tls.CertCompressionAlgo{ tls.CertCompressionBrotli, }}, &tls.ApplicationSettingsExtension{ SupportedProtocols: []string{"h2"}, }, tls.BoringGREASEECH(), &tls.UtlsGREASEExtension{}, &tls.UtlsPreSharedKeyExtension{}, }), } }, H2: &H2ClientProfile{ Settings: []http2.Setting{ {ID: http2.SettingHeaderTableSize, Val: 65536}, {ID: http2.SettingEnablePush, Val: 0}, {ID: http2.SettingInitialWindowSize, Val: 6291456}, {ID: http2.SettingMaxHeaderListSize, Val: 262144}, }, ConnectionFlow: 15663105, HeaderPriority: func(r *http.Request) http2.PriorityParam { return http2.PriorityParam{ StreamDep: 0, Exclusive: true, Weight: chromeweight(r.Priority), } }, }, PseudoHeaderOrder: []string{ ":method", ":authority", ":scheme", ":path", }, }
View Source
var Chrome121 = Chrome120
View Source
var Chrome122 = Chrome120
View Source
var Chrome123 = Chrome120
View Source
var Chrome124 = ClientProfile{ ClientHelloSpec: func() *tls.ClientHelloSpec { return &tls.ClientHelloSpec{ CipherSuites: []uint16{ tls.GREASE_PLACEHOLDER, tls.TLS_AES_128_GCM_SHA256, tls.TLS_AES_256_GCM_SHA384, tls.TLS_CHACHA20_POLY1305_SHA256, tls.TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256, tls.TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256, tls.TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384, tls.TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384, tls.TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305, tls.TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305, tls.TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA, tls.TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA, tls.TLS_RSA_WITH_AES_128_GCM_SHA256, tls.TLS_RSA_WITH_AES_256_GCM_SHA384, tls.TLS_RSA_WITH_AES_128_CBC_SHA, tls.TLS_RSA_WITH_AES_256_CBC_SHA, }, CompressionMethods: []byte{ 0x00, }, Extensions: tls.ShuffleChromeTLSExtensions([]tls.TLSExtension{ &tls.UtlsGREASEExtension{}, &tls.SNIExtension{}, &tls.KeyShareExtension{KeyShares: []tls.KeyShare{ {Group: tls.CurveID(tls.GREASE_PLACEHOLDER), Data: []byte{0}}, {Group: tls.X25519Kyber768Draft00}, {Group: tls.X25519}, }}, &tls.UtlsCompressCertExtension{Algorithms: []tls.CertCompressionAlgo{ tls.CertCompressionBrotli, }}, &tls.SCTExtension{}, &tls.SupportedVersionsExtension{Versions: []uint16{ tls.GREASE_PLACEHOLDER, tls.VersionTLS13, tls.VersionTLS12, }}, &tls.StatusRequestExtension{}, &tls.ALPNExtension{AlpnProtocols: []string{"h2", "http/1.1"}}, &tls.SessionTicketExtension{}, &tls.PSKKeyExchangeModesExtension{Modes: []uint8{ tls.PskModeDHE, }}, &tls.SupportedCurvesExtension{Curves: []tls.CurveID{ tls.CurveID(tls.GREASE_PLACEHOLDER), tls.X25519Kyber768Draft00, tls.X25519, tls.CurveP256, tls.CurveP384, }}, &tls.SupportedPointsExtension{SupportedPoints: []byte{ 0x00, }}, &tls.SignatureAlgorithmsExtension{SupportedSignatureAlgorithms: []tls.SignatureScheme{ tls.ECDSAWithP256AndSHA256, tls.PSSWithSHA256, tls.PKCS1WithSHA256, tls.ECDSAWithP384AndSHA384, tls.PSSWithSHA384, tls.PKCS1WithSHA384, tls.PSSWithSHA512, tls.PKCS1WithSHA512, }}, &tls.ApplicationSettingsExtension{ SupportedProtocols: []string{"h2"}, }, &tls.RenegotiationInfoExtension{Renegotiation: tls.RenegotiateOnceAsClient}, &tls.ExtendedMasterSecretExtension{}, tls.BoringGREASEECH(), &tls.UtlsGREASEExtension{}, &tls.UtlsPreSharedKeyExtension{}, }), } }, H2: &H2ClientProfile{ Settings: []http2.Setting{ {ID: http2.SettingHeaderTableSize, Val: 65536}, {ID: http2.SettingEnablePush, Val: 0}, {ID: http2.SettingInitialWindowSize, Val: 6291456}, {ID: http2.SettingMaxHeaderListSize, Val: 262144}, }, ConnectionFlow: 15663105, HeaderPriority: func(r *http.Request) http2.PriorityParam { return http2.PriorityParam{ StreamDep: 0, Exclusive: true, Weight: chromeweight(r.Priority), } }, }, PseudoHeaderOrder: []string{ ":method", ":authority", ":scheme", ":path", }, }
View Source
var Chrome125 = Chrome124
View Source
var Chrome126 = Chrome124
View Source
var Chrome127 = Chrome124
View Source
var Chrome128 = Chrome124
View Source
var Chrome129 = Chrome124
View Source
var Chrome130 = Chrome124
View Source
var Chrome131 = ClientProfile{ ClientHelloSpec: func() *tls.ClientHelloSpec { return &tls.ClientHelloSpec{ CipherSuites: []uint16{ tls.GREASE_PLACEHOLDER, tls.TLS_AES_128_GCM_SHA256, tls.TLS_AES_256_GCM_SHA384, tls.TLS_CHACHA20_POLY1305_SHA256, tls.TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256, tls.TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256, tls.TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384, tls.TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384, tls.TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256, tls.TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256, tls.TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA, tls.TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA, tls.TLS_RSA_WITH_AES_128_GCM_SHA256, tls.TLS_RSA_WITH_AES_256_GCM_SHA384, tls.TLS_RSA_WITH_AES_128_CBC_SHA, tls.TLS_RSA_WITH_AES_256_CBC_SHA, }, CompressionMethods: []byte{ 0x00, }, Extensions: tls.ShuffleChromeTLSExtensions([]tls.TLSExtension{ &tls.UtlsGREASEExtension{}, &tls.RenegotiationInfoExtension{Renegotiation: tls.RenegotiateNever}, &tls.PSKKeyExchangeModesExtension{Modes: []uint8{ tls.PskModeDHE, }}, &tls.SessionTicketExtension{}, &tls.SupportedPointsExtension{SupportedPoints: []byte{0x00}}, &tls.SignatureAlgorithmsExtension{SupportedSignatureAlgorithms: []tls.SignatureScheme{ tls.ECDSAWithP256AndSHA256, tls.PSSWithSHA256, tls.PKCS1WithSHA256, tls.ECDSAWithP384AndSHA384, tls.PSSWithSHA384, tls.PKCS1WithSHA384, tls.PSSWithSHA512, tls.PKCS1WithSHA512, }}, &tls.SupportedCurvesExtension{Curves: []tls.CurveID{ tls.CurveID(tls.GREASE_PLACEHOLDER), tls.X25519MLKEM768, tls.X25519, tls.CurveP256, tls.CurveP384, }}, &tls.SNIExtension{}, tls.BoringGREASEECH(), &tls.KeyShareExtension{KeyShares: []tls.KeyShare{ {Group: tls.CurveID(tls.GREASE_PLACEHOLDER), Data: []byte{0}}, {Group: tls.X25519MLKEM768}, {Group: tls.X25519}, }}, &tls.UtlsCompressCertExtension{Algorithms: []tls.CertCompressionAlgo{ tls.CertCompressionBrotli, }}, &tls.ApplicationSettingsExtension{ SupportedProtocols: []string{"h2"}, }, &tls.ALPNExtension{AlpnProtocols: []string{"h2", "http/1.1"}}, &tls.StatusRequestExtension{}, &tls.SupportedVersionsExtension{Versions: []uint16{ tls.GREASE_PLACEHOLDER, tls.VersionTLS13, tls.VersionTLS12, }}, &tls.SCTExtension{}, &tls.ExtendedMasterSecretExtension{}, &tls.UtlsGREASEExtension{}, &tls.UtlsPreSharedKeyExtension{OmitEmptyPsk: true}, }), } }, H2: &H2ClientProfile{ Settings: []http2.Setting{ {ID: http2.SettingHeaderTableSize, Val: 65536}, {ID: http2.SettingEnablePush, Val: 0}, {ID: http2.SettingInitialWindowSize, Val: 6291456}, {ID: http2.SettingMaxHeaderListSize, Val: 262144}, }, ConnectionFlow: 15663105, HeaderPriority: func(r *http.Request) http2.PriorityParam { return http2.PriorityParam{ StreamDep: 0, Exclusive: true, Weight: chromeweight(r.Priority), } }, }, PseudoHeaderOrder: []string{ ":method", ":authority", ":scheme", ":path", }, }
View Source
var Chrome132 = Chrome131
View Source
var Chrome133 = ClientProfile{ ClientHelloSpec: func() *tls.ClientHelloSpec { return &tls.ClientHelloSpec{ CipherSuites: []uint16{ tls.GREASE_PLACEHOLDER, tls.TLS_AES_128_GCM_SHA256, tls.TLS_AES_256_GCM_SHA384, tls.TLS_CHACHA20_POLY1305_SHA256, tls.TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256, tls.TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256, tls.TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384, tls.TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384, tls.TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256, tls.TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256, tls.TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA, tls.TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA, tls.TLS_RSA_WITH_AES_128_GCM_SHA256, tls.TLS_RSA_WITH_AES_256_GCM_SHA384, tls.TLS_RSA_WITH_AES_128_CBC_SHA, tls.TLS_RSA_WITH_AES_256_CBC_SHA, }, CompressionMethods: []byte{ 0x00, }, Extensions: tls.ShuffleChromeTLSExtensions([]tls.TLSExtension{ &tls.UtlsGREASEExtension{}, &tls.RenegotiationInfoExtension{Renegotiation: tls.RenegotiateNever}, &tls.PSKKeyExchangeModesExtension{Modes: []uint8{ tls.PskModeDHE, }}, &tls.SessionTicketExtension{}, &tls.SupportedPointsExtension{SupportedPoints: []byte{0x00}}, &tls.SignatureAlgorithmsExtension{SupportedSignatureAlgorithms: []tls.SignatureScheme{ tls.ECDSAWithP256AndSHA256, tls.PSSWithSHA256, tls.PKCS1WithSHA256, tls.ECDSAWithP384AndSHA384, tls.PSSWithSHA384, tls.PKCS1WithSHA384, tls.PSSWithSHA512, tls.PKCS1WithSHA512, }}, &tls.SupportedCurvesExtension{Curves: []tls.CurveID{ tls.CurveID(tls.GREASE_PLACEHOLDER), tls.X25519MLKEM768, tls.X25519, tls.CurveP256, tls.CurveP384, }}, &tls.SNIExtension{}, tls.BoringGREASEECH(), &tls.KeyShareExtension{KeyShares: []tls.KeyShare{ {Group: tls.CurveID(tls.GREASE_PLACEHOLDER), Data: []byte{0}}, {Group: tls.X25519MLKEM768}, {Group: tls.X25519}, }}, &tls.UtlsCompressCertExtension{Algorithms: []tls.CertCompressionAlgo{ tls.CertCompressionBrotli, }}, &tls.ApplicationSettingsExtensionNew{ SupportedProtocols: []string{"h2"}, }, &tls.ALPNExtension{AlpnProtocols: []string{"h2", "http/1.1"}}, &tls.StatusRequestExtension{}, &tls.SupportedVersionsExtension{Versions: []uint16{ tls.GREASE_PLACEHOLDER, tls.VersionTLS13, tls.VersionTLS12, }}, &tls.SCTExtension{}, &tls.ExtendedMasterSecretExtension{}, &tls.UtlsGREASEExtension{}, &tls.UtlsPreSharedKeyExtension{OmitEmptyPsk: true}, }), } }, H2: &H2ClientProfile{ Settings: []http2.Setting{ {ID: http2.SettingHeaderTableSize, Val: 65536}, {ID: http2.SettingEnablePush, Val: 0}, {ID: http2.SettingInitialWindowSize, Val: 6291456}, {ID: http2.SettingMaxHeaderListSize, Val: 262144}, }, ConnectionFlow: 15663105, HeaderPriority: func(r *http.Request) http2.PriorityParam { return http2.PriorityParam{ StreamDep: 0, Exclusive: true, Weight: chromeweight(r.Priority), } }, InflowTimeout: 5 * time.Second, ReadIdleTimeout: 10 * time.Second, PrefacePing: true, }, H3: &H3ClientProfile{ Settings: []http3.Setting{ {ID: http3.SettingQpackMaxTableCapacity, Val: 65536}, {ID: http3.SettingMaxFieldSectionSize, Val: 262144}, {ID: http3.SettingQpackBlockedStreams, Val: 100}, {ID: http3.SettingH3Datagram, Val: 1}, {ID: http3.SettingGrease, Val: 0}, }, }, PseudoHeaderOrder: []string{ ":method", ":authority", ":scheme", ":path", }, }
View Source
var Chrome134 = Chrome133
View Source
var Chrome135 = Chrome133
View Source
var Chrome136 = Chrome133
View Source
var Chrome137 = Chrome133
View Source
var Chrome138 = Chrome133
View Source
var Chrome139 = Chrome133
View Source
var Chrome140 = Chrome133
View Source
var Chrome141 = Chrome133
View Source
var Chrome142 = Chrome133
View Source
var Chrome143 = Chrome133
View Source
var Chrome144 = Chrome133
View Source
var Chrome145 = Chrome133
View Source
var Chrome146 = Chrome133
View Source
var Chrome147 = Chrome133
View Source
var Chrome148 = Chrome133
View Source
var Chrome149 = Chrome133
View Source
var Chrome150 = ClientProfile{ ClientHelloSpec: func() *tls.ClientHelloSpec { return &tls.ClientHelloSpec{ CipherSuites: []uint16{ tls.GREASE_PLACEHOLDER, tls.TLS_AES_128_GCM_SHA256, tls.TLS_AES_256_GCM_SHA384, tls.TLS_CHACHA20_POLY1305_SHA256, tls.TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256, tls.TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256, tls.TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384, tls.TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384, tls.TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256, tls.TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256, tls.TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA, tls.TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA, tls.TLS_RSA_WITH_AES_128_GCM_SHA256, tls.TLS_RSA_WITH_AES_256_GCM_SHA384, tls.TLS_RSA_WITH_AES_128_CBC_SHA, tls.TLS_RSA_WITH_AES_256_CBC_SHA, }, CompressionMethods: []byte{ 0x00, }, Extensions: tls.ShuffleChromeTLSExtensions([]tls.TLSExtension{ &tls.UtlsGREASEExtension{}, &tls.RenegotiationInfoExtension{Renegotiation: tls.RenegotiateNever}, &tls.PSKKeyExchangeModesExtension{Modes: []uint8{ tls.PskModeDHE, }}, &tls.SessionTicketExtension{}, &tls.SupportedPointsExtension{SupportedPoints: []byte{0x00}}, &tls.SignatureAlgorithmsExtension{SupportedSignatureAlgorithms: []tls.SignatureScheme{ tls.FakeMLDSA44, tls.FakeMLDSA65, tls.FakeMLDSA87, tls.ECDSAWithP256AndSHA256, tls.PSSWithSHA256, tls.PKCS1WithSHA256, tls.ECDSAWithP384AndSHA384, tls.PSSWithSHA384, tls.PKCS1WithSHA384, tls.PSSWithSHA512, tls.PKCS1WithSHA512, }}, &tls.SupportedCurvesExtension{Curves: []tls.CurveID{ tls.CurveID(tls.GREASE_PLACEHOLDER), tls.X25519MLKEM768, tls.X25519, tls.CurveP256, tls.CurveP384, }}, &tls.SNIExtension{}, tls.BoringGREASEECH(), &tls.KeyShareExtension{KeyShares: []tls.KeyShare{ {Group: tls.CurveID(tls.GREASE_PLACEHOLDER), Data: []byte{0}}, {Group: tls.X25519MLKEM768}, {Group: tls.X25519}, }}, &tls.UtlsCompressCertExtension{Algorithms: []tls.CertCompressionAlgo{ tls.CertCompressionBrotli, }}, &tls.ApplicationSettingsExtensionNew{ SupportedProtocols: []string{"h2"}, }, &tls.ALPNExtension{AlpnProtocols: []string{"h2", "http/1.1"}}, &tls.StatusRequestExtension{}, &tls.SupportedVersionsExtension{Versions: []uint16{ tls.GREASE_PLACEHOLDER, tls.VersionTLS13, tls.VersionTLS12, }}, &tls.SCTExtension{}, &tls.ExtendedMasterSecretExtension{}, &tls.UtlsGREASEExtension{}, &tls.UtlsPreSharedKeyExtension{OmitEmptyPsk: true}, }), } }, H2: &H2ClientProfile{ Settings: []http2.Setting{ {ID: http2.SettingHeaderTableSize, Val: 65536}, {ID: http2.SettingEnablePush, Val: 0}, {ID: http2.SettingInitialWindowSize, Val: 6291456}, {ID: http2.SettingMaxHeaderListSize, Val: 262144}, }, ConnectionFlow: 15663105, HeaderPriority: func(r *http.Request) http2.PriorityParam { return http2.PriorityParam{ StreamDep: 0, Exclusive: true, Weight: chromeweight(r.Priority), } }, InflowTimeout: 5 * time.Second, ReadIdleTimeout: 10 * time.Second, PrefacePing: true, }, H3: &H3ClientProfile{ Settings: []http3.Setting{ {ID: http3.SettingQpackMaxTableCapacity, Val: 65536}, {ID: http3.SettingMaxFieldSectionSize, Val: 262144}, {ID: http3.SettingQpackBlockedStreams, Val: 100}, {ID: http3.SettingH3Datagram, Val: 1}, {ID: http3.SettingGrease, Val: 0}, }, }, PseudoHeaderOrder: []string{ ":method", ":authority", ":scheme", ":path", }, }
View Source
var HttpUrlConnectionAndroid21 = ClientProfile{ ClientHelloSpec: func() *tls.ClientHelloSpec { return &tls.ClientHelloSpec{ CipherSuites: []uint16{ tls.TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256, tls.TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384, tls.TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256, tls.TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384, tls.FAKE_TLS_DHE_RSA_WITH_AES_128_GCM_SHA256, tls.FAKE_TLS_DHE_RSA_WITH_AES_256_GCM_SHA384, tls.TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA, tls.TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA, tls.TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA, tls.TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA, tls.FAKE_TLS_DHE_RSA_WITH_AES_128_CBC_SHA, tls.FAKE_TLS_DHE_RSA_WITH_AES_256_CBC_SHA, tls.FAKE_TLS_DHE_DSS_WITH_AES_128_CBC_SHA, uint16(0x0038), tls.TLS_ECDHE_ECDSA_WITH_RC4_128_SHA, tls.TLS_ECDHE_RSA_WITH_RC4_128_SHA, tls.TLS_RSA_WITH_AES_128_GCM_SHA256, tls.TLS_RSA_WITH_AES_256_GCM_SHA384, tls.TLS_RSA_WITH_AES_128_CBC_SHA, tls.TLS_RSA_WITH_AES_256_CBC_SHA, tls.TLS_RSA_WITH_RC4_128_SHA, tls.FAKE_TLS_EMPTY_RENEGOTIATION_INFO_SCSV, }, CompressionMethods: []uint8{ 0x00, }, Extensions: []tls.TLSExtension{ &tls.SNIExtension{}, &tls.SupportedPointsExtension{SupportedPoints: []byte{ 0x00, 0x01, 0x02, }}, &tls.SupportedCurvesExtension{Curves: []tls.CurveID{ tls.CurveID(14), tls.CurveID(13), tls.CurveP521, tls.CurveID(11), tls.CurveID(12), tls.CurveP384, tls.CurveID(9), tls.CurveID(10), tls.CurveID(22), tls.CurveP256, tls.CurveID(8), tls.CurveID(6), tls.CurveID(7), tls.CurveID(20), tls.CurveID(21), tls.CurveID(4), tls.CurveID(5), tls.CurveID(18), tls.CurveID(19), tls.CurveID(1), tls.CurveID(2), tls.CurveID(3), tls.CurveID(15), tls.CurveID(16), tls.CurveID(17), }}, &tls.SessionTicketExtension{}, &tls.SignatureAlgorithmsExtension{SupportedSignatureAlgorithms: []tls.SignatureScheme{ tls.PKCS1WithSHA512, 0x602, tls.ECDSAWithP521AndSHA512, tls.PKCS1WithSHA384, 0x502, tls.ECDSAWithP384AndSHA384, tls.PKCS1WithSHA256, 0x402, tls.ECDSAWithP256AndSHA256, 0x301, 0x302, 0x303, tls.PKCS1WithSHA1, 0x202, tls.ECDSAWithSHA1, }}, }, } }, }
View Source
var HttpUrlConnectionAndroid22 = HttpUrlConnectionAndroid21
View Source
var HttpUrlConnectionAndroid23 = ClientProfile{ ClientHelloSpec: func() *tls.ClientHelloSpec { return &tls.ClientHelloSpec{ CipherSuites: []uint16{ tls.TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256, tls.TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384, tls.TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256, tls.TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384, tls.FAKE_TLS_DHE_RSA_WITH_AES_128_GCM_SHA256, tls.FAKE_TLS_DHE_RSA_WITH_AES_256_GCM_SHA384, tls.TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA, tls.TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA, tls.TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA, tls.TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA, tls.FAKE_TLS_DHE_RSA_WITH_AES_128_CBC_SHA, tls.FAKE_TLS_DHE_RSA_WITH_AES_256_CBC_SHA, tls.TLS_ECDHE_ECDSA_WITH_RC4_128_SHA, tls.TLS_ECDHE_RSA_WITH_RC4_128_SHA, tls.TLS_RSA_WITH_AES_128_GCM_SHA256, tls.TLS_RSA_WITH_AES_256_GCM_SHA384, tls.TLS_RSA_WITH_AES_128_CBC_SHA, tls.TLS_RSA_WITH_AES_256_CBC_SHA, tls.TLS_RSA_WITH_RC4_128_SHA, tls.FAKE_TLS_EMPTY_RENEGOTIATION_INFO_SCSV, }, CompressionMethods: []uint8{ 0x00, }, Extensions: []tls.TLSExtension{ &tls.SNIExtension{}, &tls.ExtendedMasterSecretExtension{}, &tls.SessionTicketExtension{}, &tls.SignatureAlgorithmsExtension{SupportedSignatureAlgorithms: []tls.SignatureScheme{ tls.PKCS1WithSHA512, tls.ECDSAWithP521AndSHA512, tls.PKCS1WithSHA384, tls.ECDSAWithP384AndSHA384, tls.PKCS1WithSHA256, tls.ECDSAWithP256AndSHA256, 0x301, 0x303, tls.PKCS1WithSHA1, tls.ECDSAWithSHA1, }}, &tls.ALPNExtension{AlpnProtocols: []string{"http/1.1"}}, &tls.SupportedPointsExtension{SupportedPoints: []byte{ 0x00, }}, &tls.SupportedCurvesExtension{Curves: []tls.CurveID{ tls.CurveP256, tls.CurveP384, tls.CurveP521, }}, }, } }, }
View Source
var HttpUrlConnectionAndroid24 = ClientProfile{ ClientHelloSpec: func() *tls.ClientHelloSpec { return &tls.ClientHelloSpec{ CipherSuites: []uint16{ tls.TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256, tls.TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384, tls.TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256, tls.TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256, tls.TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384, tls.TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256, tls.FAKE_TLS_DHE_RSA_WITH_AES_128_GCM_SHA256, tls.FAKE_TLS_DHE_RSA_WITH_AES_256_GCM_SHA384, tls.TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA, tls.TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA, tls.TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA, tls.TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA, tls.FAKE_TLS_DHE_RSA_WITH_AES_128_CBC_SHA, tls.FAKE_TLS_DHE_RSA_WITH_AES_256_CBC_SHA, tls.TLS_RSA_WITH_AES_128_GCM_SHA256, tls.TLS_RSA_WITH_AES_256_GCM_SHA384, tls.TLS_RSA_WITH_AES_128_CBC_SHA, tls.TLS_RSA_WITH_AES_256_CBC_SHA, }, CompressionMethods: []uint8{ 0x00, }, Extensions: []tls.TLSExtension{ &tls.RenegotiationInfoExtension{Renegotiation: tls.RenegotiateOnceAsClient}, &tls.SNIExtension{}, &tls.ExtendedMasterSecretExtension{}, &tls.SessionTicketExtension{}, &tls.SignatureAlgorithmsExtension{SupportedSignatureAlgorithms: []tls.SignatureScheme{ tls.PKCS1WithSHA512, tls.ECDSAWithP521AndSHA512, tls.PKCS1WithSHA384, tls.ECDSAWithP384AndSHA384, tls.PKCS1WithSHA256, tls.ECDSAWithP256AndSHA256, 0x301, 0x303, tls.PKCS1WithSHA1, tls.ECDSAWithSHA1, }}, &tls.ALPNExtension{AlpnProtocols: []string{"http/1.1"}}, &tls.SupportedPointsExtension{SupportedPoints: []byte{ 0x00, }}, &tls.SupportedCurvesExtension{Curves: []tls.CurveID{ tls.CurveP256, }}, }, } }, }
View Source
var HttpUrlConnectionAndroid25 = ClientProfile{ ClientHelloSpec: func() *tls.ClientHelloSpec { return &tls.ClientHelloSpec{ CipherSuites: []uint16{ tls.TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256, tls.TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384, tls.TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256, tls.TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256, tls.TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384, tls.TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256, tls.FAKE_TLS_DHE_RSA_WITH_AES_128_GCM_SHA256, tls.FAKE_TLS_DHE_RSA_WITH_AES_256_GCM_SHA384, tls.TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA, tls.TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA, tls.TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA, tls.TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA, tls.FAKE_TLS_DHE_RSA_WITH_AES_128_CBC_SHA, tls.FAKE_TLS_DHE_RSA_WITH_AES_256_CBC_SHA, tls.TLS_RSA_WITH_AES_128_GCM_SHA256, tls.TLS_RSA_WITH_AES_256_GCM_SHA384, tls.TLS_RSA_WITH_AES_128_CBC_SHA, tls.TLS_RSA_WITH_AES_256_CBC_SHA, }, CompressionMethods: []uint8{ 0x00, }, Extensions: []tls.TLSExtension{ &tls.RenegotiationInfoExtension{Renegotiation: tls.RenegotiateOnceAsClient}, &tls.SNIExtension{}, &tls.ExtendedMasterSecretExtension{}, &tls.SessionTicketExtension{}, &tls.SignatureAlgorithmsExtension{SupportedSignatureAlgorithms: []tls.SignatureScheme{ tls.PKCS1WithSHA512, tls.ECDSAWithP521AndSHA512, tls.PKCS1WithSHA384, tls.ECDSAWithP384AndSHA384, tls.PKCS1WithSHA256, tls.ECDSAWithP256AndSHA256, 0x301, 0x303, tls.PKCS1WithSHA1, tls.ECDSAWithSHA1, }}, &tls.ALPNExtension{AlpnProtocols: []string{"http/1.1"}}, &tls.SupportedPointsExtension{SupportedPoints: []byte{ 0x00, }}, &tls.SupportedCurvesExtension{Curves: []tls.CurveID{ tls.CurveP256, tls.CurveP384, tls.CurveP521, }}, }, } }, }
View Source
var HttpUrlConnectionAndroid26 = ClientProfile{ ClientHelloSpec: func() *tls.ClientHelloSpec { return &tls.ClientHelloSpec{ CipherSuites: []uint16{ tls.TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256, tls.TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384, tls.TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256, tls.TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256, tls.TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384, tls.TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256, tls.TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA, tls.TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA, tls.TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA, tls.TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA, tls.TLS_RSA_WITH_AES_128_GCM_SHA256, tls.TLS_RSA_WITH_AES_256_GCM_SHA384, tls.TLS_RSA_WITH_AES_128_CBC_SHA, tls.TLS_RSA_WITH_AES_256_CBC_SHA, }, CompressionMethods: []uint8{ 0x00, }, Extensions: []tls.TLSExtension{ &tls.RenegotiationInfoExtension{Renegotiation: tls.RenegotiateOnceAsClient}, &tls.SNIExtension{}, &tls.ExtendedMasterSecretExtension{}, &tls.SessionTicketExtension{}, &tls.SignatureAlgorithmsExtension{SupportedSignatureAlgorithms: []tls.SignatureScheme{ tls.ECDSAWithP256AndSHA256, tls.PKCS1WithSHA256, tls.ECDSAWithP384AndSHA384, tls.PKCS1WithSHA384, tls.ECDSAWithP521AndSHA512, tls.PKCS1WithSHA512, tls.PKCS1WithSHA1, }}, &tls.StatusRequestExtension{}, &tls.ALPNExtension{AlpnProtocols: []string{"http/1.1"}}, &tls.SupportedPointsExtension{SupportedPoints: []byte{ 0x00, }}, &tls.SupportedCurvesExtension{Curves: []tls.CurveID{ tls.X25519, tls.CurveP256, tls.CurveP384, }}, }, } }, }
View Source
var HttpUrlConnectionAndroid27 = ClientProfile{ ClientHelloSpec: func() *tls.ClientHelloSpec { return &tls.ClientHelloSpec{ CipherSuites: []uint16{ tls.TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256, tls.TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384, tls.TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256, tls.TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256, tls.TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384, tls.TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256, tls.TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA, tls.TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA, tls.TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA, tls.TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA, tls.TLS_RSA_WITH_AES_128_GCM_SHA256, tls.TLS_RSA_WITH_AES_256_GCM_SHA384, tls.TLS_RSA_WITH_AES_128_CBC_SHA, tls.TLS_RSA_WITH_AES_256_CBC_SHA, }, CompressionMethods: []uint8{ 0x00, }, Extensions: []tls.TLSExtension{ &tls.RenegotiationInfoExtension{Renegotiation: tls.RenegotiateOnceAsClient}, &tls.SNIExtension{}, &tls.ExtendedMasterSecretExtension{}, &tls.SessionTicketExtension{}, &tls.SignatureAlgorithmsExtension{SupportedSignatureAlgorithms: []tls.SignatureScheme{ tls.ECDSAWithP256AndSHA256, tls.PKCS1WithSHA256, tls.ECDSAWithP384AndSHA384, tls.PKCS1WithSHA384, tls.ECDSAWithP521AndSHA512, tls.PKCS1WithSHA512, tls.PKCS1WithSHA1, }}, &tls.StatusRequestExtension{}, &tls.ALPNExtension{AlpnProtocols: []string{"http/1.1"}}, &tls.SupportedPointsExtension{SupportedPoints: []byte{ 0x00, }}, &tls.SupportedCurvesExtension{Curves: []tls.CurveID{ tls.X25519, tls.CurveP256, tls.CurveP384, }}, }, } }, }
View Source
var HttpUrlConnectionAndroid28 = ClientProfile{ ClientHelloSpec: func() *tls.ClientHelloSpec { return &tls.ClientHelloSpec{ CipherSuites: []uint16{ tls.TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256, tls.TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384, tls.TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256, tls.TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256, tls.TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384, tls.TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256, tls.TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA, tls.TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA, tls.TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA, tls.TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA, tls.TLS_RSA_WITH_AES_128_GCM_SHA256, tls.TLS_RSA_WITH_AES_256_GCM_SHA384, tls.TLS_RSA_WITH_AES_128_CBC_SHA, tls.TLS_RSA_WITH_AES_256_CBC_SHA, }, CompressionMethods: []uint8{ 0x00, }, Extensions: []tls.TLSExtension{ &tls.RenegotiationInfoExtension{Renegotiation: tls.RenegotiateOnceAsClient}, &tls.SNIExtension{}, &tls.ExtendedMasterSecretExtension{}, &tls.SessionTicketExtension{}, &tls.SignatureAlgorithmsExtension{SupportedSignatureAlgorithms: []tls.SignatureScheme{ tls.ECDSAWithP256AndSHA256, tls.PSSWithSHA256, tls.PKCS1WithSHA256, tls.ECDSAWithP384AndSHA384, tls.PSSWithSHA384, tls.PKCS1WithSHA384, tls.PSSWithSHA512, tls.PKCS1WithSHA512, tls.PKCS1WithSHA1, }}, &tls.StatusRequestExtension{}, &tls.ALPNExtension{AlpnProtocols: []string{"http/1.1"}}, &tls.SupportedPointsExtension{SupportedPoints: []byte{ 0x00, }}, &tls.SupportedCurvesExtension{Curves: []tls.CurveID{ tls.X25519, tls.CurveP256, tls.CurveP384, }}, }, } }, }
View Source
var HttpUrlConnectionAndroid29 = ClientProfile{ ClientHelloSpec: func() *tls.ClientHelloSpec { return &tls.ClientHelloSpec{ CipherSuites: []uint16{ tls.TLS_AES_128_GCM_SHA256, tls.TLS_AES_256_GCM_SHA384, tls.TLS_CHACHA20_POLY1305_SHA256, tls.TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256, tls.TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384, tls.TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256, tls.TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256, tls.TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384, tls.TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256, tls.TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA, tls.TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA, tls.TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA, tls.TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA, tls.TLS_RSA_WITH_AES_128_GCM_SHA256, tls.TLS_RSA_WITH_AES_256_GCM_SHA384, tls.TLS_RSA_WITH_AES_128_CBC_SHA, tls.TLS_RSA_WITH_AES_256_CBC_SHA, }, CompressionMethods: []uint8{ 0x00, }, Extensions: []tls.TLSExtension{ &tls.SNIExtension{}, &tls.ExtendedMasterSecretExtension{}, &tls.RenegotiationInfoExtension{Renegotiation: tls.RenegotiateOnceAsClient}, &tls.SupportedCurvesExtension{Curves: []tls.CurveID{ tls.X25519, tls.CurveP256, tls.CurveP384, }}, &tls.SupportedPointsExtension{SupportedPoints: []byte{ 0x00, }}, &tls.SessionTicketExtension{}, &tls.ALPNExtension{AlpnProtocols: []string{"http/1.1"}}, &tls.StatusRequestExtension{}, &tls.SignatureAlgorithmsExtension{SupportedSignatureAlgorithms: []tls.SignatureScheme{ tls.ECDSAWithP256AndSHA256, tls.PSSWithSHA256, tls.PKCS1WithSHA256, tls.ECDSAWithP384AndSHA384, tls.PSSWithSHA384, tls.PKCS1WithSHA384, tls.PSSWithSHA512, tls.PKCS1WithSHA512, tls.PKCS1WithSHA1, }}, &tls.KeyShareExtension{KeyShares: []tls.KeyShare{ {Group: tls.X25519}, }}, &tls.PSKKeyExchangeModesExtension{Modes: []uint8{ tls.PskModeDHE, }}, &tls.SupportedVersionsExtension{Versions: []uint16{ tls.VersionTLS13, tls.VersionTLS12, tls.VersionTLS11, tls.VersionTLS10, }}, &tls.UtlsPaddingExtension{GetPaddingLen: tls.BoringPaddingStyle}, }, } }, }
View Source
var HttpUrlConnectionAndroid30 = HttpUrlConnectionAndroid29
View Source
var HttpUrlConnectionAndroid31 = HttpUrlConnectionAndroid29
View Source
var HttpUrlConnectionAndroid32 = HttpUrlConnectionAndroid29
View Source
var HttpUrlConnectionAndroid33 = HttpUrlConnectionAndroid29
View Source
var HttpUrlConnectionAndroid34 = HttpUrlConnectionAndroid29
View Source
var HttpUrlConnectionAndroid35 = HttpUrlConnectionAndroid29
View Source
var Okhttp4Android21 = ClientProfile{ ClientHelloSpec: func() *tls.ClientHelloSpec { return &tls.ClientHelloSpec{ CipherSuites: []uint16{ tls.TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256, tls.TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384, tls.TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256, tls.TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384, tls.TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA, tls.TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA, tls.TLS_RSA_WITH_AES_128_GCM_SHA256, tls.TLS_RSA_WITH_AES_256_GCM_SHA384, tls.TLS_RSA_WITH_AES_128_CBC_SHA, tls.TLS_RSA_WITH_AES_256_CBC_SHA, tls.FAKE_TLS_EMPTY_RENEGOTIATION_INFO_SCSV, }, CompressionMethods: []uint8{ 0x00, }, Extensions: []tls.TLSExtension{ &tls.SNIExtension{}, &tls.SupportedPointsExtension{SupportedPoints: []byte{ 0x00, 0x01, 0x02, }}, &tls.SupportedCurvesExtension{Curves: []tls.CurveID{ tls.CurveID(14), tls.CurveID(13), tls.CurveP521, tls.CurveID(11), tls.CurveID(12), tls.CurveP384, tls.CurveID(9), tls.CurveID(10), tls.CurveID(22), tls.CurveP256, tls.CurveID(8), tls.CurveID(6), tls.CurveID(7), tls.CurveID(20), tls.CurveID(21), tls.CurveID(4), tls.CurveID(5), tls.CurveID(18), tls.CurveID(19), tls.CurveID(1), tls.CurveID(2), tls.CurveID(3), tls.CurveID(15), tls.CurveID(16), tls.CurveID(17), }}, &tls.SessionTicketExtension{}, &tls.SignatureAlgorithmsExtension{SupportedSignatureAlgorithms: []tls.SignatureScheme{ tls.PKCS1WithSHA512, 0x602, tls.ECDSAWithP521AndSHA512, tls.PKCS1WithSHA384, 0x502, tls.ECDSAWithP384AndSHA384, tls.PKCS1WithSHA256, 0x402, tls.ECDSAWithP256AndSHA256, 0x301, 0x302, 0x303, tls.PKCS1WithSHA1, 0x202, tls.ECDSAWithSHA1, }}, &tls.ALPNExtension{AlpnProtocols: []string{"h2", "http/1.1"}}, }, } }, H2: &H2ClientProfile{ Settings: []http2.Setting{ {ID: http2.SettingInitialWindowSize, Val: 16777216}, }, ConnectionFlow: 16711681, }, PseudoHeaderOrder: []string{ ":method", ":path", ":authority", ":scheme", }, }
View Source
var Okhttp4Android22 = Okhttp4Android21
View Source
var Okhttp4Android23 = ClientProfile{ ClientHelloSpec: func() *tls.ClientHelloSpec { return &tls.ClientHelloSpec{ CipherSuites: []uint16{ tls.TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256, tls.TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384, tls.TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256, tls.TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384, tls.TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA, tls.TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA, tls.TLS_RSA_WITH_AES_128_GCM_SHA256, tls.TLS_RSA_WITH_AES_256_GCM_SHA384, tls.TLS_RSA_WITH_AES_128_CBC_SHA, tls.TLS_RSA_WITH_AES_256_CBC_SHA, tls.FAKE_TLS_EMPTY_RENEGOTIATION_INFO_SCSV, }, CompressionMethods: []uint8{ 0x00, }, Extensions: []tls.TLSExtension{ &tls.SNIExtension{}, &tls.ExtendedMasterSecretExtension{}, &tls.SessionTicketExtension{}, &tls.SignatureAlgorithmsExtension{SupportedSignatureAlgorithms: []tls.SignatureScheme{ tls.PKCS1WithSHA512, tls.ECDSAWithP521AndSHA512, tls.PKCS1WithSHA384, tls.ECDSAWithP384AndSHA384, tls.PKCS1WithSHA256, tls.ECDSAWithP256AndSHA256, 0x301, 0x303, tls.PKCS1WithSHA1, tls.ECDSAWithSHA1, }}, &tls.ALPNExtension{AlpnProtocols: []string{"h2", "http/1.1"}}, &tls.SupportedPointsExtension{SupportedPoints: []byte{ 0x00, }}, &tls.SupportedCurvesExtension{Curves: []tls.CurveID{ tls.CurveP256, tls.CurveP384, tls.CurveP521, }}, }, } }, H2: &H2ClientProfile{ Settings: []http2.Setting{ {ID: http2.SettingInitialWindowSize, Val: 16777216}, }, ConnectionFlow: 16711681, }, PseudoHeaderOrder: []string{ ":method", ":path", ":authority", ":scheme", }, }
View Source
var Okhttp4Android24 = ClientProfile{ ClientHelloSpec: func() *tls.ClientHelloSpec { return &tls.ClientHelloSpec{ CipherSuites: []uint16{ tls.TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256, tls.TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384, tls.TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256, tls.TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256, tls.TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384, tls.TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256, tls.TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA, tls.TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA, tls.TLS_RSA_WITH_AES_128_GCM_SHA256, tls.TLS_RSA_WITH_AES_256_GCM_SHA384, tls.TLS_RSA_WITH_AES_128_CBC_SHA, tls.TLS_RSA_WITH_AES_256_CBC_SHA, }, CompressionMethods: []uint8{ 0x00, }, Extensions: []tls.TLSExtension{ &tls.RenegotiationInfoExtension{Renegotiation: tls.RenegotiateOnceAsClient}, &tls.SNIExtension{}, &tls.ExtendedMasterSecretExtension{}, &tls.SessionTicketExtension{}, &tls.SignatureAlgorithmsExtension{SupportedSignatureAlgorithms: []tls.SignatureScheme{ tls.PKCS1WithSHA512, tls.ECDSAWithP521AndSHA512, tls.PKCS1WithSHA384, tls.ECDSAWithP384AndSHA384, tls.PKCS1WithSHA256, tls.ECDSAWithP256AndSHA256, 0x301, 0x303, tls.PKCS1WithSHA1, tls.ECDSAWithSHA1, }}, &tls.ALPNExtension{AlpnProtocols: []string{"h2", "http/1.1"}}, &tls.SupportedPointsExtension{SupportedPoints: []byte{ 0x00, }}, &tls.SupportedCurvesExtension{Curves: []tls.CurveID{ tls.CurveP256, }}, }, } }, H2: &H2ClientProfile{ Settings: []http2.Setting{ {ID: http2.SettingInitialWindowSize, Val: 16777216}, }, ConnectionFlow: 16711681, }, PseudoHeaderOrder: []string{ ":method", ":path", ":authority", ":scheme", }, }
View Source
var Okhttp4Android25 = ClientProfile{ ClientHelloSpec: func() *tls.ClientHelloSpec { return &tls.ClientHelloSpec{ CipherSuites: []uint16{ tls.TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256, tls.TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384, tls.TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256, tls.TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256, tls.TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384, tls.TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256, tls.TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA, tls.TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA, tls.TLS_RSA_WITH_AES_128_GCM_SHA256, tls.TLS_RSA_WITH_AES_256_GCM_SHA384, tls.TLS_RSA_WITH_AES_128_CBC_SHA, tls.TLS_RSA_WITH_AES_256_CBC_SHA, }, CompressionMethods: []uint8{ 0x00, }, Extensions: []tls.TLSExtension{ &tls.RenegotiationInfoExtension{Renegotiation: tls.RenegotiateOnceAsClient}, &tls.SNIExtension{}, &tls.ExtendedMasterSecretExtension{}, &tls.SessionTicketExtension{}, &tls.SignatureAlgorithmsExtension{SupportedSignatureAlgorithms: []tls.SignatureScheme{ tls.PKCS1WithSHA512, tls.ECDSAWithP521AndSHA512, tls.PKCS1WithSHA384, tls.ECDSAWithP384AndSHA384, tls.PKCS1WithSHA256, tls.ECDSAWithP256AndSHA256, 0x301, 0x303, tls.PKCS1WithSHA1, tls.ECDSAWithSHA1, }}, &tls.ALPNExtension{AlpnProtocols: []string{"h2", "http/1.1"}}, &tls.SupportedPointsExtension{SupportedPoints: []byte{ 0x00, }}, &tls.SupportedCurvesExtension{Curves: []tls.CurveID{ tls.CurveP256, tls.CurveP384, tls.CurveP521, }}, }, } }, H2: &H2ClientProfile{ Settings: []http2.Setting{ {ID: http2.SettingInitialWindowSize, Val: 16777216}, }, ConnectionFlow: 16711681, }, PseudoHeaderOrder: []string{ ":method", ":path", ":authority", ":scheme", }, }
View Source
var Okhttp4Android26 = ClientProfile{ ClientHelloSpec: func() *tls.ClientHelloSpec { return &tls.ClientHelloSpec{ CipherSuites: []uint16{ tls.TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256, tls.TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384, tls.TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256, tls.TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256, tls.TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384, tls.TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256, tls.TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA, tls.TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA, tls.TLS_RSA_WITH_AES_128_GCM_SHA256, tls.TLS_RSA_WITH_AES_256_GCM_SHA384, tls.TLS_RSA_WITH_AES_128_CBC_SHA, tls.TLS_RSA_WITH_AES_256_CBC_SHA, }, CompressionMethods: []uint8{ 0x00, }, Extensions: []tls.TLSExtension{ &tls.RenegotiationInfoExtension{Renegotiation: tls.RenegotiateOnceAsClient}, &tls.SNIExtension{}, &tls.ExtendedMasterSecretExtension{}, &tls.SessionTicketExtension{}, &tls.SignatureAlgorithmsExtension{SupportedSignatureAlgorithms: []tls.SignatureScheme{ tls.ECDSAWithP256AndSHA256, tls.PKCS1WithSHA256, tls.ECDSAWithP384AndSHA384, tls.PKCS1WithSHA384, tls.ECDSAWithP521AndSHA512, tls.PKCS1WithSHA512, tls.PKCS1WithSHA1, }}, &tls.StatusRequestExtension{}, &tls.ALPNExtension{AlpnProtocols: []string{"h2", "http/1.1"}}, &tls.SupportedPointsExtension{SupportedPoints: []byte{ 0x00, }}, &tls.SupportedCurvesExtension{Curves: []tls.CurveID{ tls.X25519, tls.CurveP256, tls.CurveP384, }}, }, } }, H2: &H2ClientProfile{ Settings: []http2.Setting{ {ID: http2.SettingInitialWindowSize, Val: 16777216}, }, ConnectionFlow: 16711681, }, PseudoHeaderOrder: []string{ ":method", ":path", ":authority", ":scheme", }, }
View Source
var Okhttp4Android27 = ClientProfile{ ClientHelloSpec: func() *tls.ClientHelloSpec { return &tls.ClientHelloSpec{ CipherSuites: []uint16{ tls.TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256, tls.TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384, tls.TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256, tls.TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256, tls.TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384, tls.TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256, tls.TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA, tls.TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA, tls.TLS_RSA_WITH_AES_128_GCM_SHA256, tls.TLS_RSA_WITH_AES_256_GCM_SHA384, tls.TLS_RSA_WITH_AES_128_CBC_SHA, tls.TLS_RSA_WITH_AES_256_CBC_SHA, }, CompressionMethods: []uint8{ 0x00, }, Extensions: []tls.TLSExtension{ &tls.RenegotiationInfoExtension{Renegotiation: tls.RenegotiateOnceAsClient}, &tls.SNIExtension{}, &tls.ExtendedMasterSecretExtension{}, &tls.SessionTicketExtension{}, &tls.SignatureAlgorithmsExtension{SupportedSignatureAlgorithms: []tls.SignatureScheme{ tls.ECDSAWithP256AndSHA256, tls.PKCS1WithSHA256, tls.ECDSAWithP384AndSHA384, tls.PKCS1WithSHA384, tls.ECDSAWithP521AndSHA512, tls.PKCS1WithSHA512, tls.PKCS1WithSHA1, }}, &tls.StatusRequestExtension{}, &tls.ALPNExtension{AlpnProtocols: []string{"h2", "http/1.1"}}, &tls.SupportedPointsExtension{SupportedPoints: []byte{ 0x00, }}, &tls.SupportedCurvesExtension{Curves: []tls.CurveID{ tls.X25519, tls.CurveP256, tls.CurveP384, }}, }, } }, H2: &H2ClientProfile{ Settings: []http2.Setting{ {ID: http2.SettingInitialWindowSize, Val: 16777216}, }, ConnectionFlow: 16711681, }, PseudoHeaderOrder: []string{ ":method", ":path", ":authority", ":scheme", }, }
View Source
var Okhttp4Android28 = ClientProfile{ ClientHelloSpec: func() *tls.ClientHelloSpec { return &tls.ClientHelloSpec{ CipherSuites: []uint16{ tls.TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256, tls.TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384, tls.TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256, tls.TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256, tls.TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384, tls.TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256, tls.TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA, tls.TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA, tls.TLS_RSA_WITH_AES_128_GCM_SHA256, tls.TLS_RSA_WITH_AES_256_GCM_SHA384, tls.TLS_RSA_WITH_AES_128_CBC_SHA, tls.TLS_RSA_WITH_AES_256_CBC_SHA, }, CompressionMethods: []uint8{ 0x00, }, Extensions: []tls.TLSExtension{ &tls.RenegotiationInfoExtension{Renegotiation: tls.RenegotiateOnceAsClient}, &tls.SNIExtension{}, &tls.ExtendedMasterSecretExtension{}, &tls.SessionTicketExtension{}, &tls.SignatureAlgorithmsExtension{SupportedSignatureAlgorithms: []tls.SignatureScheme{ tls.ECDSAWithP256AndSHA256, tls.PSSWithSHA256, tls.PKCS1WithSHA256, tls.ECDSAWithP384AndSHA384, tls.PSSWithSHA384, tls.PKCS1WithSHA384, tls.PSSWithSHA512, tls.PKCS1WithSHA512, tls.PKCS1WithSHA1, }}, &tls.StatusRequestExtension{}, &tls.ALPNExtension{AlpnProtocols: []string{"h2", "http/1.1"}}, &tls.SupportedPointsExtension{SupportedPoints: []byte{ 0x00, }}, &tls.SupportedCurvesExtension{Curves: []tls.CurveID{ tls.X25519, tls.CurveP256, tls.CurveP384, }}, }, } }, H2: &H2ClientProfile{ Settings: []http2.Setting{ {ID: http2.SettingInitialWindowSize, Val: 16777216}, }, ConnectionFlow: 16711681, }, PseudoHeaderOrder: []string{ ":method", ":path", ":authority", ":scheme", }, }
View Source
var Okhttp4Android29 = ClientProfile{ ClientHelloSpec: func() *tls.ClientHelloSpec { return &tls.ClientHelloSpec{ CipherSuites: []uint16{ tls.TLS_AES_128_GCM_SHA256, tls.TLS_AES_256_GCM_SHA384, tls.TLS_CHACHA20_POLY1305_SHA256, tls.TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256, tls.TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384, tls.TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256, tls.TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256, tls.TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384, tls.TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256, tls.TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA, tls.TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA, tls.TLS_RSA_WITH_AES_128_GCM_SHA256, tls.TLS_RSA_WITH_AES_256_GCM_SHA384, tls.TLS_RSA_WITH_AES_128_CBC_SHA, tls.TLS_RSA_WITH_AES_256_CBC_SHA, }, CompressionMethods: []uint8{ 0x00, }, Extensions: []tls.TLSExtension{ &tls.SNIExtension{}, &tls.ExtendedMasterSecretExtension{}, &tls.RenegotiationInfoExtension{Renegotiation: tls.RenegotiateOnceAsClient}, &tls.SupportedCurvesExtension{Curves: []tls.CurveID{ tls.X25519, tls.CurveP256, tls.CurveP384, }}, &tls.SupportedPointsExtension{SupportedPoints: []byte{ 0x00, }}, &tls.SessionTicketExtension{}, &tls.ALPNExtension{AlpnProtocols: []string{"h2", "http/1.1"}}, &tls.StatusRequestExtension{}, &tls.SignatureAlgorithmsExtension{SupportedSignatureAlgorithms: []tls.SignatureScheme{ tls.ECDSAWithP256AndSHA256, tls.PSSWithSHA256, tls.PKCS1WithSHA256, tls.ECDSAWithP384AndSHA384, tls.PSSWithSHA384, tls.PKCS1WithSHA384, tls.PSSWithSHA512, tls.PKCS1WithSHA512, tls.PKCS1WithSHA1, }}, &tls.KeyShareExtension{KeyShares: []tls.KeyShare{ {Group: tls.X25519}, }}, &tls.PSKKeyExchangeModesExtension{Modes: []uint8{ tls.PskModeDHE, }}, &tls.SupportedVersionsExtension{Versions: []uint16{ tls.VersionTLS13, tls.VersionTLS12, }}, &tls.UtlsPaddingExtension{GetPaddingLen: tls.BoringPaddingStyle}, }, } }, H2: &H2ClientProfile{ Settings: []http2.Setting{ {ID: http2.SettingInitialWindowSize, Val: 16777216}, }, ConnectionFlow: 16711681, }, PseudoHeaderOrder: []string{ ":method", ":path", ":authority", ":scheme", }, }
View Source
var Okhttp4Android30 = Okhttp4Android29
View Source
var Okhttp4Android31 = Okhttp4Android29
View Source
var Okhttp4Android32 = Okhttp4Android29
View Source
var Okhttp4Android33 = Okhttp4Android29
View Source
var Okhttp4Android34 = Okhttp4Android29
View Source
var Okhttp4Android35 = Okhttp4Android29
View Source
var Safari17 = ClientProfile{ ClientHelloSpec: func() *tls.ClientHelloSpec { return &tls.ClientHelloSpec{ CipherSuites: []uint16{ tls.GREASE_PLACEHOLDER, tls.TLS_AES_128_GCM_SHA256, tls.TLS_AES_256_GCM_SHA384, tls.TLS_CHACHA20_POLY1305_SHA256, tls.TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384, tls.TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256, tls.TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256, tls.TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384, tls.TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256, tls.TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256, tls.TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA, tls.TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA, tls.TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA, tls.TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA, tls.TLS_RSA_WITH_AES_256_GCM_SHA384, tls.TLS_RSA_WITH_AES_128_GCM_SHA256, tls.TLS_RSA_WITH_AES_256_CBC_SHA, tls.TLS_RSA_WITH_AES_128_CBC_SHA, tls.FAKE_TLS_ECDHE_ECDSA_WITH_3DES_EDE_CBC_SHA, tls.TLS_ECDHE_RSA_WITH_3DES_EDE_CBC_SHA, tls.TLS_RSA_WITH_3DES_EDE_CBC_SHA, }, CompressionMethods: []byte{ 0x00, }, Extensions: []tls.TLSExtension{ &tls.UtlsGREASEExtension{}, &tls.SNIExtension{}, &tls.ExtendedMasterSecretExtension{}, &tls.RenegotiationInfoExtension{Renegotiation: tls.RenegotiateOnceAsClient}, &tls.SupportedCurvesExtension{Curves: []tls.CurveID{ tls.GREASE_PLACEHOLDER, tls.X25519, tls.CurveP256, tls.CurveP384, tls.CurveP521, }}, &tls.SupportedPointsExtension{SupportedPoints: []byte{ 0x00, }}, &tls.ALPNExtension{AlpnProtocols: []string{"h2", "http/1.1"}}, &tls.StatusRequestExtension{}, &tls.SignatureAlgorithmsExtension{SupportedSignatureAlgorithms: []tls.SignatureScheme{ tls.ECDSAWithP256AndSHA256, tls.PSSWithSHA256, tls.PKCS1WithSHA256, tls.ECDSAWithP384AndSHA384, tls.ECDSAWithSHA1, tls.PSSWithSHA384, tls.PSSWithSHA384, tls.PKCS1WithSHA384, tls.PSSWithSHA512, tls.PKCS1WithSHA512, tls.PKCS1WithSHA1, }}, &tls.SCTExtension{}, &tls.KeyShareExtension{KeyShares: []tls.KeyShare{ {Group: tls.CurveID(tls.GREASE_PLACEHOLDER), Data: []byte{0}}, {Group: tls.X25519}, }}, &tls.PSKKeyExchangeModesExtension{Modes: []uint8{ tls.PskModeDHE, }}, &tls.SupportedVersionsExtension{Versions: []uint16{ tls.GREASE_PLACEHOLDER, tls.VersionTLS13, tls.VersionTLS12, tls.VersionTLS11, tls.VersionTLS10, }}, &tls.UtlsCompressCertExtension{Algorithms: []tls.CertCompressionAlgo{ tls.CertCompressionZlib, }}, &tls.UtlsGREASEExtension{}, &tls.UtlsPaddingExtension{GetPaddingLen: tls.BoringPaddingStyle}, }, } }, H2: &H2ClientProfile{ Settings: []http2.Setting{ {ID: http2.SettingEnablePush, Val: 0}, {ID: http2.SettingInitialWindowSize, Val: 4194304}, {ID: http2.SettingMaxConcurrentStreams, Val: 100}, }, ConnectionFlow: 10485760, HeaderPriority: func(r *http.Request) http2.PriorityParam { return http2.PriorityParam{ StreamDep: 0, Exclusive: true, Weight: 255, } }, }, PseudoHeaderOrder: []string{ ":method", ":scheme", ":path", ":authority", }, }
View Source
var Safari18 = ClientProfile{ ClientHelloSpec: func() *tls.ClientHelloSpec { return &tls.ClientHelloSpec{ CipherSuites: []uint16{ tls.GREASE_PLACEHOLDER, tls.TLS_AES_128_GCM_SHA256, tls.TLS_AES_256_GCM_SHA384, tls.TLS_CHACHA20_POLY1305_SHA256, tls.TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384, tls.TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256, tls.TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256, tls.TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384, tls.TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256, tls.TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256, tls.TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA, tls.TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA, tls.TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA, tls.TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA, tls.TLS_RSA_WITH_AES_256_GCM_SHA384, tls.TLS_RSA_WITH_AES_128_GCM_SHA256, tls.TLS_RSA_WITH_AES_256_CBC_SHA, tls.TLS_RSA_WITH_AES_128_CBC_SHA, tls.FAKE_TLS_ECDHE_ECDSA_WITH_3DES_EDE_CBC_SHA, tls.TLS_ECDHE_RSA_WITH_3DES_EDE_CBC_SHA, tls.TLS_RSA_WITH_3DES_EDE_CBC_SHA, }, CompressionMethods: []byte{ 0x00, }, Extensions: []tls.TLSExtension{ &tls.UtlsGREASEExtension{}, &tls.SNIExtension{}, &tls.ExtendedMasterSecretExtension{}, &tls.RenegotiationInfoExtension{Renegotiation: tls.RenegotiateOnceAsClient}, &tls.SupportedCurvesExtension{Curves: []tls.CurveID{ tls.GREASE_PLACEHOLDER, tls.X25519, tls.CurveP256, tls.CurveP384, tls.CurveP521, }}, &tls.SupportedPointsExtension{SupportedPoints: []byte{ 0x00, }}, &tls.ALPNExtension{AlpnProtocols: []string{"h2", "http/1.1"}}, &tls.StatusRequestExtension{}, &tls.SignatureAlgorithmsExtension{SupportedSignatureAlgorithms: []tls.SignatureScheme{ tls.ECDSAWithP256AndSHA256, tls.PSSWithSHA256, tls.PKCS1WithSHA256, tls.ECDSAWithP384AndSHA384, tls.PSSWithSHA384, tls.PSSWithSHA384, tls.PKCS1WithSHA384, tls.PSSWithSHA512, tls.PKCS1WithSHA512, tls.PKCS1WithSHA1, }}, &tls.SCTExtension{}, &tls.KeyShareExtension{KeyShares: []tls.KeyShare{ {Group: tls.CurveID(tls.GREASE_PLACEHOLDER), Data: []byte{0}}, {Group: tls.X25519}, }}, &tls.PSKKeyExchangeModesExtension{Modes: []uint8{ tls.PskModeDHE, }}, &tls.SupportedVersionsExtension{Versions: []uint16{ tls.GREASE_PLACEHOLDER, tls.VersionTLS13, tls.VersionTLS12, tls.VersionTLS11, tls.VersionTLS10, }}, &tls.UtlsCompressCertExtension{Algorithms: []tls.CertCompressionAlgo{ tls.CertCompressionZlib, }}, &tls.UtlsGREASEExtension{}, &tls.UtlsPaddingExtension{GetPaddingLen: tls.BoringPaddingStyle}, }, } }, H2: &H2ClientProfile{ Settings: []http2.Setting{ {ID: http2.SettingEnablePush, Val: 0}, {ID: http2.SettingMaxConcurrentStreams, Val: 100}, {ID: http2.SettingInitialWindowSize, Val: 2097152}, {ID: http2.SettingNoRFC7540Priorities, Val: 1}, }, ConnectionFlow: 10420225, HeaderPriority: func(r *http.Request) http2.PriorityParam { return http2.PriorityParam{ StreamDep: 0, Exclusive: true, Weight: 255, } }, }, H3: &H3ClientProfile{ Settings: []http3.Setting{ {ID: http3.SettingQpackMaxTableCapacity, Val: 16383}, {ID: http3.SettingQpackBlockedStreams, Val: 100}, {ID: http3.SettingGrease, Val: 0}, }, }, PseudoHeaderOrder: []string{ ":method", ":scheme", ":authority", ":path", }, }
View Source
var Safari26 = ClientProfile{ ClientHelloSpec: func() *tls.ClientHelloSpec { return &tls.ClientHelloSpec{ CipherSuites: []uint16{ tls.GREASE_PLACEHOLDER, tls.TLS_AES_256_GCM_SHA384, tls.TLS_CHACHA20_POLY1305_SHA256, tls.TLS_AES_128_GCM_SHA256, tls.TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384, tls.TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256, tls.TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256, tls.TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384, tls.TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256, tls.TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256, tls.TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA, tls.TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA, tls.TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA, tls.TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA, tls.TLS_RSA_WITH_AES_256_GCM_SHA384, tls.TLS_RSA_WITH_AES_128_GCM_SHA256, tls.TLS_RSA_WITH_AES_256_CBC_SHA, tls.TLS_RSA_WITH_AES_128_CBC_SHA, tls.FAKE_TLS_ECDHE_ECDSA_WITH_3DES_EDE_CBC_SHA, tls.TLS_ECDHE_RSA_WITH_3DES_EDE_CBC_SHA, tls.TLS_RSA_WITH_3DES_EDE_CBC_SHA, }, CompressionMethods: []byte{ 0x00, }, Extensions: []tls.TLSExtension{ &tls.UtlsGREASEExtension{}, &tls.SNIExtension{}, &tls.ExtendedMasterSecretExtension{}, &tls.RenegotiationInfoExtension{Renegotiation: tls.RenegotiateOnceAsClient}, &tls.SupportedCurvesExtension{Curves: []tls.CurveID{ tls.GREASE_PLACEHOLDER, tls.X25519MLKEM768, tls.X25519, tls.CurveP256, tls.CurveP384, tls.CurveP521, }}, &tls.SupportedPointsExtension{SupportedPoints: []byte{ 0x00, }}, &tls.ALPNExtension{AlpnProtocols: []string{"h2", "http/1.1"}}, &tls.StatusRequestExtension{}, &tls.SignatureAlgorithmsExtension{SupportedSignatureAlgorithms: []tls.SignatureScheme{ tls.ECDSAWithP256AndSHA256, tls.PSSWithSHA256, tls.PKCS1WithSHA256, tls.ECDSAWithP384AndSHA384, tls.PSSWithSHA384, tls.PSSWithSHA384, tls.PKCS1WithSHA384, tls.PSSWithSHA512, tls.PKCS1WithSHA512, tls.PKCS1WithSHA1, }}, &tls.SCTExtension{}, &tls.KeyShareExtension{KeyShares: []tls.KeyShare{ {Group: tls.CurveID(tls.GREASE_PLACEHOLDER), Data: []byte{0}}, {Group: tls.X25519MLKEM768}, {Group: tls.X25519}, }}, &tls.PSKKeyExchangeModesExtension{Modes: []uint8{ tls.PskModeDHE, }}, &tls.SupportedVersionsExtension{Versions: []uint16{ tls.GREASE_PLACEHOLDER, tls.VersionTLS13, tls.VersionTLS12, }}, &tls.UtlsCompressCertExtension{Algorithms: []tls.CertCompressionAlgo{ tls.CertCompressionZlib, }}, &tls.UtlsGREASEExtension{}, }, } }, H2: &H2ClientProfile{ Settings: []http2.Setting{ {ID: http2.SettingEnablePush, Val: 0}, {ID: http2.SettingMaxConcurrentStreams, Val: 100}, {ID: http2.SettingInitialWindowSize, Val: 2097152}, {ID: http2.SettingNoRFC7540Priorities, Val: 1}, }, ConnectionFlow: 10420225, }, H3: &H3ClientProfile{ Settings: []http3.Setting{ {ID: http3.SettingQpackMaxTableCapacity, Val: 16383}, {ID: http3.SettingQpackBlockedStreams, Val: 100}, {ID: http3.SettingGrease, Val: 0}, }, }, PseudoHeaderOrder: []string{ ":method", ":scheme", ":authority", ":path", }, }
Functions ¶
This section is empty.
Types ¶
type ClientProfile ¶
type ClientProfile struct {
ClientHelloSpec func() *tls.ClientHelloSpec
PseudoHeaderOrder []string
H2 *H2ClientProfile
H3 *H3ClientProfile
}
func Chrome ¶
func Chrome(major int) ClientProfile
func HttpUrlConnectionAndroid ¶
func HttpUrlConnectionAndroid(sdk int) ClientProfile
func Okhttp4Android ¶
func Okhttp4Android(sdk int) ClientProfile
type H2ClientProfile ¶ added in v1.6.1
type H3ClientProfile ¶ added in v1.5.2
Click to show internal directories.
Click to hide internal directories.