Documentation
¶
Overview ¶
tls_client_cffi_src provides and manages a CFFI (C Foreign Function Interface) which allows code in other languages to interact with the module.
Index ¶
- func BuildResponse(sessionId string, withSession bool, resp *http.Response, ...) (Response, *TLSClientError)
- func ClearSessionCache()
- func GetClient(sessionId string) (tls_client.HttpClient, error)
- func RemoveSession(sessionId string)
- type AddCookiesToSessionInput
- type CookieInput
- type CookiesFromSessionOutput
- type CustomTlsClient
- type DestroyOutput
- type DestroySessionInput
- type GetCookiesFromSessionInput
- type PriorityFrames
- type PriorityParam
- type RequestInput
- type Response
- type TLSClientError
- type Timestamp
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func BuildResponse ¶
func BuildResponse(sessionId string, withSession bool, resp *http.Response, cookies []*http.Cookie, input RequestInput) (Response, *TLSClientError)
BuildResponse constructs a client response from a given HTTP response. The client response can then be sent to the interface consumer.
func ClearSessionCache ¶
func ClearSessionCache()
ClearSessionCache empties the client session storage.
func GetClient ¶
func GetClient(sessionId string) (tls_client.HttpClient, error)
GetClient returns the client with the given sessionId from the client session storage. If there is no client with the given sessionId, it returns an error.
func RemoveSession ¶
func RemoveSession(sessionId string)
RemoveSession deletes the client with the given sessionId from the client session storage.
Types ¶
type CookieInput ¶
type CustomTlsClient ¶
type CustomTlsClient struct {
Ja3String string `json:"ja3String"`
SupportedSignatureAlgorithms []string `json:"supportedSignatureAlgorithms"`
SupportedDelegatedCredentialsAlgorithms []string `json:"supportedDelegatedCredentialsAlgorithms"`
SupportedVersions []string `json:"supportedVersions"`
CertCompressionAlgo string `json:"certCompressionAlgo"`
H2Settings map[string]uint32 `json:"h2Settings"`
H2SettingsOrder []string `json:"h2SettingsOrder"`
PseudoHeaderOrder []string `json:"pseudoHeaderOrder"`
ConnectionFlow uint32 `json:"connectionFlow"`
PriorityFrames []PriorityFrames `json:"priorityFrames"`
HeaderPriority *PriorityParam `json:"headerPriority"`
}
CustomTlsClient contains custom TLS specifications to construct a client from.
type DestroyOutput ¶
type DestroySessionInput ¶
type DestroySessionInput struct {
SessionId string `json:"sessionId"`
}
type PriorityFrames ¶
type PriorityFrames struct {
StreamID uint32 `json:"streamID"`
PriorityParam PriorityParam `json:"priorityParam"`
}
type PriorityParam ¶
type RequestInput ¶
type RequestInput struct {
SessionId *string `json:"sessionId"`
TLSClientIdentifier string `json:"tlsClientIdentifier"`
CustomTlsClient *CustomTlsClient `json:"customTlsClient"`
CertificatePinningHosts map[string][]string `json:"certificatePinningHosts"`
IsRotatingProxy bool `json:"isRotatingProxy"`
FollowRedirects bool `json:"followRedirects"`
ForceHttp1 bool `json:"forceHttp1"`
CatchPanics bool `json:"catchPanics"`
IsByteResponse bool `json:"isByteResponse"`
WithDebug bool `json:"withDebug"`
IsByteRequest bool `json:"isByteRequest"`
WithoutCookieJar bool `json:"withoutCookieJar"`
WithDefaultCookieJar bool `json:"withDefaultCookieJar"`
WithRandomTLSExtensionOrder bool `json:"withRandomTLSExtensionOrder"`
InsecureSkipVerify bool `json:"insecureSkipVerify"`
TimeoutSeconds int `json:"timeoutSeconds"`
TimeoutMilliseconds int `json:"timeoutMilliseconds"`
ProxyUrl *string `json:"proxyUrl"`
AdditionalDecode *string `json:"additionalDecode"`
Headers map[string]string `json:"headers"`
HeaderOrder []string `json:"headerOrder"`
RequestUrl string `json:"requestUrl"`
RequestMethod string `json:"requestMethod"`
RequestBody *string `json:"requestBody"`
RequestCookies []CookieInput `json:"requestCookies"`
StreamOutputPath *string `json:"streamOutputPath"`
StreamOutputBlockSize *int `json:"streamOutputBlockSize"`
StreamOutputEOFSymbol *string `json:"streamOutputEOFSymbol"`
}
RequestInput is the data a Python client can construct a client and request from.
type Response ¶
type Response struct {
Id string `json:"id"`
SessionId string `json:"sessionId,omitempty"`
Status int `json:"status"`
UsedProtocol string `json:"usedProtocol"`
Target string `json:"target"`
Body string `json:"body"`
Headers map[string][]string `json:"headers"`
Cookies map[string]string `json:"cookies"`
}
Response is the response that is sent back to the Python client.
type TLSClientError ¶
type TLSClientError struct {
// contains filtered or unexported fields
}
func BuildRequest ¶
func BuildRequest(input RequestInput) (*http.Request, *TLSClientError)
BuildRequest constructs a HTTP request from a given RequestInput.
func CreateClient ¶
func CreateClient(requestInput RequestInput) (client tls_client.HttpClient, sessionID string, withSession bool, clientErr *TLSClientError)
CreateClient creates a new client from a given RequestInput.
The RequestInput should only contain a TLSClientIdentifier or a CustomTlsClient. If both are provided, an error will be returned.
func NewTLSClientError ¶
func NewTLSClientError(err error) *TLSClientError
func (*TLSClientError) Error ¶
func (e *TLSClientError) Error() string