/
tls_struct.go
75 lines (67 loc) · 3.07 KB
/
tls_struct.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
package fpclient
type TlsFingerprint struct {
IP string `json:"ip"`
HTTPVersion string `json:"http_version"`
Method string `json:"method"`
UserAgent string `json:"user_agent"`
TLS TLS `json:"tls"`
Http2 Http2 `json:"http2"`
}
type Http2 struct {
AkamaiFingerprint string `json:"akamai_fingerprint"`
AkamaiFingerprintHash string `json:"akamai_fingerprint_hash"`
SentFrames []SentFrame `json:"sent_frames"`
}
type SentFrame struct {
FrameType string `json:"frame_type"`
Length int64 `json:"length"`
Settings []string `json:"settings,omitempty"`
Increment *int64 `json:"increment,omitempty"`
StreamID *int64 `json:"stream_id,omitempty"`
Headers []string `json:"headers,omitempty"`
Flags []string `json:"flags,omitempty"`
Priority *Priority `json:"priority,omitempty"`
}
type Priority struct {
Weight int64 `json:"weight"`
DependsOn int64 `json:"depends_on"`
Exclusive int64 `json:"exclusive"`
}
type TLS struct {
Ciphers []string `json:"ciphers"`
Extensions []Extension `json:"extensions"`
TLSVersionRecord string `json:"tls_version_record"`
TLSVersionNegotiated string `json:"tls_version_negotiated"`
Ja3 string `json:"ja3"`
Ja3Hash string `json:"ja3_hash"`
Peetprint string `json:"peetprint"`
PeetprintHash string `json:"peetprint_hash"`
ClientRandom string `json:"client_random"`
SessionID string `json:"session_id"`
}
type Extension struct {
Name string `json:"name"`
Protocols []string `json:"protocols,omitempty"`
SharedKeys []SharedKey `json:"shared_keys,omitempty"`
MasterSecretData *string `json:"master_secret_data,omitempty"`
ExtendedMasterSecretData *string `json:"extended_master_secret_data,omitempty"`
EllipticCurvesPointFormats []string `json:"elliptic_curves_point_formats,omitempty"`
Data *string `json:"data,omitempty"`
Versions []string `json:"versions,omitempty"`
ServerName *string `json:"server_name,omitempty"`
StatusRequest *StatusRequest `json:"status_request,omitempty"`
Algorithms []string `json:"algorithms,omitempty"`
SupportedGroups []string `json:"supported_groups,omitempty"`
SignatureAlgorithms []string `json:"signature_algorithms,omitempty"`
PSKKeyExchangeMode *string `json:"PSK_Key_Exchange_Mode,omitempty"`
PaddingDataLength *int64 `json:"padding_data_length,omitempty"`
}
type SharedKey struct {
TLSGREASE0X4A4A *string `json:"TLS_GREASE (0x4a4a),omitempty"`
X2551929 *string `json:"X25519 (29),omitempty"`
}
type StatusRequest struct {
CertificateStatusType string `json:"certificate_status_type"`
ResponderIDListLength int64 `json:"responder_id_list_length"`
RequestExtensionsLength int64 `json:"request_extensions_length"`
}