suricata
app-layer-ssl.h
Go to the documentation of this file.
1 /* Copyright (C) 2007-2022 Open Information Security Foundation
2  *
3  * You can copy, redistribute or modify this Program under the terms of
4  * the GNU General Public License version 2 as published by the Free
5  * Software Foundation.
6  *
7  * This program is distributed in the hope that it will be useful,
8  * but WITHOUT ANY WARRANTY; without even the implied warranty of
9  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
10  * GNU General Public License for more details.
11  *
12  * You should have received a copy of the GNU General Public License
13  * version 2 along with this program; if not, write to the Free Software
14  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
15  * 02110-1301, USA.
16  */
17 
18 /**
19  * \file
20  *
21  * \author Anoop Saldanha <anoopsaldanha@gmail.com>
22  * \author Pierre Chifflier <pierre.chifflier@ssi.gouv.fr>
23  *
24  */
25 
26 #ifndef SURICATA_APP_LAYER_SSL_H
27 #define SURICATA_APP_LAYER_SSL_H
28 
29 #include "util-ja3.h"
30 #include "rust.h"
31 #include "app-layer-parser.h"
32 
34  TLS_FRAME_PDU = 0, /**< whole PDU, so header + data */
35  TLS_FRAME_HDR, /**< only header portion */
36  TLS_FRAME_DATA, /**< only data portion */
41 };
42 
43 enum {
44  /* TLS protocol messages */
61  /* Certificates decoding messages */
77 };
78 
85 };
86 
93 };
94 
95 /* Flag to indicate that server will now on send encrypted msgs */
96 #define SSL_AL_FLAG_SERVER_CHANGE_CIPHER_SPEC BIT_U32(0)
97 /* Flag to indicate that client will now on send encrypted msgs */
98 #define SSL_AL_FLAG_CLIENT_CHANGE_CIPHER_SPEC BIT_U32(1)
99 #define SSL_AL_FLAG_CHANGE_CIPHER_SPEC BIT_U32(2)
100 
101 /* SSL related flags */
102 #define SSL_AL_FLAG_SSL_CLIENT_HS BIT_U32(3)
103 #define SSL_AL_FLAG_SSL_SERVER_HS BIT_U32(4)
104 #define SSL_AL_FLAG_SSL_CLIENT_MASTER_KEY BIT_U32(5)
105 #define SSL_AL_FLAG_SSL_CLIENT_SSN_ENCRYPTED BIT_U32(6)
106 #define SSL_AL_FLAG_SSL_SERVER_SSN_ENCRYPTED BIT_U32(7)
107 #define SSL_AL_FLAG_SSL_NO_SESSION_ID BIT_U32(8)
108 
109 /* flags specific to detect-ssl-state keyword */
110 #define SSL_AL_FLAG_STATE_CLIENT_HELLO BIT_U32(9)
111 #define SSL_AL_FLAG_STATE_SERVER_HELLO BIT_U32(10)
112 #define SSL_AL_FLAG_STATE_CLIENT_KEYX BIT_U32(11)
113 #define SSL_AL_FLAG_STATE_SERVER_KEYX BIT_U32(12)
114 #define SSL_AL_FLAG_STATE_UNKNOWN BIT_U32(13)
115 
116 /* flags specific to HeartBeat state */
117 #define SSL_AL_FLAG_HB_INFLIGHT BIT_U32(15)
118 #define SSL_AL_FLAG_HB_CLIENT_INIT BIT_U32(16)
119 #define SSL_AL_FLAG_HB_SERVER_INIT BIT_U32(17)
120 
121 /* Session resumed without a full handshake */
122 #define SSL_AL_FLAG_SESSION_RESUMED BIT_U32(20)
123 
124 /* Encountered a supported_versions extension in client hello */
125 #define SSL_AL_FLAG_CH_VERSION_EXTENSION BIT_U32(21)
126 
127 /* Log the session even without ever seeing a certificate. This is used
128  to log TLSv1.3 sessions. */
129 #define SSL_AL_FLAG_LOG_WITHOUT_CERT BIT_U32(22)
130 
131 /* Encountered a early data extension in client hello. This extension is
132  used by 0-RTT. */
133 #define SSL_AL_FLAG_EARLY_DATA BIT_U32(23)
134 
135 /* flag to indicate that server random was filled */
136 #define TLS_TS_RANDOM_SET BIT_U32(24)
137 
138 /* flag to indicate that client random was filled */
139 #define TLS_TC_RANDOM_SET BIT_U32(25)
140 
141 #define SSL_AL_FLAG_NEED_CLIENT_CERT BIT_U32(26)
142 /* a message at or after the CertificateRequest position of the server
143  * flight was seen (or a client flight message): whether a client
144  * certificate is required is decided from here */
145 #define SSL_AL_FLAG_SERVER_FLIGHT_DECIDED BIT_U32(27)
146 
147 /* config flags */
148 #define SSL_TLS_LOG_PEM (1 << 0)
149 
150 /* extensions */
151 #define SSL_EXTENSION_SNI 0x0000
152 #define SSL_EXTENSION_ELLIPTIC_CURVES 0x000a
153 #define SSL_EXTENSION_EC_POINT_FORMATS 0x000b
154 #define SSL_EXTENSION_SIGNATURE_ALGORITHMS 0x000d
155 #define SSL_EXTENSION_ALPN 0x0010
156 #define SSL_EXTENSION_SESSION_TICKET 0x0023
157 #define SSL_EXTENSION_EARLY_DATA 0x002a
158 #define SSL_EXTENSION_SUPPORTED_VERSIONS 0x002b
159 
160 /* SNI types */
161 #define SSL_SNI_TYPE_HOST_NAME 0
162 
163 /* TLS random bytes for the sticky buffer */
164 #define TLS_RANDOM_LEN 32
165 
166 typedef struct SSLCertsChain_ {
167  uint8_t *cert_data;
168  uint32_t cert_len;
171 
172 typedef struct SSLSubjectAltName_ {
173  uint8_t *san;
174  uint32_t san_len;
176 
177 typedef struct SSLStateConnp_ {
178  /* record length */
179  uint32_t record_length;
180  /* record length's length for SSLv2 */
182 
183  /* offset of the beginning of the current message (including header) */
184  uint32_t message_length;
185 
186  uint16_t version;
187  uint8_t content_type;
188 
189  uint8_t handshake_type;
190 
191  /* the no of bytes processed in the currently parsed record */
192  uint32_t bytes_processed;
193 
195 
197  uint8_t *cert0_subject;
199  uint8_t *cert0_issuerdn;
201  uint8_t *cert0_serial;
203 
204  /* the current handshake message failed to decode: suppress the phase
205  * advance that follows it (the phase data does not exist); the
206  * message bytes are consumed and parsing continues; reset per message */
208  /* this connp's certificate message has not decoded fully (it failed,
209  * or a certificate in it failed): the certificate data is incomplete,
210  * so the handshake-done heuristic must not establish the data phase
211  * from it; set while the first certificate message is being decoded,
212  * cleared by a fully decoded certificate message only */
214  /* a certificate message has fully decoded at least once: the chain
215  * content (count included) is final from here on; until then the
216  * parser state may already sit in the cert phase (entered at
217  * ServerHello completion or a certificate header) with an
218  * incomplete chain */
220  /* a hello (including its supported_versions extension) decoded cleanly:
221  * this connp's version is final from here on. A failed hello sets the
222  * legacy version but leaves this clear, so a later record must not turn
223  * a partially decoded hello into a version match */
228 
230  uint16_t cert0_sans_num;
231  /* ssl server name indication extension */
232  uint8_t *sni;
233  uint16_t sni_len;
234 
235  char *session_id;
236 
238 
239  uint8_t *certs_buffer;
241 
242  uint32_t cert_log_flag;
243 
245  char *ja3_hash;
246 
247  HandshakeParams *hs;
248 
249  /* handshake tls fragmentation buffer. Handshake messages can be fragmented over multiple
250  * TLS records. */
251  uint8_t *hs_buffer;
254  uint32_t hs_buffer_size; /**< allocation size */
255  uint32_t hs_buffer_offset; /**< write offset */
257 
258 /**
259  * \brief SSLv[2.0|3.[0|1|2|3]] state structure.
260  *
261  * Structure to store the SSL state values.
262  */
263 typedef struct SSLState_ {
264  Flow *f;
265 
268 
269  /* holds some state flags we need */
270  uint32_t flags;
271 
272  /* there might be a better place to store this*/
273  uint32_t hb_record_len;
274 
275  uint16_t events;
276 
277  uint32_t current_flags;
278 
280 
283 
287 
288 void RegisterSSLParsers(void);
289 void SSLEnableJA3(void);
290 bool SSLJA3IsEnabled(void);
291 bool SSLV3TxLogReady(void *tx);
292 void SSLEnableJA4(void);
293 bool SSLJA4IsEnabled(void);
294 
295 #endif /* SURICATA_APP_LAYER_SSL_H */
TLS_DECODER_EVENT_CERTIFICATE_INVALID_ISSUER
@ TLS_DECODER_EVENT_CERTIFICATE_INVALID_ISSUER
Definition: app-layer-ssl.h:72
SSLState_
SSLv[2.0|3.[0|1|2|3]] state structure.
Definition: app-layer-ssl.h:263
SSLSubjectAltName_::san_len
uint32_t san_len
Definition: app-layer-ssl.h:174
JA3Buffer_
Definition: util-ja3.h:31
SSLSubjectAltName
struct SSLSubjectAltName_ SSLSubjectAltName
TLS_DECODER_EVENT_DATALEAK_HEARTBEAT_MISMATCH
@ TLS_DECODER_EVENT_DATALEAK_HEARTBEAT_MISMATCH
Definition: app-layer-ssl.h:54
SSLCertsChain_::cert_len
uint32_t cert_len
Definition: app-layer-ssl.h:168
TLS_DECODER_EVENT_HEARTBEAT
@ TLS_DECODER_EVENT_HEARTBEAT
Definition: app-layer-ssl.h:51
TLS_DECODER_EVENT_OVERFLOW_HEARTBEAT
@ TLS_DECODER_EVENT_OVERFLOW_HEARTBEAT
Definition: app-layer-ssl.h:53
TLS_DECODER_EVENT_TOO_MANY_SUBJECT_ALTERNATIVE_NAMES
@ TLS_DECODER_EVENT_TOO_MANY_SUBJECT_ALTERNATIVE_NAMES
Definition: app-layer-ssl.h:75
TLS_STATE_SERVER_CERT
@ TLS_STATE_SERVER_CERT
Definition: app-layer-ssl.h:90
TLS_DECODER_EVENT_ERROR_MSG_ENCOUNTERED
@ TLS_DECODER_EVENT_ERROR_MSG_ENCOUNTERED
Definition: app-layer-ssl.h:74
SSLState_::hb_record_len
uint32_t hb_record_len
Definition: app-layer-ssl.h:273
SSLStateConnp_::message_length
uint32_t message_length
Definition: app-layer-ssl.h:184
SSLState_::client_connp
SSLStateConnp client_connp
Definition: app-layer-ssl.h:284
TLS_DECODER_EVENT_INVALID_HANDSHAKE_MESSAGE
@ TLS_DECODER_EVENT_INVALID_HANDSHAKE_MESSAGE
Definition: app-layer-ssl.h:50
TLS_FRAME_DATA
@ TLS_FRAME_DATA
Definition: app-layer-ssl.h:36
SSLStateConnp_::hello_decoded
bool hello_decoded
Definition: app-layer-ssl.h:224
SSLStateConnp_::bytes_processed
uint32_t bytes_processed
Definition: app-layer-ssl.h:192
next
struct HtpBodyChunk_ * next
Definition: app-layer-htp.h:0
SSLState_::server_connp
SSLStateConnp server_connp
Definition: app-layer-ssl.h:285
SSLStateConnp_::cert0_not_before
int64_t cert0_not_before
Definition: app-layer-ssl.h:225
SSLStateConnp_
Definition: app-layer-ssl.h:177
SSLStateConnp_::ja3_hash
char * ja3_hash
Definition: app-layer-ssl.h:245
SSLStateConnp_::session_id_length
uint16_t session_id_length
Definition: app-layer-ssl.h:194
AppLayerStateData
Definition: app-layer-parser.h:155
Flow_
Flow data structure.
Definition: flow.h:359
SSLState_::f
Flow * f
Definition: app-layer-ssl.h:264
SSLState_::tx_data
AppLayerTxData tx_data
Definition: app-layer-ssl.h:267
SSLState_::curr_connp
SSLStateConnp * curr_connp
Definition: app-layer-ssl.h:279
rust.h
util-ja3.h
SSLStateConnp_::phase_suppressed
bool phase_suppressed
Definition: app-layer-ssl.h:207
SSLState_::state_data
AppLayerStateData state_data
Definition: app-layer-ssl.h:266
TLS_DECODER_EVENT_INVALID_TLS_HEADER
@ TLS_DECODER_EVENT_INVALID_TLS_HEADER
Definition: app-layer-ssl.h:46
SSLStateConnp_::hs_buffer_message_type
uint8_t hs_buffer_message_type
Definition: app-layer-ssl.h:252
TLS_DECODER_EVENT_INVALID_SSL_RECORD
@ TLS_DECODER_EVENT_INVALID_SSL_RECORD
Definition: app-layer-ssl.h:76
TLS_DECODER_EVENT_TOO_MANY_RECORDS_IN_PACKET
@ TLS_DECODER_EVENT_TOO_MANY_RECORDS_IN_PACKET
Definition: app-layer-ssl.h:59
TLS_DECODER_EVENT_MULTIPLE_SNI_EXTENSIONS
@ TLS_DECODER_EVENT_MULTIPLE_SNI_EXTENSIONS
Definition: app-layer-ssl.h:56
SSLStateConnp_::record_lengths_length
uint32_t record_lengths_length
Definition: app-layer-ssl.h:181
SSLSubjectAltName_::san
uint8_t * san
Definition: app-layer-ssl.h:173
TLS_FRAME_SSLV2_HDR
@ TLS_FRAME_SSLV2_HDR
Definition: app-layer-ssl.h:39
SSLStateConnp_::hs_buffer_size
uint32_t hs_buffer_size
Definition: app-layer-ssl.h:254
TLS_DECODER_EVENT_CERTIFICATE_INVALID_DER
@ TLS_DECODER_EVENT_CERTIFICATE_INVALID_DER
Definition: app-layer-ssl.h:70
TLS_DECODER_EVENT_CERTIFICATE_INVALID_LENGTH
@ TLS_DECODER_EVENT_CERTIFICATE_INVALID_LENGTH
Definition: app-layer-ssl.h:63
TLS_FRAME_HB_DATA
@ TLS_FRAME_HB_DATA
Definition: app-layer-ssl.h:38
SSLStateConnp_::cert0_not_after
int64_t cert0_not_after
Definition: app-layer-ssl.h:226
SSLStateConnp
struct SSLStateConnp_ SSLStateConnp
SSLState_::current_flags
uint32_t current_flags
Definition: app-layer-ssl.h:277
SSLStateConnp_::cert0_sans
SSLSubjectAltName * cert0_sans
Definition: app-layer-ssl.h:229
TLS_DECODER_EVENT_CERTIFICATE_INVALID_VALIDITY
@ TLS_DECODER_EVENT_CERTIFICATE_INVALID_VALIDITY
Definition: app-layer-ssl.h:73
TLS_STATE_CLIENT_DATA
@ TLS_STATE_CLIENT_DATA
Definition: app-layer-ssl.h:83
AppLayerTxData
Definition: app-layer-parser.h:172
TLS_DECODER_EVENT_INVALID_RECORD_TYPE
@ TLS_DECODER_EVENT_INVALID_RECORD_TYPE
Definition: app-layer-ssl.h:48
SSLState_::client_state
enum TlsStateClient client_state
Definition: app-layer-ssl.h:281
SSLEnableJA3
void SSLEnableJA3(void)
if not explicitly disabled in config, enable ja3 support
Definition: app-layer-ssl.c:3572
SSLStateConnp_::handshake_type
uint8_t handshake_type
Definition: app-layer-ssl.h:189
SSLStateConnp_::hs_buffer_offset
uint32_t hs_buffer_offset
Definition: app-layer-ssl.h:255
SSLStateConnp_::certs_buffer
uint8_t * certs_buffer
Definition: app-layer-ssl.h:239
TLS_DECODER_EVENT_INVALID_RECORD_VERSION
@ TLS_DECODER_EVENT_INVALID_RECORD_VERSION
Definition: app-layer-ssl.h:47
TlsStateServer
TlsStateServer
Definition: app-layer-ssl.h:87
TLS_DECODER_EVENT_CERTIFICATE_INVALID_DATE
@ TLS_DECODER_EVENT_CERTIFICATE_INVALID_DATE
Definition: app-layer-ssl.h:68
SSLCertsChain_
Definition: app-layer-ssl.h:166
TlsFrameTypes
TlsFrameTypes
Definition: app-layer-ssl.h:33
SSLStateConnp_::cert0_serial_len
uint32_t cert0_serial_len
Definition: app-layer-ssl.h:202
TLS_DECODER_EVENT_CERTIFICATE_INVALID_SERIAL
@ TLS_DECODER_EVENT_CERTIFICATE_INVALID_SERIAL
Definition: app-layer-ssl.h:65
TlsStateClient
TlsStateClient
Definition: app-layer-ssl.h:79
TLS_DECODER_EVENT_CERTIFICATE_INVALID_SUBJECT
@ TLS_DECODER_EVENT_CERTIFICATE_INVALID_SUBJECT
Definition: app-layer-ssl.h:71
TLS_STATE_SERVER_FINISHED
@ TLS_STATE_SERVER_FINISHED
Definition: app-layer-ssl.h:92
TLS_RANDOM_LEN
#define TLS_RANDOM_LEN
Definition: app-layer-ssl.h:164
SSLStateConnp_::cert0_serial
uint8_t * cert0_serial
Definition: app-layer-ssl.h:201
app-layer-parser.h
SSLState_::events
uint16_t events
Definition: app-layer-ssl.h:275
TLS_FRAME_SSLV2_PDU
@ TLS_FRAME_SSLV2_PDU
Definition: app-layer-ssl.h:40
SSLStateConnp_::cert_data_incomplete
bool cert_data_incomplete
Definition: app-layer-ssl.h:213
RegisterSSLParsers
void RegisterSSLParsers(void)
Definition: app-layer-ssl.c:3436
TLS_STATE_CLIENT_CERT
@ TLS_STATE_CLIENT_CERT
Definition: app-layer-ssl.h:82
TLS_DECODER_EVENT_INVALID_SSLV2_HEADER
@ TLS_DECODER_EVENT_INVALID_SSLV2_HEADER
Definition: app-layer-ssl.h:45
TLS_DECODER_EVENT_INVALID_RECORD_LENGTH
@ TLS_DECODER_EVENT_INVALID_RECORD_LENGTH
Definition: app-layer-ssl.h:49
SSLStateConnp_::cert0_issuerdn
uint8_t * cert0_issuerdn
Definition: app-layer-ssl.h:199
SSLState_::server_state
enum TlsStateServer server_state
Definition: app-layer-ssl.h:282
SSLStateConnp_::record_length
uint32_t record_length
Definition: app-layer-ssl.h:179
TLS_STATE_CLIENT_HELLO
@ TLS_STATE_CLIENT_HELLO
Definition: app-layer-ssl.h:81
SSLStateConnp_::sni
uint8_t * sni
Definition: app-layer-ssl.h:232
SSLCertsChain_::cert_data
uint8_t * cert_data
Definition: app-layer-ssl.h:167
SSLStateConnp_::cert0_sans_num
uint16_t cert0_sans_num
Definition: app-layer-ssl.h:230
SSLStateConnp_::certs_buffer_size
uint32_t certs_buffer_size
Definition: app-layer-ssl.h:240
TLS_DECODER_EVENT_INVALID_HEARTBEAT
@ TLS_DECODER_EVENT_INVALID_HEARTBEAT
Definition: app-layer-ssl.h:52
TLS_STATE_CLIENT_STARTED
@ TLS_STATE_CLIENT_STARTED
Definition: app-layer-ssl.h:80
TLS_STATE_SERVER_DATA
@ TLS_STATE_SERVER_DATA
Definition: app-layer-ssl.h:91
TLS_DECODER_EVENT_HANDSHAKE_INVALID_LENGTH
@ TLS_DECODER_EVENT_HANDSHAKE_INVALID_LENGTH
Definition: app-layer-ssl.h:55
TLS_DECODER_EVENT_CERTIFICATE_INVALID_VERSION
@ TLS_DECODER_EVENT_CERTIFICATE_INVALID_VERSION
Definition: app-layer-ssl.h:64
SSLStateConnp_::random
uint8_t random[TLS_RANDOM_LEN]
Definition: app-layer-ssl.h:196
TLS_DECODER_EVENT_INVALID_CERTIFICATE
@ TLS_DECODER_EVENT_INVALID_CERTIFICATE
Definition: app-layer-ssl.h:62
SSLStateConnp_::cert0_subject_len
uint32_t cert0_subject_len
Definition: app-layer-ssl.h:198
TLS_FRAME_PDU
@ TLS_FRAME_PDU
Definition: app-layer-ssl.h:34
SSLStateConnp_::content_type
uint8_t content_type
Definition: app-layer-ssl.h:187
SSLStateConnp_::hs_buffer_message_size
uint32_t hs_buffer_message_size
Definition: app-layer-ssl.h:253
TLS_DECODER_EVENT_CERTIFICATE_INVALID_ALGORITHMIDENTIFIER
@ TLS_DECODER_EVENT_CERTIFICATE_INVALID_ALGORITHMIDENTIFIER
Definition: app-layer-ssl.h:66
SSLEnableJA4
void SSLEnableJA4(void)
if not explicitly disabled in config, enable ja4 support
Definition: app-layer-ssl.c:3589
TLS_DECODER_EVENT_INVALID_SNI_TYPE
@ TLS_DECODER_EVENT_INVALID_SNI_TYPE
Definition: app-layer-ssl.h:57
SSLSubjectAltName_
Definition: app-layer-ssl.h:172
TLS_DECODER_EVENT_CERTIFICATE_INVALID_X509NAME
@ TLS_DECODER_EVENT_CERTIFICATE_INVALID_X509NAME
Definition: app-layer-ssl.h:67
SSLJA3IsEnabled
bool SSLJA3IsEnabled(void)
return whether ja3 is effectively enabled
Definition: app-layer-ssl.c:3609
SSLStateConnp_::TAILQ_HEAD
TAILQ_HEAD(, SSLCertsChain_) certs
SSLStateConnp_::cert_log_flag
uint32_t cert_log_flag
Definition: app-layer-ssl.h:242
TLS_DECODER_EVENT_CERTIFICATE_INVALID_EXTENSIONS
@ TLS_DECODER_EVENT_CERTIFICATE_INVALID_EXTENSIONS
Definition: app-layer-ssl.h:69
TLS_DECODER_EVENT_INVALID_SNI_LENGTH
@ TLS_DECODER_EVENT_INVALID_SNI_LENGTH
Definition: app-layer-ssl.h:58
SSLStateConnp_::hs
HandshakeParams * hs
Definition: app-layer-ssl.h:247
SSLStateConnp_::cert0_issuerdn_len
uint32_t cert0_issuerdn_len
Definition: app-layer-ssl.h:200
TLS_FRAME_ALERT_DATA
@ TLS_FRAME_ALERT_DATA
Definition: app-layer-ssl.h:37
TLS_STATE_SERVER_HELLO
@ TLS_STATE_SERVER_HELLO
Definition: app-layer-ssl.h:89
SSLCertsChain_::TAILQ_ENTRY
TAILQ_ENTRY(SSLCertsChain_) next
SSLStateConnp_::session_id
char * session_id
Definition: app-layer-ssl.h:235
TLS_FRAME_HDR
@ TLS_FRAME_HDR
Definition: app-layer-ssl.h:35
TLS_DECODER_EVENT_INVALID_ALERT
@ TLS_DECODER_EVENT_INVALID_ALERT
Definition: app-layer-ssl.h:60
SSLStateConnp_::cert0_fingerprint
char * cert0_fingerprint
Definition: app-layer-ssl.h:227
SSLStateConnp_::sni_len
uint16_t sni_len
Definition: app-layer-ssl.h:233
SSLStateConnp_::ja3_str
JA3Buffer * ja3_str
Definition: app-layer-ssl.h:244
SSLState
struct SSLState_ SSLState
SSLv[2.0|3.[0|1|2|3]] state structure.
SSLCertsChain
struct SSLCertsChain_ SSLCertsChain
SSLStateConnp_::hs_buffer
uint8_t * hs_buffer
Definition: app-layer-ssl.h:251
TLS_STATE_CLIENT_FINISHED
@ TLS_STATE_CLIENT_FINISHED
Definition: app-layer-ssl.h:84
SSLStateConnp_::cert_chain_final
bool cert_chain_final
Definition: app-layer-ssl.h:219
SSLV3TxLogReady
bool SSLV3TxLogReady(void *tx)
Definition: app-layer-ssl.c:3029
SSLJA4IsEnabled
bool SSLJA4IsEnabled(void)
return whether ja4 is effectively enabled
Definition: app-layer-ssl.c:3622
TLS_STATE_SERVER_STARTED
@ TLS_STATE_SERVER_STARTED
Definition: app-layer-ssl.h:88
SSLStateConnp_::cert0_subject
uint8_t * cert0_subject
Definition: app-layer-ssl.h:197
SSLState_::flags
uint32_t flags
Definition: app-layer-ssl.h:270
SSLStateConnp_::version
uint16_t version
Definition: app-layer-ssl.h:186