suricata
app-layer-ssl.h File Reference
#include "app-layer-protos.h"
#include "app-layer-parser.h"
#include "decode-events.h"
#include "util-ja3.h"
#include "queue.h"
Include dependency graph for app-layer-ssl.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Data Structures

struct  SSLCertsChain_
 
struct  SSLStateConnp_
 
struct  SSLState_
 SSLv[2.0|3.[0|1|2|3]] state structure. More...
 

Macros

#define SSL_AL_FLAG_SERVER_CHANGE_CIPHER_SPEC   BIT_U32(0)
 
#define SSL_AL_FLAG_CLIENT_CHANGE_CIPHER_SPEC   BIT_U32(1)
 
#define SSL_AL_FLAG_CHANGE_CIPHER_SPEC   BIT_U32(2)
 
#define SSL_AL_FLAG_SSL_CLIENT_HS   BIT_U32(3)
 
#define SSL_AL_FLAG_SSL_SERVER_HS   BIT_U32(4)
 
#define SSL_AL_FLAG_SSL_CLIENT_MASTER_KEY   BIT_U32(5)
 
#define SSL_AL_FLAG_SSL_CLIENT_SSN_ENCRYPTED   BIT_U32(6)
 
#define SSL_AL_FLAG_SSL_SERVER_SSN_ENCRYPTED   BIT_U32(7)
 
#define SSL_AL_FLAG_SSL_NO_SESSION_ID   BIT_U32(8)
 
#define SSL_AL_FLAG_STATE_CLIENT_HELLO   BIT_U32(9)
 
#define SSL_AL_FLAG_STATE_SERVER_HELLO   BIT_U32(10)
 
#define SSL_AL_FLAG_STATE_CLIENT_KEYX   BIT_U32(11)
 
#define SSL_AL_FLAG_STATE_SERVER_KEYX   BIT_U32(12)
 
#define SSL_AL_FLAG_STATE_UNKNOWN   BIT_U32(13)
 
#define SSL_AL_FLAG_STATE_FINISHED   BIT_U32(14)
 
#define SSL_AL_FLAG_HB_INFLIGHT   BIT_U32(15)
 
#define SSL_AL_FLAG_HB_CLIENT_INIT   BIT_U32(16)
 
#define SSL_AL_FLAG_HB_SERVER_INIT   BIT_U32(17)
 
#define SSL_AL_FLAG_HANDSHAKE_DONE   BIT_U32(18)
 
#define SSL_AL_FLAG_SSL_CLIENT_SESSION_ID   BIT_U32(19)
 
#define SSL_AL_FLAG_SESSION_RESUMED   BIT_U32(20)
 
#define SSL_AL_FLAG_CH_VERSION_EXTENSION   BIT_U32(21)
 
#define SSL_AL_FLAG_LOG_WITHOUT_CERT   BIT_U32(22)
 
#define SSL_AL_FLAG_EARLY_DATA   BIT_U32(23)
 
#define SSL_TLS_LOG_PEM   (1 << 0)
 
#define SSL_EXTENSION_SNI   0x0000
 
#define SSL_EXTENSION_ELLIPTIC_CURVES   0x000a
 
#define SSL_EXTENSION_EC_POINT_FORMATS   0x000b
 
#define SSL_EXTENSION_SESSION_TICKET   0x0023
 
#define SSL_EXTENSION_EARLY_DATA   0x002a
 
#define SSL_EXTENSION_SUPPORTED_VERSIONS   0x002b
 
#define SSL_SNI_TYPE_HOST_NAME   0
 
#define SSL_VERSION_MAX_STRLEN   20
 

Typedefs

typedef struct SSLCertsChain_ SSLCertsChain
 
typedef struct SSLStateConnp_ SSLStateConnp
 
typedef struct SSLState_ SSLState
 SSLv[2.0|3.[0|1|2|3]] state structure. More...
 

Enumerations

enum  {
  TLS_DECODER_EVENT_INVALID_SSLV2_HEADER, TLS_DECODER_EVENT_INVALID_TLS_HEADER, TLS_DECODER_EVENT_INVALID_RECORD_VERSION, TLS_DECODER_EVENT_INVALID_RECORD_TYPE,
  TLS_DECODER_EVENT_INVALID_HANDSHAKE_MESSAGE, TLS_DECODER_EVENT_HEARTBEAT, TLS_DECODER_EVENT_INVALID_HEARTBEAT, TLS_DECODER_EVENT_OVERFLOW_HEARTBEAT,
  TLS_DECODER_EVENT_DATALEAK_HEARTBEAT_MISMATCH, TLS_DECODER_EVENT_HANDSHAKE_INVALID_LENGTH, TLS_DECODER_EVENT_MULTIPLE_SNI_EXTENSIONS, TLS_DECODER_EVENT_INVALID_SNI_TYPE,
  TLS_DECODER_EVENT_INVALID_SNI_LENGTH, TLS_DECODER_EVENT_TOO_MANY_RECORDS_IN_PACKET, TLS_DECODER_EVENT_INVALID_CERTIFICATE, TLS_DECODER_EVENT_CERTIFICATE_MISSING_ELEMENT,
  TLS_DECODER_EVENT_CERTIFICATE_UNKNOWN_ELEMENT, TLS_DECODER_EVENT_CERTIFICATE_INVALID_LENGTH, TLS_DECODER_EVENT_CERTIFICATE_INVALID_STRING, TLS_DECODER_EVENT_ERROR_MSG_ENCOUNTERED,
  TLS_DECODER_EVENT_INVALID_SSL_RECORD
}
 
enum  { TLS_STATE_IN_PROGRESS = 0, TLS_STATE_CERT_READY = 1, TLS_HANDSHAKE_DONE = 2, TLS_STATE_FINISHED = 3 }
 
enum  {
  TLS_VERSION_UNKNOWN = 0x0000, SSL_VERSION_2 = 0x0200, SSL_VERSION_3 = 0x0300, TLS_VERSION_10 = 0x0301,
  TLS_VERSION_11 = 0x0302, TLS_VERSION_12 = 0x0303, TLS_VERSION_13 = 0x0304, TLS_VERSION_13_DRAFT28 = 0x7f1c,
  TLS_VERSION_13_DRAFT27 = 0x7f1b, TLS_VERSION_13_DRAFT26 = 0x7f1a, TLS_VERSION_13_DRAFT25 = 0x7f19, TLS_VERSION_13_DRAFT24 = 0x7f18,
  TLS_VERSION_13_DRAFT23 = 0x7f17, TLS_VERSION_13_DRAFT22 = 0x7f16, TLS_VERSION_13_DRAFT21 = 0x7f15, TLS_VERSION_13_DRAFT20 = 0x7f14,
  TLS_VERSION_13_DRAFT19 = 0x7f13, TLS_VERSION_13_DRAFT18 = 0x7f12, TLS_VERSION_13_DRAFT17 = 0x7f11, TLS_VERSION_13_DRAFT16 = 0x7f10,
  TLS_VERSION_13_PRE_DRAFT16 = 0x7f01, TLS_VERSION_13_DRAFT20_FB = 0xfb14, TLS_VERSION_13_DRAFT21_FB = 0xfb15, TLS_VERSION_13_DRAFT22_FB = 0xfb16,
  TLS_VERSION_13_DRAFT23_FB = 0xfb17, TLS_VERSION_13_DRAFT26_FB = 0xfb1a
}
 

Functions

void RegisterSSLParsers (void)
 Function to register the SSL protocol parser and other functions. More...
 
void SSLParserRegisterTests (void)
 
void SSLSetEvent (SSLState *ssl_state, uint8_t event)
 
void SSLVersionToString (uint16_t, char *)
 
void SSLEnableJA3 (void)
 if not explicitly disabled in config, enable ja3 support More...
 
bool SSLJA3IsEnabled (void)
 

Detailed Description

Macro Definition Documentation

#define SSL_AL_FLAG_CH_VERSION_EXTENSION   BIT_U32(21)

Definition at line 107 of file app-layer-ssl.h.

Referenced by SSLVersionToString().

#define SSL_AL_FLAG_CHANGE_CIPHER_SPEC   BIT_U32(2)

Definition at line 72 of file app-layer-ssl.h.

Referenced by SSLJA3IsEnabled(), and SSLVersionToString().

#define SSL_AL_FLAG_CLIENT_CHANGE_CIPHER_SPEC   BIT_U32(1)

Definition at line 71 of file app-layer-ssl.h.

Referenced by SSLJA3IsEnabled(), and SSLVersionToString().

#define SSL_AL_FLAG_EARLY_DATA   BIT_U32(23)

Definition at line 115 of file app-layer-ssl.h.

Referenced by SSLVersionToString().

#define SSL_AL_FLAG_HANDSHAKE_DONE   BIT_U32(18)

Definition at line 98 of file app-layer-ssl.h.

Referenced by SSLSetEvent(), and SSLVersionToString().

#define SSL_AL_FLAG_HB_CLIENT_INIT   BIT_U32(16)

Definition at line 94 of file app-layer-ssl.h.

Referenced by SSLVersionToString().

#define SSL_AL_FLAG_HB_INFLIGHT   BIT_U32(15)

Definition at line 93 of file app-layer-ssl.h.

Referenced by SSLVersionToString().

#define SSL_AL_FLAG_HB_SERVER_INIT   BIT_U32(17)

Definition at line 95 of file app-layer-ssl.h.

Referenced by SSLVersionToString().

#define SSL_AL_FLAG_LOG_WITHOUT_CERT   BIT_U32(22)
#define SSL_AL_FLAG_SERVER_CHANGE_CIPHER_SPEC   BIT_U32(0)

Definition at line 69 of file app-layer-ssl.h.

Referenced by SSLJA3IsEnabled(), and SSLVersionToString().

#define SSL_AL_FLAG_SESSION_RESUMED   BIT_U32(20)
#define SSL_AL_FLAG_SSL_CLIENT_HS   BIT_U32(3)

Definition at line 75 of file app-layer-ssl.h.

Referenced by SSLJA3IsEnabled(), and SSLVersionToString().

#define SSL_AL_FLAG_SSL_CLIENT_MASTER_KEY   BIT_U32(5)

Definition at line 77 of file app-layer-ssl.h.

Referenced by SSLVersionToString().

#define SSL_AL_FLAG_SSL_CLIENT_SESSION_ID   BIT_U32(19)

Definition at line 102 of file app-layer-ssl.h.

#define SSL_AL_FLAG_SSL_CLIENT_SSN_ENCRYPTED   BIT_U32(6)

Definition at line 78 of file app-layer-ssl.h.

Referenced by SSLVersionToString().

#define SSL_AL_FLAG_SSL_NO_SESSION_ID   BIT_U32(8)

Definition at line 80 of file app-layer-ssl.h.

Referenced by SSLJA3IsEnabled(), and SSLVersionToString().

#define SSL_AL_FLAG_SSL_SERVER_HS   BIT_U32(4)

Definition at line 76 of file app-layer-ssl.h.

Referenced by SSLVersionToString().

#define SSL_AL_FLAG_SSL_SERVER_SSN_ENCRYPTED   BIT_U32(7)

Definition at line 79 of file app-layer-ssl.h.

Referenced by SSLVersionToString().

#define SSL_AL_FLAG_STATE_CLIENT_HELLO   BIT_U32(9)

Definition at line 83 of file app-layer-ssl.h.

Referenced by SSLJA3IsEnabled(), and SSLVersionToString().

#define SSL_AL_FLAG_STATE_CLIENT_KEYX   BIT_U32(11)

Definition at line 85 of file app-layer-ssl.h.

Referenced by SSLJA3IsEnabled(), and SSLVersionToString().

#define SSL_AL_FLAG_STATE_FINISHED   BIT_U32(14)

Definition at line 90 of file app-layer-ssl.h.

Referenced by SSLSetEvent(), and SSLVersionToString().

#define SSL_AL_FLAG_STATE_SERVER_HELLO   BIT_U32(10)

Definition at line 84 of file app-layer-ssl.h.

Referenced by SSLJA3IsEnabled(), SSLVersionToString(), and TLSGetIPInformations().

#define SSL_AL_FLAG_STATE_SERVER_KEYX   BIT_U32(12)

Definition at line 86 of file app-layer-ssl.h.

Referenced by SSLVersionToString().

#define SSL_AL_FLAG_STATE_UNKNOWN   BIT_U32(13)

Definition at line 87 of file app-layer-ssl.h.

#define SSL_EXTENSION_EARLY_DATA   0x002a

Definition at line 125 of file app-layer-ssl.h.

Referenced by SSLVersionToString().

#define SSL_EXTENSION_EC_POINT_FORMATS   0x000b

Definition at line 123 of file app-layer-ssl.h.

Referenced by SSLVersionToString().

#define SSL_EXTENSION_ELLIPTIC_CURVES   0x000a

Definition at line 122 of file app-layer-ssl.h.

Referenced by SSLVersionToString().

#define SSL_EXTENSION_SESSION_TICKET   0x0023

Definition at line 124 of file app-layer-ssl.h.

Referenced by SSLVersionToString().

#define SSL_EXTENSION_SNI   0x0000

Definition at line 121 of file app-layer-ssl.h.

Referenced by SSLVersionToString().

#define SSL_EXTENSION_SUPPORTED_VERSIONS   0x002b

Definition at line 126 of file app-layer-ssl.h.

Referenced by SSLVersionToString().

#define SSL_SNI_TYPE_HOST_NAME   0

Definition at line 129 of file app-layer-ssl.h.

Referenced by SSLVersionToString().

#define SSL_TLS_LOG_PEM   (1 << 0)

Definition at line 118 of file app-layer-ssl.h.

Referenced by DetectTlsRegister().

#define SSL_VERSION_MAX_STRLEN   20

Definition at line 132 of file app-layer-ssl.h.

Referenced by TLSGetIPInformations().

Typedef Documentation

typedef struct SSLCertsChain_ SSLCertsChain
typedef struct SSLState_ SSLState

SSLv[2.0|3.[0|1|2|3]] state structure.

Structure to store the SSL state values.

typedef struct SSLStateConnp_ SSLStateConnp

Enumeration Type Documentation

anonymous enum
Enumerator
TLS_DECODER_EVENT_INVALID_SSLV2_HEADER 
TLS_DECODER_EVENT_INVALID_TLS_HEADER 
TLS_DECODER_EVENT_INVALID_RECORD_VERSION 
TLS_DECODER_EVENT_INVALID_RECORD_TYPE 
TLS_DECODER_EVENT_INVALID_HANDSHAKE_MESSAGE 
TLS_DECODER_EVENT_HEARTBEAT 
TLS_DECODER_EVENT_INVALID_HEARTBEAT 
TLS_DECODER_EVENT_OVERFLOW_HEARTBEAT 
TLS_DECODER_EVENT_DATALEAK_HEARTBEAT_MISMATCH 
TLS_DECODER_EVENT_HANDSHAKE_INVALID_LENGTH 
TLS_DECODER_EVENT_MULTIPLE_SNI_EXTENSIONS 
TLS_DECODER_EVENT_INVALID_SNI_TYPE 
TLS_DECODER_EVENT_INVALID_SNI_LENGTH 
TLS_DECODER_EVENT_TOO_MANY_RECORDS_IN_PACKET 
TLS_DECODER_EVENT_INVALID_CERTIFICATE 
TLS_DECODER_EVENT_CERTIFICATE_MISSING_ELEMENT 
TLS_DECODER_EVENT_CERTIFICATE_UNKNOWN_ELEMENT 
TLS_DECODER_EVENT_CERTIFICATE_INVALID_LENGTH 
TLS_DECODER_EVENT_CERTIFICATE_INVALID_STRING 
TLS_DECODER_EVENT_ERROR_MSG_ENCOUNTERED 
TLS_DECODER_EVENT_INVALID_SSL_RECORD 

Definition at line 35 of file app-layer-ssl.h.

anonymous enum
Enumerator
TLS_STATE_IN_PROGRESS 
TLS_STATE_CERT_READY 
TLS_HANDSHAKE_DONE 
TLS_STATE_FINISHED 

Definition at line 61 of file app-layer-ssl.h.

anonymous enum
Enumerator
TLS_VERSION_UNKNOWN 
SSL_VERSION_2 
SSL_VERSION_3 
TLS_VERSION_10 
TLS_VERSION_11 
TLS_VERSION_12 
TLS_VERSION_13 
TLS_VERSION_13_DRAFT28 
TLS_VERSION_13_DRAFT27 
TLS_VERSION_13_DRAFT26 
TLS_VERSION_13_DRAFT25 
TLS_VERSION_13_DRAFT24 
TLS_VERSION_13_DRAFT23 
TLS_VERSION_13_DRAFT22 
TLS_VERSION_13_DRAFT21 
TLS_VERSION_13_DRAFT20 
TLS_VERSION_13_DRAFT19 
TLS_VERSION_13_DRAFT18 
TLS_VERSION_13_DRAFT17 
TLS_VERSION_13_DRAFT16 
TLS_VERSION_13_PRE_DRAFT16 
TLS_VERSION_13_DRAFT20_FB 
TLS_VERSION_13_DRAFT21_FB 
TLS_VERSION_13_DRAFT22_FB 
TLS_VERSION_13_DRAFT23_FB 
TLS_VERSION_13_DRAFT26_FB 

Definition at line 136 of file app-layer-ssl.h.

Function Documentation

void RegisterSSLParsers ( void  )

Function to register the SSL protocol parser and other functions.

SSLv2 and SSLv23

Definition at line 2843 of file app-layer-ssl.c.

References ALPROTO_TLS, AppLayerParserConfParserEnabled(), AppLayerParserRegisterDetectFlagsFuncs(), AppLayerParserRegisterDetectStateFuncs(), AppLayerParserRegisterGetEventInfo(), AppLayerParserRegisterGetEventInfoById(), AppLayerParserRegisterGetEventsFunc(), AppLayerParserRegisterGetStateProgressCompletionStatus(), AppLayerParserRegisterGetStateProgressFunc(), AppLayerParserRegisterGetTx(), AppLayerParserRegisterGetTxCnt(), AppLayerParserRegisterLoggerFuncs(), AppLayerParserRegisterParser(), AppLayerParserRegisterParserAcceptableDataDirection(), AppLayerParserRegisterProtocolUnittests(), AppLayerParserRegisterStateFuncs(), AppLayerParserRegisterTxFreeFunc(), AppLayerProtoDetectConfProtoDetectionEnabled(), AppLayerProtoDetectPPParseConfPorts(), AppLayerProtoDetectPPRegister(), AppLayerProtoDetectRegisterProtocol(), ConfGetBool(), ConfGetNode(), ConfGetValue(), ConfValIsFalse(), ConfValIsTrue(), SslConfig_::disable_ja3, SslConfig_::encrypt_mode, RunmodeIsUnittests(), SC_ATOMIC_GET, SC_ATOMIC_INIT, SC_ATOMIC_SET, SC_WARN_NO_JA3_SUPPORT, SCLogDebug, SCLogWarning, SSL_CNF_ENC_HANDLE_BYPASS, SSL_CNF_ENC_HANDLE_DEFAULT, SSL_CNF_ENC_HANDLE_FULL, SSL_CONFIG_DEFAULT_JA3, SSLParserRegisterTests(), STREAM_TOCLIENT, STREAM_TOSERVER, and ConfNode_::val.

Referenced by AppLayerParserRegisterProtocolParsers(), and RegisterAllModules().

Here is the call graph for this function:

Here is the caller graph for this function:

void SSLEnableJA3 ( void  )

if not explicitly disabled in config, enable ja3 support

Implemented using atomic to allow rule reloads to do this at runtime.

Definition at line 2988 of file app-layer-ssl.c.

References SslConfig_::disable_ja3, SC_ATOMIC_GET, and SC_ATOMIC_SET.

Referenced by DetectTlsJa3HashRegister(), DetectTlsJa3SHashRegister(), DetectTlsJa3SStringRegister(), and DetectTlsJa3StringRegister().

Here is the caller graph for this function:

void SSLParserRegisterTests ( void  )

Definition at line 5434 of file app-layer-ssl.c.

References UtRegisterTest().

Referenced by RegisterSSLParsers().

Here is the call graph for this function:

Here is the caller graph for this function:

void SSLVersionToString ( uint16_t  ,
char *   
)

Definition at line 269 of file app-layer-ssl.c.

References ALPROTO_FAILED, ALPROTO_TLS, ALPROTO_UNKNOWN, APP_LAYER_EVENT_TYPE_TRANSACTION, APP_LAYER_PARSER_BYPASS_READY, APP_LAYER_PARSER_EOF, APP_LAYER_PARSER_NO_INSPECTION, APP_LAYER_PARSER_NO_INSPECTION_PAYLOAD, APP_LAYER_PARSER_NO_REASSEMBLY, AppLayerDecoderEventsFreeEvents(), AppLayerParserStateIssetFlag(), AppLayerParserStateSetFlag(), AppLayerParserTriggerRawStreamReassembly(), AppLayerProtoDetectPMRegisterPatternCS(), Asn1DerGetIssuerDN(), Asn1DerGetSerial(), Asn1DerGetSubjectDN(), Asn1DerGetValidity(), SSLStateConnp_::bytes_processed, SSLStateConnp_::cert0_fingerprint, SSLStateConnp_::cert0_issuerdn, SSLStateConnp_::cert0_not_after, SSLStateConnp_::cert0_not_before, SSLStateConnp_::cert0_serial, SSLStateConnp_::cert0_subject, SSLCertsChain_::cert_data, SSLCertsChain_::cert_len, SSLStateConnp_::cert_log_flag, SSLState_::client_connp, ComputeSHA1(), SSLStateConnp_::content_type, SSLState_::curr_connp, SSLState_::current_flags, SSLState_::de_state, DecodeDer(), SSLState_::decoder_events, DerFree(), DetectEngineStateFree(), SslConfig_::encrypt_mode, ERR_DER_ELEMENT_SIZE_TOO_BIG, ERR_DER_GENERIC, ERR_DER_INVALID_OBJECT, ERR_DER_INVALID_SIZE, ERR_DER_INVALID_TAG, ERR_DER_MISSING_ELEMENT, ERR_DER_RECURSION_LIMIT, ERR_DER_UNKNOWN_ELEMENT, ERR_DER_UNSUPPORTED_STRING, event_type, SSLState_::f, SSLState_::flags, flags, SSLStateConnp_::handshake_type, HAS_SPACE, SSLState_::hb_record_len, SSLStateConnp_::hs_bytes_processed, SSLStateConnp_::ja3_hash, SSLStateConnp_::ja3_str, Ja3BufferAddValue(), Ja3BufferAppendBuffer(), Ja3BufferFree(), Ja3BufferInit(), Ja3GenerateHash(), MAX, SSLStateConnp_::message_length, next, payload_len, SSLStateConnp_::record_length, SSLStateConnp_::record_lengths_length, SC_ATOMIC_GET, SC_ERR_INVALID_ENUM_MAP, SCCalloc, SCFree, SCLogDebug, SCLogError, SCMalloc, SCMapEnumNameToValue(), SCMapEnumValueToName(), SCRealloc, SCReturnInt, SCStrdup, SSLState_::server_connp, SSLStateConnp_::session_id, SSLStateConnp_::session_id_length, SHA1_LENGTH, SHA1_STRING_LENGTH, SSLStateConnp_::sni, SSL_AL_FLAG_CH_VERSION_EXTENSION, SSL_AL_FLAG_CHANGE_CIPHER_SPEC, SSL_AL_FLAG_CLIENT_CHANGE_CIPHER_SPEC, SSL_AL_FLAG_EARLY_DATA, SSL_AL_FLAG_HANDSHAKE_DONE, SSL_AL_FLAG_HB_CLIENT_INIT, SSL_AL_FLAG_HB_INFLIGHT, SSL_AL_FLAG_HB_SERVER_INIT, SSL_AL_FLAG_LOG_WITHOUT_CERT, SSL_AL_FLAG_SERVER_CHANGE_CIPHER_SPEC, SSL_AL_FLAG_SESSION_RESUMED, SSL_AL_FLAG_SSL_CLIENT_HS, SSL_AL_FLAG_SSL_CLIENT_MASTER_KEY, SSL_AL_FLAG_SSL_CLIENT_SSN_ENCRYPTED, SSL_AL_FLAG_SSL_NO_SESSION_ID, SSL_AL_FLAG_SSL_SERVER_HS, SSL_AL_FLAG_SSL_SERVER_SSN_ENCRYPTED, SSL_AL_FLAG_STATE_CLIENT_HELLO, SSL_AL_FLAG_STATE_CLIENT_KEYX, SSL_AL_FLAG_STATE_FINISHED, SSL_AL_FLAG_STATE_SERVER_HELLO, SSL_AL_FLAG_STATE_SERVER_KEYX, SSL_CNF_ENC_HANDLE_BYPASS, SSL_CNF_ENC_HANDLE_FULL, SSL_EXTENSION_EARLY_DATA, SSL_EXTENSION_EC_POINT_FORMATS, SSL_EXTENSION_ELLIPTIC_CURVES, SSL_EXTENSION_SESSION_TICKET, SSL_EXTENSION_SNI, SSL_EXTENSION_SUPPORTED_VERSIONS, SSL_RECORD_MINIMUM_LENGTH, SSL_SNI_TYPE_HOST_NAME, SSL_VERSION_2, SSL_VERSION_3, SSLSetEvent(), SSLV2_MT_CLIENT_CERTIFICATE, SSLV2_MT_CLIENT_FINISHED, SSLV2_MT_CLIENT_HELLO, SSLV2_MT_CLIENT_MASTER_KEY, SSLV2_MT_ERROR, SSLV2_MT_REQUEST_CERTIFICATE, SSLV2_MT_SERVER_FINISHED, SSLV2_MT_SERVER_HELLO, SSLV2_MT_SERVER_VERIFY, SSLV3_ALERT_PROTOCOL, SSLV3_APPLICATION_PROTOCOL, SSLV3_CHANGE_CIPHER_SPEC, SSLV3_CLIENT_HELLO_RANDOM_LEN, SSLV3_CLIENT_HELLO_VERSION_LEN, SSLV3_HANDSHAKE_PROTOCOL, SSLV3_HEARTBEAT_PROTOCOL, SSLV3_HS_CERTIFICATE, SSLV3_HS_CERTIFICATE_REQUEST, SSLV3_HS_CERTIFICATE_STATUS, SSLV3_HS_CERTIFICATE_URL, SSLV3_HS_CERTIFICATE_VERIFY, SSLV3_HS_CLIENT_HELLO, SSLV3_HS_CLIENT_KEY_EXCHANGE, SSLV3_HS_FINISHED, SSLV3_HS_HELLO_REQUEST, SSLV3_HS_NEW_SESSION_TICKET, SSLV3_HS_SERVER_HELLO, SSLV3_HS_SERVER_KEY_EXCHANGE, SSLV3_RECORD_HDR_LEN, STREAM_TOCLIENT, STREAM_TOSERVER, strlcat(), TAILQ_FIRST, TAILQ_INIT, TAILQ_INSERT_TAIL, TAILQ_REMOVE, TLS_DECODER_EVENT_CERTIFICATE_INVALID_LENGTH, TLS_DECODER_EVENT_CERTIFICATE_INVALID_STRING, TLS_DECODER_EVENT_CERTIFICATE_MISSING_ELEMENT, TLS_DECODER_EVENT_CERTIFICATE_UNKNOWN_ELEMENT, TLS_DECODER_EVENT_DATALEAK_HEARTBEAT_MISMATCH, TLS_DECODER_EVENT_ERROR_MSG_ENCOUNTERED, TLS_DECODER_EVENT_HANDSHAKE_INVALID_LENGTH, TLS_DECODER_EVENT_INVALID_CERTIFICATE, TLS_DECODER_EVENT_INVALID_HANDSHAKE_MESSAGE, TLS_DECODER_EVENT_INVALID_HEARTBEAT, TLS_DECODER_EVENT_INVALID_RECORD_TYPE, TLS_DECODER_EVENT_INVALID_SNI_LENGTH, TLS_DECODER_EVENT_INVALID_SNI_TYPE, TLS_DECODER_EVENT_INVALID_SSL_RECORD, TLS_DECODER_EVENT_INVALID_SSLV2_HEADER, TLS_DECODER_EVENT_INVALID_TLS_HEADER, TLS_DECODER_EVENT_MULTIPLE_SNI_EXTENSIONS, TLS_DECODER_EVENT_OVERFLOW_HEARTBEAT, TLS_DECODER_EVENT_TOO_MANY_RECORDS_IN_PACKET, TLS_HB_REQUEST, TLS_HB_RESPONSE, TLS_VERSION_10, TLS_VERSION_11, TLS_VERSION_12, TLS_VERSION_13, TLS_VERSION_13_DRAFT16, TLS_VERSION_13_DRAFT17, TLS_VERSION_13_DRAFT18, TLS_VERSION_13_DRAFT19, TLS_VERSION_13_DRAFT20, TLS_VERSION_13_DRAFT20_FB, TLS_VERSION_13_DRAFT21, TLS_VERSION_13_DRAFT21_FB, TLS_VERSION_13_DRAFT22, TLS_VERSION_13_DRAFT22_FB, TLS_VERSION_13_DRAFT23, TLS_VERSION_13_DRAFT23_FB, TLS_VERSION_13_DRAFT24, TLS_VERSION_13_DRAFT25, TLS_VERSION_13_DRAFT26, TLS_VERSION_13_DRAFT26_FB, TLS_VERSION_13_DRAFT27, TLS_VERSION_13_DRAFT28, TLS_VERSION_13_PRE_DRAFT16, TLS_VERSION_UNKNOWN, SSLStateConnp_::trec, SSLStateConnp_::trec_len, SSLStateConnp_::trec_pos, tx_id, unlikely, SSLStateConnp_::version, and version.

Referenced by TLSGetIPInformations().

Here is the call graph for this function:

Here is the caller graph for this function: