12#ifndef __PACKET_TLS_UTILS_H__ 
   13#define __PACKET_TLS_UTILS_H__ 
   28#define SSL_CIPHER_CTX gcry_cipher_hd_t 
   29#define SSL_DECRYPT_DEBUG 
   34    SSL_ID_CHG_CIPHER_SPEC         = 0x14,
 
   36    SSL_ID_HANDSHAKE               = 0x16,
 
   37    SSL_ID_APP_DATA                = 0x17,
 
   38    SSL_ID_HEARTBEAT               = 0x18,
 
   39    SSL_ID_TLS12_CID               = 0x19,
 
   40    SSL_ID_DTLS13_ACK              = 0x1A,
 
   44    SSL_HND_HELLO_REQUEST          = 0,
 
   45    SSL_HND_CLIENT_HELLO           = 1,
 
   46    SSL_HND_SERVER_HELLO           = 2,
 
   47    SSL_HND_HELLO_VERIFY_REQUEST   = 3,
 
   48    SSL_HND_NEWSESSION_TICKET      = 4,
 
   49    SSL_HND_END_OF_EARLY_DATA      = 5,
 
   50    SSL_HND_HELLO_RETRY_REQUEST    = 6,
 
   51    SSL_HND_ENCRYPTED_EXTENSIONS   = 8,
 
   52    SSL_HND_CERTIFICATE            = 11,
 
   53    SSL_HND_SERVER_KEY_EXCHG       = 12,
 
   54    SSL_HND_CERT_REQUEST           = 13,
 
   55    SSL_HND_SVR_HELLO_DONE         = 14,
 
   56    SSL_HND_CERT_VERIFY            = 15,
 
   57    SSL_HND_CLIENT_KEY_EXCHG       = 16,
 
   58    SSL_HND_FINISHED               = 20,
 
   59    SSL_HND_CERT_URL               = 21,
 
   60    SSL_HND_CERT_STATUS            = 22,
 
   61    SSL_HND_SUPPLEMENTAL_DATA      = 23,
 
   62    SSL_HND_KEY_UPDATE             = 24,
 
   63    SSL_HND_COMPRESSED_CERTIFICATE = 25,
 
   66    SSL_HND_ENCRYPTED_EXTS         = 67,
 
   67    SSL_HND_MESSAGE_HASH           = 254
 
   70#define SSL2_HND_ERROR                 0x00 
   71#define SSL2_HND_CLIENT_HELLO          0x01 
   72#define SSL2_HND_CLIENT_MASTER_KEY     0x02 
   73#define SSL2_HND_CLIENT_FINISHED       0x03 
   74#define SSL2_HND_SERVER_HELLO          0x04 
   75#define SSL2_HND_SERVER_VERIFY         0x05 
   76#define SSL2_HND_SERVER_FINISHED       0x06 
   77#define SSL2_HND_REQUEST_CERTIFICATE   0x07 
   78#define SSL2_HND_CLIENT_CERTIFICATE    0x08 
   80#define SSL_HND_HELLO_EXT_SERVER_NAME                   0 
   81#define SSL_HND_HELLO_EXT_MAX_FRAGMENT_LENGTH           1 
   82#define SSL_HND_HELLO_EXT_CLIENT_CERTIFICATE_URL        2 
   83#define SSL_HND_HELLO_EXT_TRUSTED_CA_KEYS               3 
   84#define SSL_HND_HELLO_EXT_TRUNCATED_HMAC                4 
   85#define SSL_HND_HELLO_EXT_STATUS_REQUEST                5 
   86#define SSL_HND_HELLO_EXT_USER_MAPPING                  6 
   87#define SSL_HND_HELLO_EXT_CLIENT_AUTHZ                  7 
   88#define SSL_HND_HELLO_EXT_SERVER_AUTHZ                  8 
   89#define SSL_HND_HELLO_EXT_CERT_TYPE                     9 
   90#define SSL_HND_HELLO_EXT_SUPPORTED_GROUPS              10  
   91#define SSL_HND_HELLO_EXT_EC_POINT_FORMATS              11 
   92#define SSL_HND_HELLO_EXT_SRP                           12 
   93#define SSL_HND_HELLO_EXT_SIGNATURE_ALGORITHMS          13 
   94#define SSL_HND_HELLO_EXT_USE_SRTP                      14 
   95#define SSL_HND_HELLO_EXT_HEARTBEAT                     15 
   96#define SSL_HND_HELLO_EXT_ALPN                          16 
   97#define SSL_HND_HELLO_EXT_STATUS_REQUEST_V2             17 
   98#define SSL_HND_HELLO_EXT_SIGNED_CERTIFICATE_TIMESTAMP  18 
   99#define SSL_HND_HELLO_EXT_CLIENT_CERT_TYPE              19 
  100#define SSL_HND_HELLO_EXT_SERVER_CERT_TYPE              20 
  101#define SSL_HND_HELLO_EXT_PADDING                       21 
  102#define SSL_HND_HELLO_EXT_ENCRYPT_THEN_MAC              22 
  103#define SSL_HND_HELLO_EXT_EXTENDED_MASTER_SECRET        23 
  104#define SSL_HND_HELLO_EXT_TOKEN_BINDING                 24 
  105#define SSL_HND_HELLO_EXT_CACHED_INFO                   25 
  106#define SSL_HND_HELLO_EXT_COMPRESS_CERTIFICATE          27 
  107#define SSL_HND_HELLO_EXT_RECORD_SIZE_LIMIT             28 
  109#define SSL_HND_HELLO_EXT_DELEGATED_CREDENTIALS         34  
  110#define SSL_HND_HELLO_EXT_SESSION_TICKET_TLS            35 
  112#define SSL_HND_HELLO_EXT_KEY_SHARE_OLD                 40  
  113#define SSL_HND_HELLO_EXT_PRE_SHARED_KEY                41 
  114#define SSL_HND_HELLO_EXT_EARLY_DATA                    42 
  115#define SSL_HND_HELLO_EXT_SUPPORTED_VERSIONS            43 
  116#define SSL_HND_HELLO_EXT_COOKIE                        44 
  117#define SSL_HND_HELLO_EXT_PSK_KEY_EXCHANGE_MODES        45 
  118#define SSL_HND_HELLO_EXT_TICKET_EARLY_DATA_INFO        46  
  119#define SSL_HND_HELLO_EXT_CERTIFICATE_AUTHORITIES       47 
  120#define SSL_HND_HELLO_EXT_OID_FILTERS                   48 
  121#define SSL_HND_HELLO_EXT_POST_HANDSHAKE_AUTH           49 
  122#define SSL_HND_HELLO_EXT_SIGNATURE_ALGORITHMS_CERT     50 
  123#define SSL_HND_HELLO_EXT_KEY_SHARE                     51 
  124#define SSL_HND_HELLO_EXT_TRANSPARENCY_INFO             52  
  125#define SSL_HND_HELLO_EXT_CONNECTION_ID_DEPRECATED      53  
  126#define SSL_HND_HELLO_EXT_CONNECTION_ID                 54 
  127#define SSL_HND_HELLO_EXT_EXTERNAL_ID_HASH              55  
  128#define SSL_HND_HELLO_EXT_EXTERNAL_SESSION_ID           56  
  129#define SSL_HND_HELLO_EXT_QUIC_TRANSPORT_PARAMETERS_V1  57  
  130#define SSL_HND_HELLO_EXT_TICKET_REQUEST                58  
  131#define SSL_HND_HELLO_EXT_DNSSEC_CHAIN                  59  
  132#define SSL_HND_HELLO_EXT_GREASE_0A0A                   2570 
  133#define SSL_HND_HELLO_EXT_GREASE_1A1A                   6682 
  134#define SSL_HND_HELLO_EXT_GREASE_2A2A                   10794 
  135#define SSL_HND_HELLO_EXT_NPN                           13172  
  136#define SSL_HND_HELLO_EXT_GREASE_3A3A                   14906 
  137#define SSL_HND_HELLO_EXT_ALPS_OLD                      17513  
  138#define SSL_HND_HELLO_EXT_ALPS                          17613  
  139#define SSL_HND_HELLO_EXT_GREASE_4A4A                   19018 
  140#define SSL_HND_HELLO_EXT_GREASE_5A5A                   23130 
  141#define SSL_HND_HELLO_EXT_GREASE_6A6A                   27242 
  142#define SSL_HND_HELLO_EXT_CHANNEL_ID_OLD                30031  
  143#define SSL_HND_HELLO_EXT_CHANNEL_ID                    30032  
  144#define SSL_HND_HELLO_EXT_GREASE_7A7A                   31354 
  145#define SSL_HND_HELLO_EXT_GREASE_8A8A                   35466 
  146#define SSL_HND_HELLO_EXT_GREASE_9A9A                   39578 
  147#define SSL_HND_HELLO_EXT_GREASE_AAAA                   43690 
  148#define SSL_HND_HELLO_EXT_GREASE_BABA                   47802 
  149#define SSL_HND_HELLO_EXT_GREASE_CACA                   51914 
  150#define SSL_HND_HELLO_EXT_GREASE_DADA                   56026 
  151#define SSL_HND_HELLO_EXT_GREASE_EAEA                   60138 
  152#define SSL_HND_HELLO_EXT_GREASE_FAFA                   64250 
  153#define SSL_HND_HELLO_EXT_ECH_OUTER_EXTENSIONS          64768  
  154#define SSL_HND_HELLO_EXT_ENCRYPTED_CLIENT_HELLO        65037  
  155#define SSL_HND_HELLO_EXT_RENEGOTIATION_INFO            65281  
  156#define SSL_HND_HELLO_EXT_QUIC_TRANSPORT_PARAMETERS     65445  
  157#define SSL_HND_HELLO_EXT_ENCRYPTED_SERVER_NAME         65486  
  159#define SSL_HND_CERT_URL_TYPE_INDIVIDUAL_CERT       1 
  160#define SSL_HND_CERT_URL_TYPE_PKIPATH               2 
  161#define SSL_HND_CERT_STATUS_TYPE_OCSP        1 
  162#define SSL_HND_CERT_STATUS_TYPE_OCSP_MULTI  2 
  163#define SSL_HND_CERT_TYPE_RAW_PUBLIC_KEY     2 
  166#define SSL_HND_QUIC_TP_ORIGINAL_DESTINATION_CONNECTION_ID  0x00 
  167#define SSL_HND_QUIC_TP_MAX_IDLE_TIMEOUT                    0x01 
  168#define SSL_HND_QUIC_TP_STATELESS_RESET_TOKEN               0x02 
  169#define SSL_HND_QUIC_TP_MAX_UDP_PAYLOAD_SIZE                0x03 
  170#define SSL_HND_QUIC_TP_INITIAL_MAX_DATA                    0x04 
  171#define SSL_HND_QUIC_TP_INITIAL_MAX_STREAM_DATA_BIDI_LOCAL  0x05 
  172#define SSL_HND_QUIC_TP_INITIAL_MAX_STREAM_DATA_BIDI_REMOTE 0x06 
  173#define SSL_HND_QUIC_TP_INITIAL_MAX_STREAM_DATA_UNI         0x07 
  174#define SSL_HND_QUIC_TP_INITIAL_MAX_STREAMS_BIDI            0x08 
  175#define SSL_HND_QUIC_TP_INITIAL_MAX_STREAMS_UNI             0x09 
  176#define SSL_HND_QUIC_TP_ACK_DELAY_EXPONENT                  0x0a 
  177#define SSL_HND_QUIC_TP_MAX_ACK_DELAY                       0x0b 
  178#define SSL_HND_QUIC_TP_DISABLE_ACTIVE_MIGRATION            0x0c 
  179#define SSL_HND_QUIC_TP_PREFERRED_ADDRESS                   0x0d 
  180#define SSL_HND_QUIC_TP_ACTIVE_CONNECTION_ID_LIMIT          0x0e 
  181#define SSL_HND_QUIC_TP_INITIAL_SOURCE_CONNECTION_ID        0x0f 
  182#define SSL_HND_QUIC_TP_RETRY_SOURCE_CONNECTION_ID          0x10 
  183#define SSL_HND_QUIC_TP_VERSION_INFORMATION                 0x11  
  184#define SSL_HND_QUIC_TP_MAX_DATAGRAM_FRAME_SIZE             0x20  
  185#define SSL_HND_QUIC_TP_CIBIR_ENCODING                      0x1000  
  186#define SSL_HND_QUIC_TP_LOSS_BITS                           0x1057  
  187#define SSL_HND_QUIC_TP_GREASE_QUIC_BIT                     0x2ab2  
  188#define SSL_HND_QUIC_TP_ENABLE_TIME_STAMP                   0x7157  
  189#define SSL_HND_QUIC_TP_ENABLE_TIME_STAMP_V2                0x7158  
  190#define SSL_HND_QUIC_TP_MIN_ACK_DELAY_OLD                   0xde1a  
  192#define SSL_HND_QUIC_TP_GOOGLE_USER_AGENT                   0x3129 
  193#define SSL_HND_QUIC_TP_GOOGLE_KEY_UPDATE_NOT_YET_SUPPORTED 0x312B 
  194#define SSL_HND_QUIC_TP_GOOGLE_QUIC_VERSION                 0x4752 
  195#define SSL_HND_QUIC_TP_GOOGLE_INITIAL_RTT                  0x3127 
  196#define SSL_HND_QUIC_TP_GOOGLE_SUPPORT_HANDSHAKE_DONE       0x312A 
  197#define SSL_HND_QUIC_TP_GOOGLE_QUIC_PARAMS                  0x4751 
  198#define SSL_HND_QUIC_TP_GOOGLE_CONNECTION_OPTIONS           0x3128 
  200#define SSL_HND_QUIC_TP_FACEBOOK_PARTIAL_RELIABILITY        0xFF00 
  201#define SSL_HND_QUIC_TP_VERSION_INFORMATION_DRAFT           0xff73db  
  202#define SSL_HND_QUIC_TP_ADDRESS_DISCOVERY                   0x9f81a176  
  203#define SSL_HND_QUIC_TP_MIN_ACK_DELAY_DRAFT_V1              0xFF03DE1A  
  204#define SSL_HND_QUIC_TP_MIN_ACK_DELAY_DRAFT05               0xff04de1a  
  205#define SSL_HND_QUIC_TP_MIN_ACK_DELAY                       0xff04de1b  
  206#define SSL_HND_QUIC_TP_ENABLE_MULTIPATH_DRAFT04            0x0f739bbc1b666d04  
  207#define SSL_HND_QUIC_TP_ENABLE_MULTIPATH_DRAFT05            0x0f739bbc1b666d05  
  208#define SSL_HND_QUIC_TP_ENABLE_MULTIPATH                    0x0f739bbc1b666d06  
  209#define SSL_HND_QUIC_TP_INITIAL_MAX_PATHS                   0x0f739bbc1b666d07  
  210#define SSL_HND_QUIC_TP_INITIAL_MAX_PATH_ID_DRAFT09         0x0f739bbc1b666d09  
  211#define SSL_HND_QUIC_TP_INITIAL_MAX_PATH_ID_DRAFT11         0x0f739bbc1b666d11  
  212#define SSL_HND_QUIC_TP_INITIAL_MAX_PATH_ID_DRAFT12         0x0f739bbc1b666d0c  
  213#define SSL_HND_QUIC_TP_INITIAL_MAX_PATH_ID                 0x0f739bbc1b666d0d  
  231extern const value_string ssl_31_key_exchange_algorithm[];
 
  233extern const value_string ssl_31_client_certificate_type[];
 
  234extern const value_string ssl_31_public_value_encoding[];
 
  244extern const value_string ssl_extension_ec_point_formats[];
 
  246extern const value_string tls_hello_ext_server_name_type_vs[];
 
  247extern const value_string tls_hello_ext_max_fragment_length[];
 
  249extern const value_string tls_hello_ext_trusted_ca_key_type[];
 
  251extern const value_string compress_certificate_algorithm_vals[];
 
  255extern const val64_string quic_enable_time_stamp_v2_vals[];
 
  257extern const value_string tls_hello_ext_ech_clienthello_types[];
 
  261extern const value_string token_binding_key_parameter_vals[];
 
  269#define SSL_WRITE_KEY           1 
  271#define SSL_VER_UNKNOWN         0 
  272#define SSLV2_VERSION           0x0002  
  274#define SSLV3_VERSION          0x300 
  275#define TLSV1_VERSION          0x301 
  276#define TLCPV1_VERSION         0x101 
  277#define TLSV1DOT1_VERSION      0x302 
  278#define TLSV1DOT2_VERSION      0x303 
  279#define TLSV1DOT3_VERSION      0x304 
  280#define DTLSV1DOT0_VERSION     0xfeff 
  281#define DTLSV1DOT0_OPENSSL_VERSION 0x100 
  282#define DTLSV1DOT2_VERSION     0xfefd 
  283#define DTLSV1DOT3_VERSION     0xfefc 
  286static inline uint8_t extract_tls13_draft_version(uint32_t version) {
 
  287    if ((version & 0xff00) == 0x7f00) {
 
  288        return (uint8_t) version;
 
  294#define SSL_CLIENT_RANDOM       (1<<0) 
  295#define SSL_SERVER_RANDOM       (1<<1) 
  296#define SSL_CIPHER              (1<<2) 
  297#define SSL_HAVE_SESSION_KEY    (1<<3) 
  298#define SSL_VERSION             (1<<4) 
  299#define SSL_MASTER_SECRET       (1<<5) 
  300#define SSL_PRE_MASTER_SECRET   (1<<6) 
  301#define SSL_CLIENT_EXTENDED_MASTER_SECRET (1<<7) 
  302#define SSL_SERVER_EXTENDED_MASTER_SECRET (1<<8) 
  303#define SSL_NEW_SESSION_TICKET  (1<<10) 
  304#define SSL_ENCRYPT_THEN_MAC    (1<<11) 
  305#define SSL_SEEN_0RTT_APPDATA   (1<<12) 
  306#define SSL_QUIC_RECORD_LAYER   (1<<13)  
  308#define SSL_EXTENDED_MASTER_SECRET_MASK (SSL_CLIENT_EXTENDED_MASTER_SECRET|SSL_SERVER_EXTENDED_MASTER_SECRET) 
  322#define IMPLICIT_NONCE_LEN  4 
  323#define EXPLICIT_NONCE_LEN  8 
  324#define TLS13_AEAD_NONCE_LENGTH     12 
  329    TLS_SECRET_HANDSHAKE,
 
  333#define SSL_DEBUG_USE_STDERR "-" 
  335#define SSLV2_MAX_SESSION_ID_LENGTH_IN_BYTES 16 
  338#define TLS_MAX_RECORD_LENGTH 0x4000 
  345    ssl_cipher_mode_t mode;
 
 
  359    unsigned char _mac_key_or_write_iv[48];
 
  362    SSL_CIPHER_CTX sn_evp; 
 
  365    uint64_t dtls13_epoch;
 
 
  373#define KEX_DHE_DSS     0x10 
  374#define KEX_DHE_PSK     0x11 
  375#define KEX_DHE_RSA     0x12 
  376#define KEX_DH_ANON     0x13 
  377#define KEX_DH_DSS      0x14 
  378#define KEX_DH_RSA      0x15 
  379#define KEX_ECDHE_ECDSA 0x16 
  380#define KEX_ECDHE_PSK   0x17 
  381#define KEX_ECDHE_RSA   0x18 
  382#define KEX_ECDH_ANON   0x19 
  383#define KEX_ECDH_ECDSA  0x1a 
  384#define KEX_ECDH_RSA    0x1b 
  388#define KEX_RSA_PSK     0x1f 
  389#define KEX_SRP_SHA     0x20 
  390#define KEX_SRP_SHA_DSS 0x21 
  391#define KEX_SRP_SHA_RSA 0x22 
  392#define KEX_IS_DH(n)    ((n) >= KEX_DHE_DSS && (n) <= KEX_ECDH_RSA) 
  393#define KEX_TLS13       0x23 
  394#define KEX_ECJPAKE     0x24 
  396#define KEX_ECDHE_SM2   0x25 
  397#define KEX_ECC_SM2     0x26 
  398#define KEX_IBSDH_SM9   0x27 
  399#define KEX_IBC_SM9     0x28 
  403#define ENC_START       0x30 
  410#define ENC_AES256      0x36 
  411#define ENC_CAMELLIA128 0x37 
  412#define ENC_CAMELLIA256 0x38 
  414#define ENC_CHACHA20    0x3A 
  422#define DIG_SHA256      0x42 
  423#define DIG_SHA384      0x43 
  476    unsigned char tls13_draft_version;
 
  477    unsigned char _client_random[32];
 
  478    int8_t client_cert_type;
 
  479    int8_t server_cert_type;
 
  480    uint32_t client_ccs_frame;
 
  481    uint32_t server_ccs_frame;
 
  482    uint32_t first_ch_ech_frame;
 
  485    bool hrr_ech_declined;
 
  486    unsigned char ech_confirmation[8];
 
  487    unsigned char hrr_ech_confirmation[8];
 
  488    unsigned char first_ech_auth_tag[16];
 
  500    const char          *alpn_name;
 
  502    const char          *client_alpn_name;
 
  503    uint32_t             last_nontls_frame;
 
  504    bool                 is_session_resumed;
 
  507    uint32_t    client_hs_reassembly_id;
 
  508    uint32_t    server_hs_reassembly_id;
 
  519    uint8_t client_cid_len;
 
  520    bool client_cid_len_present;
 
  521    uint8_t server_cid_len;
 
  522    bool server_cid_len_present;
 
  524    uint64_t dtls13_current_epoch[2]; 
 
  525    uint64_t dtls13_next_seq_num[2]; 
 
 
  529#define SSL_MASTER_SECRET_LENGTH        48 
  535    unsigned char _master_secret[SSL_MASTER_SECRET_LENGTH];
 
  536    unsigned char _session_id[256];
 
  537    unsigned char _client_random[32];
 
  538    unsigned char _server_random[32];
 
  547    unsigned char _server_data_for_iv[24];
 
  549    unsigned char _client_data_for_iv[24];
 
  558#if defined(HAVE_LIBGNUTLS) 
  559    struct cert_key_id *cert_key_id;   
 
 
  572    uint64_t sequence_number;
 
 
  586    const char         *keylog_filename;
 
 
  594    GHashTable *pre_master; 
 
  599    GHashTable *tls13_client_early;
 
  600    GHashTable *tls13_client_handshake;
 
  601    GHashTable *tls13_server_handshake;
 
  602    GHashTable *tls13_client_appdata;
 
  603    GHashTable *tls13_server_appdata;
 
  604    GHashTable *tls13_early_exporter;
 
  605    GHashTable *tls13_exporter;
 
  606    GHashTable *ech_secret;
 
  607    GHashTable *ech_config;
 
  615    GHashTable *used_crandom;
 
  618int ssl_get_keyex_alg(
int cipher);
 
  620void quic_transport_parameter_id_base_custom(
char *result, uint64_t parameter_id);
 
  622bool ssldecrypt_uat_fld_ip_chk_cb(
void*, 
const char*, 
unsigned, 
const void*, 
const void*, 
char** err);
 
  623bool ssldecrypt_uat_fld_port_chk_cb(
void*, 
const char*, 
unsigned, 
const void*, 
const void*, 
char** err);
 
  624bool ssldecrypt_uat_fld_fileopen_chk_cb(
void*, 
const char*, 
unsigned, 
const void*, 
const void*, 
char** err);
 
  625bool ssldecrypt_uat_fld_password_chk_cb(
void*, 
const char*, 
unsigned, 
const void*, 
const void*, 
char** err);
 
  626char* ssl_association_info(
const char* dissector_table_name, 
const char* table_protocol);
 
  629void ssl_init_cid_list(
void);
 
  632void ssl_cleanup_cid_list(
void);
 
  657ssl_set_server(
SslSession *session, 
address *addr, port_type ptype, uint32_t port);
 
  679WS_DLL_PUBLIC uint32_t
 
  691WS_DLL_PUBLIC uint32_t
 
  696ssl_find_appdata_dissector(
const char *name);
 
  704ssl_data_set(
StringInfo* buf, 
const unsigned char* src, 
unsigned len);
 
  713ssl_cipher_setiv(SSL_CIPHER_CTX *cipher, 
unsigned char* iv, 
int iv_len);
 
  719ssl_find_cipher(
int num);
 
  735                               uint32_t length, 
tvbuff_t *tvb, uint32_t offset,
 
  738                               GHashTable *key_hash,
 
  769        bool ignore_mac_failed,
 
  770        const unsigned char *in, uint16_t inl, 
const unsigned char *cid, uint8_t cidl,
 
  788tls_add_packet_info(
int proto, 
packet_info *pinfo, uint8_t curr_layer_num_ssl);
 
  793                    const unsigned char *plain_data, 
int plain_data_len, 
int content_len,
 
  794                    int record_id, 
SslFlow *flow, ContentType type, uint8_t curr_layer_num_ssl,
 
  795                    uint64_t record_seq);
 
  815tls_get_master_key_map(
bool load_secrets);
 
  823ssl_load_keyfile(
const char *ssl_keylog_filename, FILE **keylog_file,
 
  847                  bool is_from_server, TLSRecordType type);
 
  851                 bool is_from_server, TLSRecordType type);
 
  857ssl_is_valid_content_type(uint8_t type);
 
  860ssl_is_valid_handshake_type(uint8_t hs_type, 
bool is_dtls);
 
  863tls_scan_server_hello(
tvbuff_t *tvb, uint32_t offset, uint32_t offset_end,
 
  864                      uint16_t *server_version, 
bool *is_hrr);
 
  868                    uint8_t content_type, uint8_t handshake_type,
 
  869                    bool is_dtls, uint16_t version);
 
  877        int change_cipher_spec;
 
  880        int hs_ext_alpn_list;
 
  882        int hs_ext_alpn_str_len;
 
  883        int hs_ext_cert_url_item;
 
  884        int hs_ext_cert_url_padding;
 
  885        int hs_ext_cert_url_sha1;
 
  886        int hs_ext_cert_url_type;
 
  887        int hs_ext_cert_url_url;
 
  888        int hs_ext_cert_url_url_hash_list_len;
 
  889        int hs_ext_cert_url_url_len;
 
  890        int hs_ext_cert_status_type;
 
  891        int hs_ext_cert_status_request_len;
 
  892        int hs_ext_cert_status_responder_id_list_len;
 
  893        int hs_ext_cert_status_request_extensions_len;
 
  894        int hs_ext_cert_status_request_list_len;
 
  895        int hs_ocsp_response_list_len;
 
  896        int hs_ocsp_response_len;
 
  897        int hs_ext_cert_type;
 
  898        int hs_ext_cert_types;
 
  899        int hs_ext_cert_types_len;
 
  901        int hs_ext_ec_point_format;
 
  902        int hs_ext_ec_point_formats;
 
  903        int hs_ext_ec_point_formats_len;
 
  905        int hs_ext_srp_username;
 
  906        int hs_ext_supported_group;
 
  907        int hs_ext_supported_groups;
 
  908        int hs_ext_supported_groups_len;
 
  909        int hs_ext_ech_outer_ext;
 
  910        int hs_ext_ech_outer_ext_len;
 
  912        int hs_ech_confirm_compute;
 
  913        int hs_ext_heartbeat_mode;
 
  916        int hs_ext_npn_str_len;
 
  917        int hs_ext_reneg_info_len;
 
  918        int hs_ext_reneg_info;
 
  919        int hs_ext_key_share_client_length;
 
  920        int hs_ext_key_share_group;
 
  921        int hs_ext_key_share_key_exchange_length;
 
  922        int hs_ext_key_share_key_exchange;
 
  923        int hs_ext_key_share_selected_group;
 
  924        int hs_ext_psk_identities_length;
 
  925        int hs_ext_psk_identity_identity_length;
 
  926        int hs_ext_psk_identity_identity;
 
  927        int hs_ext_psk_identity_obfuscated_ticket_age;
 
  928        int hs_ext_psk_binders_length;
 
  929        int hs_ext_psk_binders;
 
  930        int hs_ext_psk_binder;
 
  931        int hs_ext_psk_binder_binder_length;
 
  932        int hs_ext_psk_binder_binder;
 
  933        int hs_ext_psk_identity_selected;
 
  934        int hs_ext_session_ticket;
 
  935        int hs_ext_supported_versions_len;
 
  936        int hs_ext_supported_version;
 
  937        int hs_ext_cookie_len;
 
  939        int hs_ext_server_name;
 
  940        int hs_ext_server_name_len;
 
  941        int hs_ext_server_name_list_len;
 
  942        int hs_ext_server_name_type;
 
  943        int hs_ext_max_fragment_length;
 
  944        int hs_ext_padding_data;
 
  947        int hs_ext_connection_id_length;
 
  948        int hs_ext_connection_id;
 
  949        int hs_ext_trusted_ca_keys_len;
 
  950        int hs_ext_trusted_ca_keys_list;
 
  951        int hs_ext_trusted_ca_key;
 
  952        int hs_ext_trusted_ca_key_type;
 
  953        int hs_ext_trusted_ca_key_hash;
 
  954        int hs_ext_trusted_ca_key_dname_len;
 
  955        int hs_ext_trusted_ca_key_dname;
 
  957        int hs_sig_hash_alg_len;
 
  958        int hs_sig_hash_algs;
 
  959        int hs_sig_hash_hash;
 
  961        int hs_client_keyex_epms_len;
 
  962        int hs_client_keyex_epms;
 
  963        int hs_server_keyex_modulus_len;
 
  964        int hs_server_keyex_exponent_len;
 
  965        int hs_server_keyex_sig_len;
 
  966        int hs_server_keyex_p_len;
 
  967        int hs_server_keyex_g_len;
 
  968        int hs_server_keyex_ys_len;
 
  969        int hs_client_keyex_yc_len;
 
  970        int hs_client_keyex_point_len;
 
  971        int hs_server_keyex_point_len;
 
  972        int hs_server_keyex_p;
 
  973        int hs_server_keyex_g;
 
  974        int hs_server_keyex_curve_type;
 
  975        int hs_server_keyex_named_curve;
 
  976        int hs_server_keyex_ys;
 
  977        int hs_client_keyex_yc;
 
  978        int hs_server_keyex_point;
 
  979        int hs_client_keyex_point;
 
  980        int hs_server_keyex_xs_len;
 
  981        int hs_client_keyex_xc_len;
 
  982        int hs_server_keyex_xs;
 
  983        int hs_client_keyex_xc;
 
  984        int hs_server_keyex_vs_len;
 
  985        int hs_client_keyex_vc_len;
 
  986        int hs_server_keyex_vs;
 
  987        int hs_client_keyex_vc;
 
  988        int hs_server_keyex_rs_len;
 
  989        int hs_client_keyex_rc_len;
 
  990        int hs_server_keyex_rs;
 
  991        int hs_client_keyex_rc;
 
  992        int hs_server_keyex_modulus;
 
  993        int hs_server_keyex_exponent;
 
  994        int hs_server_keyex_sig;
 
  995        int hs_server_keyex_hint_len;
 
  996        int hs_server_keyex_hint;
 
  997        int hs_client_keyex_identity_len;
 
  998        int hs_client_keyex_identity;
 
  999        int hs_certificates_len;
 
 1000        int hs_certificates;
 
 1001        int hs_certificate_len;
 
 1003        int hs_cert_types_count;
 
 1008        int hs_dnames_truncated;
 
 1013        int hs_random_bytes;
 
 1015        int hs_session_id_len;
 
 1016        int hs_client_version;
 
 1017        int hs_server_version;
 
 1018        int hs_cipher_suites_len;
 
 1019        int hs_cipher_suites;
 
 1020        int hs_cipher_suite;
 
 1021        int hs_comp_methods_len;
 
 1022        int hs_comp_methods;
 
 1024        int hs_session_ticket_lifetime_hint;
 
 1025        int hs_session_ticket_age_add;
 
 1026        int hs_session_ticket_nonce_len;
 
 1027        int hs_session_ticket_nonce;
 
 1028        int hs_session_ticket_len;
 
 1029        int hs_session_ticket;
 
 1031        int hs_client_cert_vrfy_sig_len;
 
 1032        int hs_client_cert_vrfy_sig;
 
 1041        int hs_ext_psk_ke_modes_length;
 
 1042        int hs_ext_psk_ke_mode;
 
 1043        int hs_certificate_request_context_length;
 
 1044        int hs_certificate_request_context;
 
 1045        int hs_key_update_request_update;
 
 1046        int sct_scts_length;
 
 1048        int sct_sct_version;
 
 1050        int sct_sct_timestamp;
 
 1051        int sct_sct_extensions_length;
 
 1052        int sct_sct_extensions;
 
 1053        int sct_sct_signature;
 
 1054        int sct_sct_signature_length;
 
 1055        int hs_ext_max_early_data_size;
 
 1056        int hs_ext_oid_filters_length;
 
 1057        int hs_ext_oid_filters_oid_length;
 
 1058        int hs_ext_oid_filters_oid;
 
 1059        int hs_ext_oid_filters_values_length;
 
 1060        int hs_cred_valid_time;
 
 1062        int hs_cred_pubkey_len;
 
 1063        int hs_cred_signature;
 
 1064        int hs_cred_signature_len;
 
 1067        int hs_ext_compress_certificate_algorithms_length;
 
 1068        int hs_ext_compress_certificate_algorithm;
 
 1069        int hs_ext_compress_certificate_uncompressed_length;
 
 1070        int hs_ext_compress_certificate_compressed_certificate_message_length;
 
 1071        int hs_ext_compress_certificate_compressed_certificate_message;
 
 1074        int hs_ext_token_binding_version_major;
 
 1075        int hs_ext_token_binding_version_minor;
 
 1076        int hs_ext_token_binding_key_parameters;
 
 1077        int hs_ext_token_binding_key_parameters_length;
 
 1078        int hs_ext_token_binding_key_parameter;
 
 1080        int hs_ext_record_size_limit;
 
 1083        int hs_ext_quictp_len;
 
 1084        int hs_ext_quictp_parameter;
 
 1085        int hs_ext_quictp_parameter_type;
 
 1086        int hs_ext_quictp_parameter_len;
 
 1087        int hs_ext_quictp_parameter_len_old;
 
 1088        int hs_ext_quictp_parameter_value;
 
 1089        int hs_ext_quictp_parameter_original_destination_connection_id;
 
 1090        int hs_ext_quictp_parameter_max_idle_timeout;
 
 1091        int hs_ext_quictp_parameter_stateless_reset_token;
 
 1092        int hs_ext_quictp_parameter_initial_max_data;
 
 1093        int hs_ext_quictp_parameter_initial_max_stream_data_bidi_local;
 
 1094        int hs_ext_quictp_parameter_initial_max_stream_data_bidi_remote;
 
 1095        int hs_ext_quictp_parameter_initial_max_stream_data_uni;
 
 1096        int hs_ext_quictp_parameter_initial_max_streams_bidi;
 
 1097        int hs_ext_quictp_parameter_initial_max_streams_uni;
 
 1098        int hs_ext_quictp_parameter_ack_delay_exponent;
 
 1099        int hs_ext_quictp_parameter_max_ack_delay;
 
 1100        int hs_ext_quictp_parameter_max_udp_payload_size;
 
 1101        int hs_ext_quictp_parameter_pa_ipv4address;
 
 1102        int hs_ext_quictp_parameter_pa_ipv6address;
 
 1103        int hs_ext_quictp_parameter_pa_ipv4port;
 
 1104        int hs_ext_quictp_parameter_pa_ipv6port;
 
 1105        int hs_ext_quictp_parameter_pa_connectionid_length;
 
 1106        int hs_ext_quictp_parameter_pa_connectionid;
 
 1107        int hs_ext_quictp_parameter_pa_statelessresettoken;
 
 1108        int hs_ext_quictp_parameter_active_connection_id_limit;
 
 1109        int hs_ext_quictp_parameter_initial_source_connection_id;
 
 1110        int hs_ext_quictp_parameter_retry_source_connection_id;
 
 1111        int hs_ext_quictp_parameter_max_datagram_frame_size;
 
 1112        int hs_ext_quictp_parameter_cibir_encoding_length;
 
 1113        int hs_ext_quictp_parameter_cibir_encoding_offset;
 
 1114        int hs_ext_quictp_parameter_loss_bits;
 
 1115        int hs_ext_quictp_parameter_address_discovery;
 
 1116        int hs_ext_quictp_parameter_enable_time_stamp_v2;
 
 1117        int hs_ext_quictp_parameter_min_ack_delay;
 
 1118        int hs_ext_quictp_parameter_google_user_agent_id;
 
 1119        int hs_ext_quictp_parameter_google_key_update_not_yet_supported;
 
 1120        int hs_ext_quictp_parameter_google_quic_version;
 
 1121        int hs_ext_quictp_parameter_google_initial_rtt;
 
 1122        int hs_ext_quictp_parameter_google_support_handshake_done;
 
 1123        int hs_ext_quictp_parameter_google_quic_params;
 
 1124        int hs_ext_quictp_parameter_google_quic_params_unknown_field;
 
 1125        int hs_ext_quictp_parameter_google_connection_options;
 
 1126        int hs_ext_quictp_parameter_google_supported_versions_length;
 
 1127        int hs_ext_quictp_parameter_google_supported_version;
 
 1128        int hs_ext_quictp_parameter_facebook_partial_reliability;
 
 1129        int hs_ext_quictp_parameter_chosen_version;
 
 1130        int hs_ext_quictp_parameter_other_version;
 
 1131        int hs_ext_quictp_parameter_enable_multipath;
 
 1132        int hs_ext_quictp_parameter_initial_max_paths;
 
 1133        int hs_ext_quictp_parameter_initial_max_path_id;
 
 1136        int esni_record_digest_length;
 
 1137        int esni_record_digest;
 
 1138        int esni_encrypted_sni_length;
 
 1139        int esni_encrypted_sni;
 
 1142        int ech_echconfiglist_length;
 
 1143        int ech_echconfiglist;
 
 1145        int ech_echconfig_version;
 
 1146        int ech_echconfig_length;
 
 1147        int ech_echconfigcontents_maximum_name_length;
 
 1148        int ech_echconfigcontents_public_name_length;
 
 1149        int ech_echconfigcontents_public_name;
 
 1150        int ech_echconfigcontents_extensions_length;
 
 1151        int ech_echconfigcontents_extensions;
 
 1152        int ech_hpke_keyconfig;
 
 1153        int ech_hpke_keyconfig_config_id;
 
 1154        int ech_hpke_keyconfig_kem_id;
 
 1155        int ech_hpke_keyconfig_public_key_length;
 
 1156        int ech_hpke_keyconfig_public_key;
 
 1157        int ech_hpke_keyconfig_cipher_suites;
 
 1158        int ech_hpke_keyconfig_cipher_suites_length;
 
 1159        int ech_hpke_keyconfig_cipher_suite;
 
 1160        int ech_hpke_keyconfig_cipher_suite_kdf_id;
 
 1161        int ech_hpke_keyconfig_cipher_suite_aead_id;
 
 1162        int ech_clienthello_type;
 
 1163        int ech_cipher_suite;
 
 1167        int ech_payload_length;
 
 1169        int ech_confirmation;
 
 1170        int ech_retry_configs;
 
 1171        int ech_padding_data;
 
 1173        int hs_ext_alps_len;
 
 1174        int hs_ext_alps_alpn_list;
 
 1175        int hs_ext_alps_alpn_str;
 
 1176        int hs_ext_alps_alpn_str_len;
 
 1177        int hs_ext_alps_settings;
 
 1184        int hs_ext_cert_types;
 
 1186        int hs_ext_curves_point_formats;
 
 1188        int hs_ext_reneg_info;
 
 1189        int hs_ext_key_share;
 
 1190        int hs_ext_key_share_ks;
 
 1191        int hs_ext_pre_shared_key;
 
 1192        int hs_ext_psk_identity;
 
 1193        int hs_ext_psk_binders;
 
 1194        int hs_ext_psk_binder;
 
 1195        int hs_ext_server_name;
 
 1196        int hs_ext_oid_filter;
 
 1197        int hs_ext_quictp_parameter;
 
 1198        int hs_ext_trusted_ca_keys;
 
 1199        int hs_ext_trusted_ca_key;
 
 1200        int hs_sig_hash_alg;
 
 1201        int hs_sig_hash_algs;
 
 1214        int uncompressed_certificates;
 
 1216        int ech_echconfiglist;
 
 1218        int ech_retry_configs;
 
 1219        int ech_hpke_keyconfig;
 
 1220        int ech_hpke_cipher_suites;
 
 1221        int ech_hpke_cipher_suite;
 
 1223        int hs_ext_token_binding_key_parameters;
 
 
 1253    int hf_dtls_handshake_cookie_len;
 
 1254    int hf_dtls_handshake_cookie;
 
 
 1268    uint32_t       max_version;
 
 1269    bool           server_name_present;
 
 1270    int            num_cipher_suites;
 
 
 1281#define G_MAXUINT24     ((1U << 24) - 1) 
 1297               unsigned offset, 
unsigned offset_end, uint32_t *ret_length,
 
 1298               int hf_length, uint32_t min_value, uint32_t max_value);
 
 1310               unsigned offset, 
unsigned offset_end);
 
 1316                        ContentType content_type,
 
 1317                        unsigned record_length, 
proto_item *length_pi,
 
 1318                        uint16_t version, 
tvbuff_t *decrypted_tvb);
 
 1324                               bool is_from_server,
 
 1336                          proto_tree *tree, uint32_t offset, uint32_t offset_end,
 
 1338                          bool is_dtls, 
bool is_hrr);
 
 1342                                    proto_tree *tree, uint32_t offset, uint32_t offset_end,
 
 1348                                     proto_tree *tree, uint32_t offset, uint32_t offset_end,
 
 1354                               proto_tree *tree, uint32_t offset, uint32_t offset_end,
 
 1356                               bool is_dtls, GHashTable *session_hash);
 
 1360                     uint32_t offset, uint32_t offset_end, 
packet_info *pinfo,
 
 1362                     bool is_from_server, 
bool is_dtls);
 
 1366                         proto_tree *tree, uint32_t offset, uint32_t offset_end,
 
 1371                                proto_tree *tree, uint32_t offset, uint32_t offset_end, uint16_t version);
 
 1375                         proto_tree *tree, uint32_t offset, uint32_t offset_end,
 
 1383                                   proto_tree *tree, uint32_t offset, uint32_t offset_end);
 
 1387                          proto_tree *tree, uint32_t offset, uint32_t length,
 
 1392                          proto_tree *tree, uint32_t offset, uint32_t offset_end,
 
 1401                     uint32_t offset, uint32_t offset_end, uint16_t version);
 
 1404tls13_hkdf_expand_label_context(
int md, 
const StringInfo *secret,
 
 1405                        const char *label_prefix, 
const char *label,
 
 1406                        const uint8_t *context, uint8_t context_length,
 
 1407                        uint16_t out_len, 
unsigned char **out);
 
 1410tls13_hkdf_expand_label(
int md, 
const StringInfo *secret,
 
 1411                        const char *label_prefix, 
const char *label,
 
 1412                        uint16_t out_len, 
unsigned char **out);
 
 1416                                     uint32_t offset, uint32_t offset_end, 
packet_info *pinfo,
 
 1418                                     bool is_from_server _U_, 
bool is_dtls _U_);
 
 1421ssl_follow_tap_listener(
void *tapdata, 
packet_info *pinfo, 
epan_dissect_t *edt _U_, 
const void *ssl, tap_flags_t flags _U_);
 
 1424#define SSL_COMMON_LIST_T(name) \ 
 1425ssl_common_dissect_t name 
 1429#define SSL_COMMON_HF_LIST(name, prefix)                                \ 
 1430    { & name .hf.change_cipher_spec,                                    \ 
 1431      { "Change Cipher Spec Message", prefix ".change_cipher_spec",     \ 
 1432        FT_NONE, BASE_NONE, NULL, 0x0,                                  \ 
 1433        "Signals a change in cipher specifications", HFILL }            \ 
 1435    { & name .hf.hs_exts_len,                                           \ 
 1436      { "Extensions Length", prefix ".handshake.extensions_length",     \ 
 1437        FT_UINT16, BASE_DEC, NULL, 0x0,                                 \ 
 1438        "Length of hello extensions", HFILL }                           \ 
 1440    { & name .hf.hs_ext,                                                \ 
 1441      { "Extension", prefix ".handshake.extension",                     \ 
 1442        FT_NONE, BASE_NONE, NULL, 0x0,                                  \ 
 1443        "Hello extension", HFILL }                                      \ 
 1445    { & name .hf.hs_ext_type,                                           \ 
 1446      { "Type", prefix ".handshake.extension.type",                     \ 
 1447        FT_UINT16, BASE_DEC, VALS(tls_hello_extension_types), 0x0,      \ 
 1448        "Hello extension type", HFILL }                                 \ 
 1450    { & name .hf.hs_ext_len,                                            \ 
 1451      { "Length", prefix ".handshake.extension.len",                    \ 
 1452        FT_UINT16, BASE_DEC, NULL, 0x0,                                 \ 
 1453        "Length of a hello extension", HFILL }                          \ 
 1455    { & name .hf.hs_ext_data,                                           \ 
 1456      { "Data", prefix ".handshake.extension.data",                     \ 
 1457        FT_BYTES, BASE_NONE, NULL, 0x0,                                 \ 
 1458        "Hello Extension data", HFILL }                                 \ 
 1460    { & name .hf.hs_ext_ech_outer_ext_len,                              \ 
 1461      { "Outer Extensions List Length", prefix ".handshake.extensions_ech_outer_extensions_length", \ 
 1462        FT_UINT8, BASE_DEC, NULL, 0x0,                                  \ 
 1465    { & name .hf.hs_ext_ech_outer_ext,                                  \ 
 1466      { "Outer Extensions List", prefix ".handshake.extensions_ech_outer_extensions", \ 
 1467        FT_NONE, BASE_NONE, NULL, 0x0,                                  \ 
 1468        "List of extensions derived from Outer Client Hello", HFILL }   \ 
 1470    { & name .hf.hs_ech_confirm,                                        \ 
 1471      { "ECH Confirmation Bytes", prefix ".handshake.ech_confirm",      \ 
 1472        FT_BYTES, BASE_NONE, NULL, 0x0,                                  \ 
 1475    { & name .hf.hs_ech_confirm_compute,                                \ 
 1476      { "Computed ECH Confirmation Bytes", prefix ".handshake.ech_confirm_compute", \ 
 1477        FT_BYTES, BASE_NONE, NULL, 0x0,                                \ 
 1480    { & name .hf.hs_ext_supported_groups_len,                           \ 
 1481      { "Supported Groups List Length", prefix ".handshake.extensions_supported_groups_length", \ 
 1482        FT_UINT16, BASE_DEC, NULL, 0x0,                                 \ 
 1485    { & name .hf.hs_ext_supported_groups,                               \ 
 1486      { "Supported Groups List", prefix ".handshake.extensions_supported_groups", \ 
 1487        FT_NONE, BASE_NONE, NULL, 0x0,                                  \ 
 1488        "List of supported groups (formerly Supported Elliptic Curves)", HFILL } \ 
 1490    { & name .hf.hs_ext_supported_group,                                \ 
 1491      { "Supported Group", prefix ".handshake.extensions_supported_group", \ 
 1492        FT_UINT16, BASE_HEX, VALS(ssl_extension_curves), 0x0,           \ 
 1495    { & name .hf.hs_ext_ec_point_formats_len,                           \ 
 1496      { "EC point formats Length", prefix ".handshake.extensions_ec_point_formats_length",     \ 
 1497        FT_UINT8, BASE_DEC, NULL, 0x0,                                  \ 
 1498        "Length of elliptic curves point formats field", HFILL }        \ 
 1500    { & name .hf.hs_ext_ec_point_formats,                               \ 
 1501      { "EC point formats", prefix ".handshake.extensions_ec_point_formats", \ 
 1502        FT_NONE, BASE_NONE, NULL, 0x0,                                  \ 
 1503        "List of elliptic curves point format", HFILL }                 \ 
 1505    { & name .hf.hs_ext_ec_point_format,                                \ 
 1506      { "EC point format", prefix ".handshake.extensions_ec_point_format",             \ 
 1507        FT_UINT8, BASE_DEC, VALS(ssl_extension_ec_point_formats), 0x0,  \ 
 1508        "Elliptic curves point format", HFILL }                         \ 
 1510    { & name .hf.hs_ext_srp_len,                                        \ 
 1511      { "SRP username length", prefix ".handshake.extensions_srp_len",  \ 
 1512        FT_UINT8, BASE_DEC, NULL, 0x0,                                  \ 
 1513        "Length of Secure Remote Password username field", HFILL }      \ 
 1515    { & name .hf.hs_ext_srp_username,                                   \ 
 1516      { "SRP username", prefix ".handshake.extensions_srp_username",    \ 
 1517        FT_STRING, BASE_NONE, NULL, 0x0,                                \ 
 1518        "Secure Remote Password username", HFILL }                      \ 
 1520    { & name .hf.hs_ext_alpn_len,                                       \ 
 1521      { "ALPN Extension Length", prefix ".handshake.extensions_alpn_len",              \ 
 1522      FT_UINT16, BASE_DEC, NULL, 0x0,                                   \ 
 1523      "Length of the ALPN Extension", HFILL }                           \ 
 1525    { & name .hf.hs_ext_alpn_list,                                      \ 
 1526      { "ALPN Protocol", prefix ".handshake.extensions_alpn_list",      \ 
 1527      FT_NONE, BASE_NONE, NULL, 0x0,                                    \ 
 1530    { & name .hf.hs_ext_alpn_str_len,                                   \ 
 1531      { "ALPN string length", prefix ".handshake.extensions_alpn_str_len",             \ 
 1532        FT_UINT8, BASE_DEC, NULL, 0x0,                                  \ 
 1533        "Length of ALPN string", HFILL }                                \ 
 1535    { & name .hf.hs_ext_alpn_str,                                       \ 
 1536      { "ALPN Next Protocol", prefix ".handshake.extensions_alpn_str",  \ 
 1537        FT_STRING, BASE_NONE, NULL, 0x00,                               \ 
 1540    { & name .hf.hs_ext_npn_str_len,                                    \ 
 1541      { "Protocol string length", prefix ".handshake.extensions_npn_str_len",          \ 
 1542        FT_UINT8, BASE_DEC, NULL, 0x0,                                  \ 
 1543        "Length of next protocol string", HFILL }                       \ 
 1545    { & name .hf.hs_ext_npn_str,                                        \ 
 1546      { "Next Protocol", prefix ".handshake.extensions_npn",            \ 
 1547        FT_STRING, BASE_NONE, NULL, 0x0,                                \ 
 1550    { & name .hf.hs_ext_reneg_info_len,                                 \ 
 1551      { "Renegotiation info extension length", prefix ".handshake.extensions_reneg_info_len",  \ 
 1552        FT_UINT8, BASE_DEC, NULL, 0x0,                                  \ 
 1555    { & name .hf.hs_ext_reneg_info,                                     \ 
 1556      { "Renegotiation info", prefix ".handshake.extensions_reneg_info",\ 
 1557        FT_BYTES, BASE_NONE, NULL, 0x0,                                 \ 
 1560    { & name .hf.hs_ext_key_share_client_length,                        \ 
 1561      { "Client Key Share Length", prefix ".handshake.extensions_key_share_client_length",  \ 
 1562         FT_UINT16, BASE_DEC, NULL, 0x00,                               \ 
 1565    { & name .hf.hs_ext_key_share_group,                                \ 
 1566      { "Group", prefix ".handshake.extensions_key_share_group",        \ 
 1567         FT_UINT16, BASE_DEC, VALS(ssl_extension_curves), 0x00,         \ 
 1570    { & name .hf.hs_ext_key_share_key_exchange_length,                  \ 
 1571      { "Key Exchange Length", prefix ".handshake.extensions_key_share_key_exchange_length",   \ 
 1572        FT_UINT16, BASE_DEC, NULL, 0x00,                                \ 
 1575    { & name .hf.hs_ext_key_share_key_exchange,                         \ 
 1576      { "Key Exchange", prefix ".handshake.extensions_key_share_key_exchange",  \ 
 1577        FT_BYTES, BASE_NONE, NULL, 0x0,                                 \ 
 1580    { & name .hf.hs_ext_key_share_selected_group,                       \ 
 1581      { "Selected Group", prefix ".handshake.extensions_key_share_selected_group",  \ 
 1582         FT_UINT16, BASE_DEC, VALS(ssl_extension_curves), 0x00,         \ 
 1585    { & name .hf.hs_ext_psk_identities_length,                          \ 
 1586      { "Identities Length", prefix ".handshake.extensions.psk.identities.length",  \ 
 1587        FT_UINT16, BASE_DEC, NULL, 0x0,                                 \ 
 1590    { & name .hf.hs_ext_psk_identity_identity_length,                   \ 
 1591      { "Identity Length", prefix ".handshake.extensions.psk.identity.identity_length", \ 
 1592        FT_UINT16, BASE_DEC, NULL, 0x0,                                 \ 
 1595    { & name .hf.hs_ext_psk_identity_identity,                          \ 
 1596      { "Identity", prefix ".handshake.extensions.psk.identity.identity", \ 
 1597        FT_BYTES, BASE_NONE, NULL, 0x0,                                 \ 
 1600    { & name .hf.hs_ext_psk_identity_obfuscated_ticket_age,             \ 
 1601      { "Obfuscated Ticket Age", prefix ".handshake.extensions.psk.identity.obfuscated_ticket_age", \ 
 1602        FT_UINT32, BASE_DEC, NULL, 0x0,                                 \ 
 1605    { & name .hf.hs_ext_psk_binders_length,                             \ 
 1606      { "PSK Binders length", prefix ".handshake.extensions.psk.binders_len", \ 
 1607        FT_UINT16, BASE_DEC, NULL, 0x0,                                 \ 
 1610    { & name .hf.hs_ext_psk_binders,                                    \ 
 1611      { "PSK Binders", prefix ".handshake.extensions.psk.binders",      \ 
 1612        FT_NONE, BASE_NONE, NULL, 0x0,                                  \ 
 1615    { & name .hf.hs_ext_psk_binder,                                     \ 
 1616      { "PSK Binder", prefix ".handshake.extensions.psk.binder",        \ 
 1617        FT_NONE, BASE_NONE, NULL, 0x0,                                  \ 
 1620    { & name .hf.hs_ext_psk_binder_binder_length,                       \ 
 1621      { "Binder Length", prefix ".handshake.extensions.psk.binder.binder_length", \ 
 1622        FT_UINT8, BASE_DEC, NULL, 0x0,                                  \ 
 1625    { & name .hf.hs_ext_psk_binder_binder,                              \ 
 1626      { "Binder", prefix ".handshake.extensions.psk.binder.binder",     \ 
 1627        FT_BYTES, BASE_NONE, NULL, 0x0,                                 \ 
 1630    { & name .hf.hs_ext_psk_identity_selected,                          \ 
 1631      { "Selected Identity", prefix ".handshake.extensions.psk.identity.selected", \ 
 1632        FT_UINT16, BASE_DEC, NULL, 0x0,                                 \ 
 1635    { & name .hf.hs_ext_session_ticket,                                 \ 
 1636      { "Session Ticket", prefix ".handshake.extensions.session_ticket", \ 
 1637        FT_BYTES, BASE_NONE, NULL, 0x0,                                 \ 
 1640    { & name .hf.hs_ext_supported_versions_len,                         \ 
 1641      { "Supported Versions length", prefix ".handshake.extensions.supported_versions_len", \ 
 1642        FT_UINT8, BASE_DEC, NULL, 0x0,                                  \ 
 1645    { & name .hf.hs_ext_supported_version,                              \ 
 1646      { "Supported Version", prefix ".handshake.extensions.supported_version", \ 
 1647        FT_UINT16, BASE_HEX, VALS(ssl_versions), 0x0,                   \ 
 1650    { & name .hf.hs_ext_cookie_len,                                     \ 
 1651      { "Cookie length", prefix ".handshake.extensions.cookie_len",     \ 
 1652        FT_UINT16, BASE_DEC, NULL, 0x0,                                 \ 
 1655    { & name .hf.hs_ext_cookie,                                         \ 
 1656      { "Cookie", prefix ".handshake.extensions.cookie",                \ 
 1657        FT_BYTES, BASE_NONE, NULL, 0x0,                                 \ 
 1660    { & name .hf.hs_ext_server_name_list_len,                           \ 
 1661      { "Server Name list length", prefix ".handshake.extensions_server_name_list_len",    \ 
 1662        FT_UINT16, BASE_DEC, NULL, 0x0,                                 \ 
 1663        "Length of server name list", HFILL }                           \ 
 1665    { & name .hf.hs_ext_server_name_len,                                \ 
 1666      { "Server Name length", prefix ".handshake.extensions_server_name_len",          \ 
 1667        FT_UINT16, BASE_DEC, NULL, 0x0,                                 \ 
 1668        "Length of server name string", HFILL }                         \ 
 1670    { & name .hf.hs_ext_server_name_type,                               \ 
 1671      { "Server Name Type", prefix ".handshake.extensions_server_name_type",           \ 
 1672        FT_UINT8, BASE_DEC, VALS(tls_hello_ext_server_name_type_vs), 0x0,               \ 
 1675    { & name .hf.hs_ext_server_name,                                    \ 
 1676      { "Server Name", prefix ".handshake.extensions_server_name",      \ 
 1677        FT_STRING, BASE_NONE, NULL, 0x0,                                \ 
 1680    { & name .hf.hs_ext_max_fragment_length,                            \ 
 1681      { "Maximum Fragment Length", prefix ".handshake.max_fragment_length", \ 
 1682        FT_UINT8, BASE_DEC, VALS(tls_hello_ext_max_fragment_length), 0x00, \ 
 1683        "Maximum fragment length that an endpoint is willing to receive", HFILL } \ 
 1685    { & name .hf.hs_ext_padding_data,                                   \ 
 1686      { "Padding Data", prefix ".handshake.extensions_padding_data",    \ 
 1687        FT_BYTES, BASE_NONE, NULL, 0x0,                                 \ 
 1688        "Must be zero", HFILL }                                         \ 
 1690    { & name .hf.hs_ext_cert_url_type,                                  \ 
 1691      { "Certificate Chain Type", prefix ".handshake.cert_url_type",    \ 
 1692        FT_UINT8, BASE_DEC, VALS(tls_cert_chain_type), 0x0,             \ 
 1693        "Certificate Chain Type for Client Certificate URL", HFILL }    \ 
 1695    { & name .hf.hs_ext_cert_url_url_hash_list_len,                     \ 
 1696      { "URL and Hash list Length", prefix ".handshake.cert_url.url_hash_len",         \ 
 1697        FT_UINT16, BASE_DEC, NULL, 0x0,                                 \ 
 1700    { & name .hf.hs_ext_cert_url_item,                                  \ 
 1701      { "URL and Hash", prefix ".handshake.cert_url.url_hash",          \ 
 1702        FT_NONE, BASE_NONE, NULL, 0x0,                                  \ 
 1705    { & name .hf.hs_ext_cert_url_url_len,                               \ 
 1706      { "URL Length", prefix ".handshake.cert_url.url_len",             \ 
 1707        FT_UINT16, BASE_DEC, NULL, 0x0,                                 \ 
 1710    { & name .hf.hs_ext_cert_type,                                      \ 
 1711      { "Certificate Type", prefix ".handshake.cert_type.type",         \ 
 1712        FT_UINT8, BASE_HEX, VALS(tls_certificate_type), 0x0,            \ 
 1715    { & name .hf.hs_ext_cert_types,                                     \ 
 1716      { "Certificate Type List", prefix ".handshake.cert_type.types",   \ 
 1717        FT_NONE, BASE_NONE, NULL, 0x0,                                  \ 
 1720    { & name .hf.hs_ext_cert_types_len,                                 \ 
 1721      { "Certificate Type List Length", prefix ".handshake.cert_type.types_len",       \ 
 1722        FT_UINT8, BASE_DEC, NULL, 0x0,                                  \ 
 1725    { & name .hf.hs_ext_cert_url_url,                                   \ 
 1726      { "URL", prefix ".handshake.cert_url.url",                        \ 
 1727        FT_STRING, BASE_NONE, NULL, 0x0,                                \ 
 1728        "URL used to fetch the certificate(s)", HFILL }                 \ 
 1730    { & name .hf.hs_ext_cert_url_padding,                               \ 
 1731      { "Padding", prefix ".handshake.cert_url.padding",                \ 
 1732        FT_NONE, BASE_NONE, NULL, 0x0,                                  \ 
 1733        "Padding that MUST be 0x01 for backwards compatibility", HFILL }                \ 
 1735    { & name .hf.hs_ext_cert_url_sha1,                                  \ 
 1736      { "SHA1 Hash", prefix ".handshake.cert_url.sha1",                 \ 
 1737        FT_BYTES, BASE_NONE, NULL, 0x0,                                 \ 
 1738        "SHA1 Hash of the certificate", HFILL }                         \ 
 1740    { & name .hf.hs_ext_cert_status_type,                               \ 
 1741      { "Certificate Status Type", prefix ".handshake.extensions_status_request_type", \ 
 1742        FT_UINT8, BASE_DEC, VALS(tls_cert_status_type), 0x0,            \ 
 1745    { & name .hf.hs_ext_cert_status_request_len,                        \ 
 1746      { "Certificate Status Length", prefix ".handshake.extensions_status_request_len",    \ 
 1747        FT_UINT16, BASE_DEC, NULL, 0x0,                                 \ 
 1750    { & name .hf.hs_ext_cert_status_responder_id_list_len,              \ 
 1751      { "Responder ID list Length", prefix ".handshake.extensions_status_request_responder_ids_len",   \ 
 1752        FT_UINT16, BASE_DEC, NULL, 0x0,                                 \ 
 1755    { & name .hf.hs_ext_cert_status_request_extensions_len,             \ 
 1756      { "Request Extensions Length", prefix ".handshake.extensions_status_request_exts_len",   \ 
 1757        FT_UINT16, BASE_DEC, NULL, 0x0,                                 \ 
 1760    { & name .hf.hs_ext_cert_status_request_list_len,                   \ 
 1761      { "Certificate Status List Length", prefix ".handshake.extensions_status_request_list_len", \ 
 1762        FT_UINT16, BASE_DEC, NULL, 0x0,                                 \ 
 1763        "CertificateStatusRequestItemV2 list length", HFILL }           \ 
 1765    { & name .hf.hs_ocsp_response_list_len,                             \ 
 1766      { "OCSP Response List Length", prefix ".handshake.ocsp_response_list_len", \ 
 1767        FT_UINT24, BASE_DEC, NULL, 0x0,                                 \ 
 1768        "OCSPResponseList length", HFILL }                              \ 
 1770    { & name .hf.hs_ocsp_response_len,                                  \ 
 1771      { "OCSP Response Length", prefix ".handshake.ocsp_response_len",  \ 
 1772        FT_UINT24, BASE_DEC, NULL, 0x0,                                 \ 
 1775    { & name .hf.hs_sig_hash_alg_len,                                   \ 
 1776      { "Signature Hash Algorithms Length", prefix ".handshake.sig_hash_alg_len",      \ 
 1777        FT_UINT16, BASE_DEC, NULL, 0x0,                                 \ 
 1778        "Length of Signature Hash Algorithms", HFILL }                  \ 
 1780    { & name .hf.hs_sig_hash_algs,                                      \ 
 1781      { "Signature Algorithms", prefix ".handshake.sig_hash_algs",      \ 
 1782        FT_NONE, BASE_NONE, NULL, 0x0,                                  \ 
 1783        "List of supported Signature Algorithms", HFILL }               \ 
 1785    { & name .hf.hs_sig_hash_alg,                                       \ 
 1786      { "Signature Algorithm", prefix ".handshake.sig_hash_alg",        \ 
 1787        FT_UINT16, BASE_HEX, VALS(tls13_signature_algorithm), 0x0,      \ 
 1790    { & name .hf.hs_sig_hash_hash,                                      \ 
 1791      { "Signature Hash Algorithm Hash", prefix ".handshake.sig_hash_hash",            \ 
 1792        FT_UINT8, BASE_DEC, VALS(tls_hash_algorithm), 0x0,              \ 
 1793        "Hash algorithm (TLS 1.2)", HFILL }                             \ 
 1795    { & name .hf.hs_sig_hash_sig,                                       \ 
 1796      { "Signature Hash Algorithm Signature", prefix ".handshake.sig_hash_sig",        \ 
 1797        FT_UINT8, BASE_DEC, VALS(tls_signature_algorithm), 0x0,         \ 
 1798        "Signature algorithm (TLS 1.2)", HFILL }                        \ 
 1800    { & name .hf.hs_client_keyex_epms_len,                              \ 
 1801      { "Encrypted PreMaster length", prefix ".handshake.epms_len",     \ 
 1802        FT_UINT16, BASE_DEC, NULL, 0x0,                                 \ 
 1803        "Length of encrypted PreMaster secret", HFILL }                 \ 
 1805    { & name .hf.hs_client_keyex_epms,                                  \ 
 1806      { "Encrypted PreMaster", prefix ".handshake.epms",                \ 
 1807        FT_BYTES, BASE_NONE, NULL, 0x0,                                 \ 
 1808        "Encrypted PreMaster secret", HFILL }                           \ 
 1810    { & name .hf.hs_server_keyex_modulus_len,                           \ 
 1811      { "Modulus Length", prefix ".handshake.modulus_len",              \ 
 1812        FT_UINT16, BASE_DEC, NULL, 0x0,                                 \ 
 1813        "Length of RSA-EXPORT modulus", HFILL }                         \ 
 1815    { & name .hf.hs_server_keyex_exponent_len,                          \ 
 1816      { "Exponent Length", prefix ".handshake.exponent_len",            \ 
 1817        FT_UINT16, BASE_DEC, NULL, 0x0,                                 \ 
 1818        "Length of RSA-EXPORT exponent", HFILL }                        \ 
 1820    { & name .hf.hs_server_keyex_sig_len,                               \ 
 1821      { "Signature Length", prefix ".handshake.sig_len",                \ 
 1822        FT_UINT16, BASE_DEC, NULL, 0x0,                                 \ 
 1823        "Length of Signature", HFILL }                                  \ 
 1825    { & name .hf.hs_server_keyex_p_len,                                 \ 
 1826      { "p Length", prefix ".handshake.p_len",                          \ 
 1827        FT_UINT16, BASE_DEC, NULL, 0x0,                                 \ 
 1828        "Length of p", HFILL }                                          \ 
 1830    { & name .hf.hs_server_keyex_g_len,                                 \ 
 1831      { "g Length", prefix ".handshake.g_len",                          \ 
 1832        FT_UINT16, BASE_DEC, NULL, 0x0,                                 \ 
 1833        "Length of g", HFILL }                                          \ 
 1835    { & name .hf.hs_server_keyex_ys_len,                                \ 
 1836      { "Pubkey Length", prefix ".handshake.ys_len",                    \ 
 1837        FT_UINT16, BASE_DEC, NULL, 0x0,                                 \ 
 1838        "Length of server's Diffie-Hellman public key", HFILL }         \ 
 1840    { & name .hf.hs_client_keyex_yc_len,                                \ 
 1841      { "Pubkey Length", prefix ".handshake.yc_len",                    \ 
 1842        FT_UINT16, BASE_DEC, NULL, 0x0,                                 \ 
 1843        "Length of client's Diffie-Hellman public key", HFILL }         \ 
 1845    { & name .hf.hs_client_keyex_point_len,                             \ 
 1846      { "Pubkey Length", prefix ".handshake.client_point_len",          \ 
 1847        FT_UINT8, BASE_DEC, NULL, 0x0,                                  \ 
 1848        "Length of client's EC Diffie-Hellman public key", HFILL }      \ 
 1850    { & name .hf.hs_server_keyex_point_len,                             \ 
 1851      { "Pubkey Length", prefix ".handshake.server_point_len",          \ 
 1852        FT_UINT8, BASE_DEC, NULL, 0x0,                                  \ 
 1853        "Length of server's EC Diffie-Hellman public key", HFILL }      \ 
 1855    { & name .hf.hs_server_keyex_p,                                     \ 
 1856      { "p", prefix ".handshake.p",                                     \ 
 1857        FT_BYTES, BASE_NONE, NULL, 0x0,                                 \ 
 1858        "Diffie-Hellman p", HFILL }                                     \ 
 1860    { & name .hf.hs_server_keyex_g,                                     \ 
 1861      { "g", prefix ".handshake.g",                                     \ 
 1862        FT_BYTES, BASE_NONE, NULL, 0x0,                                 \ 
 1863        "Diffie-Hellman g", HFILL }                                     \ 
 1865    { & name .hf.hs_server_keyex_curve_type,                            \ 
 1866      { "Curve Type", prefix ".handshake.server_curve_type",            \ 
 1867        FT_UINT8, BASE_HEX, VALS(ssl_curve_types), 0x0,                 \ 
 1868        "Server curve_type", HFILL }                                    \ 
 1870    { & name .hf.hs_server_keyex_named_curve,                           \ 
 1871      { "Named Curve", prefix ".handshake.server_named_curve",          \ 
 1872        FT_UINT16, BASE_HEX, VALS(ssl_extension_curves), 0x0,           \ 
 1873        "Server named_curve", HFILL }                                   \ 
 1875    { & name .hf.hs_server_keyex_ys,                                    \ 
 1876      { "Pubkey", prefix ".handshake.ys",                               \ 
 1877        FT_BYTES, BASE_NONE, NULL, 0x0,                                 \ 
 1878        "Diffie-Hellman server pubkey", HFILL }                         \ 
 1880    { & name .hf.hs_client_keyex_yc,                                    \ 
 1881      { "Pubkey", prefix ".handshake.yc",                               \ 
 1882        FT_BYTES, BASE_NONE, NULL, 0x0,                                 \ 
 1883        "Diffie-Hellman client pubkey", HFILL }                         \ 
 1885    { & name .hf.hs_server_keyex_point,                                 \ 
 1886      { "Pubkey", prefix ".handshake.server_point",                     \ 
 1887        FT_BYTES, BASE_NONE, NULL, 0x0,                                 \ 
 1888        "EC Diffie-Hellman server pubkey", HFILL }                      \ 
 1890    { & name .hf.hs_client_keyex_point,                                 \ 
 1891      { "Pubkey", prefix ".handshake.client_point",                     \ 
 1892        FT_BYTES, BASE_NONE, NULL, 0x0,                                 \ 
 1893        "EC Diffie-Hellman client pubkey", HFILL }                      \ 
 1895    { & name .hf.hs_server_keyex_xs_len,                                \ 
 1896      { "Pubkey Length", prefix ".handshake.xs_len",                    \ 
 1897        FT_UINT8, BASE_DEC, NULL, 0x0,                                  \ 
 1898        "Length of EC J-PAKE server public key", HFILL }                \ 
 1900    { & name .hf.hs_client_keyex_xc_len,                                \ 
 1901      { "Pubkey Length", prefix ".handshake.xc_len",                    \ 
 1902        FT_UINT8, BASE_DEC, NULL, 0x0,                                  \ 
 1903        "Length of EC J-PAKE client public key", HFILL }                \ 
 1905    { & name .hf.hs_server_keyex_xs,                                    \ 
 1906      { "Pubkey", prefix ".handshake.xs",                               \ 
 1907        FT_BYTES, BASE_NONE, NULL, 0x0,                                 \ 
 1908        "EC J-PAKE server public key", HFILL }                          \ 
 1910    { & name .hf.hs_client_keyex_xc,                                    \ 
 1911      { "Pubkey", prefix ".handshake.xc",                               \ 
 1912        FT_BYTES, BASE_NONE, NULL, 0x0,                                 \ 
 1913        "EC J-PAKE client public key", HFILL }                          \ 
 1915    { & name .hf.hs_server_keyex_vs_len,                                \ 
 1916      { "Ephemeral Pubkey Length", prefix ".handshake.vs_len",          \ 
 1917        FT_UINT8, BASE_DEC, NULL, 0x0,                                  \ 
 1918        "Length of EC J-PAKE server ephemeral public key", HFILL }      \ 
 1920    { & name .hf.hs_client_keyex_vc_len,                                \ 
 1921      { "Ephemeral Pubkey Length", prefix ".handshake.vc_len",          \ 
 1922        FT_UINT8, BASE_DEC, NULL, 0x0,                                  \ 
 1923        "Length of EC J-PAKE client ephemeral public key", HFILL }      \ 
 1925    { & name .hf.hs_server_keyex_vs,                                    \ 
 1926      { "Ephemeral Pubkey", prefix ".handshake.vs",                     \ 
 1927        FT_BYTES, BASE_NONE, NULL, 0x0,                                 \ 
 1928        "EC J-PAKE server ephemeral public key", HFILL }                \ 
 1930    { & name .hf.hs_client_keyex_vc,                                    \ 
 1931      { "Ephemeral Pubkey", prefix ".handshake.vc",                     \ 
 1932        FT_BYTES, BASE_NONE, NULL, 0x0,                                 \ 
 1933        "EC J-PAKE client ephemeral public key", HFILL }                \ 
 1935    { & name .hf.hs_server_keyex_rs_len,                                \ 
 1936      { "Schnorr signature Length", prefix ".handshake.rs_len",         \ 
 1937        FT_UINT8, BASE_DEC, NULL, 0x0,                                  \ 
 1938        "Length of EC J-PAKE server Schnorr signature", HFILL }         \ 
 1940    { & name .hf.hs_client_keyex_rc_len,                                \ 
 1941      { "Schnorr signature Length", prefix ".handshake.rc_len",         \ 
 1942        FT_UINT8, BASE_DEC, NULL, 0x0,                                  \ 
 1943        "Length of EC J-PAKE client Schnorr signature", HFILL }         \ 
 1945    { & name .hf.hs_server_keyex_rs,                                    \ 
 1946      { "Schnorr signature", prefix ".handshake.rs",                    \ 
 1947        FT_BYTES, BASE_NONE, NULL, 0x0,                                 \ 
 1948        "EC J-PAKE server Schnorr signature", HFILL }                   \ 
 1950    { & name .hf.hs_client_keyex_rc,                                    \ 
 1951      { "Schnorr signature", prefix ".handshake.rc",                    \ 
 1952        FT_BYTES, BASE_NONE, NULL, 0x0,                                 \ 
 1953        "EC J-PAKE client Schnorr signature", HFILL }                   \ 
 1955    { & name .hf.hs_server_keyex_modulus,                               \ 
 1956      { "Modulus", prefix ".handshake.modulus",                         \ 
 1957        FT_BYTES, BASE_NONE, NULL, 0x0,                                 \ 
 1958        "RSA-EXPORT modulus", HFILL }                                   \ 
 1960    { & name .hf.hs_server_keyex_exponent,                              \ 
 1961      { "Exponent", prefix ".handshake.exponent",                       \ 
 1962        FT_BYTES, BASE_NONE, NULL, 0x0,                                 \ 
 1963        "RSA-EXPORT exponent", HFILL }                                  \ 
 1965    { & name .hf.hs_server_keyex_sig,                                   \ 
 1966      { "Signature", prefix ".handshake.sig",                           \ 
 1967        FT_BYTES, BASE_NONE, NULL, 0x0,                                 \ 
 1968        "Diffie-Hellman server signature", HFILL }                      \ 
 1970    { & name .hf.hs_server_keyex_hint_len,                              \ 
 1971      { "Hint Length", prefix ".handshake.hint_len",                    \ 
 1972        FT_UINT16, BASE_DEC, NULL, 0x0,                                 \ 
 1973        "Length of PSK Hint", HFILL }                                   \ 
 1975    { & name .hf.hs_server_keyex_hint,                                  \ 
 1976      { "Hint", prefix ".handshake.hint",                               \ 
 1977        FT_BYTES, BASE_NONE, NULL, 0x0,                                 \ 
 1978        "PSK Hint", HFILL }                                             \ 
 1980    { & name .hf.hs_client_keyex_identity_len,                          \ 
 1981      { "Identity Length", prefix ".handshake.identity_len",            \ 
 1982        FT_UINT16, BASE_DEC, NULL, 0x0,                                 \ 
 1983        "Length of PSK Identity", HFILL }                               \ 
 1985    { & name .hf.hs_client_keyex_identity,                              \ 
 1986      { "Identity", prefix ".handshake.identity",                       \ 
 1987        FT_BYTES, BASE_NONE, NULL, 0x0,                                 \ 
 1988        "PSK Identity", HFILL }                                         \ 
 1990    { & name .hf.hs_ext_heartbeat_mode,                                 \ 
 1991      { "Mode", prefix ".handshake.extension.heartbeat.mode",           \ 
 1992        FT_UINT8, BASE_DEC, VALS(tls_heartbeat_mode), 0x0,              \ 
 1993        "Heartbeat extension mode", HFILL }                             \ 
 1995    { & name .hf.hs_certificates_len,                                   \ 
 1996      { "Certificates Length", prefix ".handshake.certificates_length", \ 
 1997        FT_UINT24, BASE_DEC, NULL, 0x0,                                 \ 
 1998        "Length of certificates field", HFILL }                         \ 
 2000    { & name .hf.hs_certificates,                                       \ 
 2001      { "Certificates", prefix ".handshake.certificates",               \ 
 2002        FT_NONE, BASE_NONE, NULL, 0x0,                                  \ 
 2003        "List of certificates", HFILL }                                 \ 
 2005    { & name .hf.hs_certificate,                                        \ 
 2006      { "Certificate", prefix ".handshake.certificate",                 \ 
 2007        FT_BYTES, BASE_NONE, NULL, 0x0,                                  \ 
 2010    { & name .hf.hs_certificate_len,                                    \ 
 2011      { "Certificate Length", prefix ".handshake.certificate_length",   \ 
 2012        FT_UINT24, BASE_DEC, NULL, 0x0,                                 \ 
 2013        "Length of certificate", HFILL }                                \ 
 2015    { & name .hf.hs_cert_types_count,                                   \ 
 2016      { "Certificate types count", prefix ".handshake.cert_types_count",\ 
 2017        FT_UINT8, BASE_DEC, NULL, 0x0,                                  \ 
 2018        "Count of certificate types", HFILL }                           \ 
 2020    { & name .hf.hs_cert_types,                                         \ 
 2021      { "Certificate types", prefix ".handshake.cert_types",            \ 
 2022        FT_NONE, BASE_NONE, NULL, 0x0,                                  \ 
 2023        "List of certificate types", HFILL }                            \ 
 2025    { & name .hf.hs_cert_type,                                          \ 
 2026      { "Certificate type", prefix ".handshake.cert_type",              \ 
 2027        FT_UINT8, BASE_DEC, VALS(ssl_31_client_certificate_type), 0x0,  \ 
 2030    { & name .hf.hs_dnames_len,                                         \ 
 2031      { "Distinguished Names Length", prefix ".handshake.dnames_len",   \ 
 2032        FT_UINT16, BASE_DEC, NULL, 0x0,                                 \ 
 2033        "Length of list of CAs that server trusts", HFILL }             \ 
 2035    { & name .hf.hs_dnames,                                             \ 
 2036      { "Distinguished Names", prefix ".handshake.dnames",              \ 
 2037        FT_NONE, BASE_NONE, NULL, 0x0,                                  \ 
 2038        "List of CAs that server trusts", HFILL }                       \ 
 2040    { & name .hf.hs_dname_len,                                          \ 
 2041      { "Distinguished Name Length", prefix ".handshake.dname_len",     \ 
 2042        FT_UINT16, BASE_DEC, NULL, 0x0,                                 \ 
 2043        "Length of distinguished name", HFILL }                         \ 
 2045    { & name .hf.hs_dnames_truncated,                                   \ 
 2046      { "Tree view truncated", prefix ".handshake.dnames_truncated",    \ 
 2047         FT_NONE, BASE_NONE, NULL, 0x00,                                \ 
 2048         "Some Distinguished Names are not added to tree pane to limit resources", HFILL } \ 
 2050    { & name .hf.hs_dname,                                              \ 
 2051      { "Distinguished Name", prefix ".handshake.dname",                \ 
 2052        FT_NONE, BASE_NONE, NULL, 0x0,                                  \ 
 2053        "Distinguished name of a CA that server trusts", HFILL }        \ 
 2055    { & name .hf.hs_random,                                             \ 
 2056      { "Random", prefix ".handshake.random",                           \ 
 2057        FT_BYTES, BASE_NONE, NULL, 0x0,                                 \ 
 2058        "Random values used for deriving keys", HFILL }                 \ 
 2060    { & name .hf.hs_random_time,                                        \ 
 2061      { "GMT Unix Time", prefix ".handshake.random_time",               \ 
 2062        FT_ABSOLUTE_TIME, ABSOLUTE_TIME_LOCAL, NULL, 0x0,               \ 
 2063        "Unix time field of random structure", HFILL }                  \ 
 2065    { & name .hf.hs_random_bytes,                                       \ 
 2066      { "Random Bytes", prefix ".handshake.random_bytes",               \ 
 2067        FT_BYTES, BASE_NONE, NULL, 0x0,                                 \ 
 2068        "Random values used for deriving keys", HFILL }                 \ 
 2070    { & name .hf.hs_session_id,                                         \ 
 2071      { "Session ID", prefix ".handshake.session_id",                   \ 
 2072        FT_BYTES, BASE_NONE, NULL, 0x0,                                 \ 
 2073        "Identifies the SSL session, allowing later resumption", HFILL }\ 
 2075    { & name .hf.hs_session_id_len,                                     \ 
 2076      { "Session ID Length", prefix ".handshake.session_id_length",     \ 
 2077        FT_UINT8, BASE_DEC, NULL, 0x0,                                  \ 
 2078        "Length of Session ID field", HFILL }                           \ 
 2080    { & name .hf.hs_client_version,                                     \ 
 2081      { "Version", prefix ".handshake.version",                         \ 
 2082        FT_UINT16, BASE_HEX, VALS(ssl_versions), 0x0,                   \ 
 2083        "Maximum version supported by client [legacy_version if supported_versions ext is present]", HFILL } \ 
 2085    { & name .hf.hs_server_version,                                     \ 
 2086      { "Version", prefix ".handshake.version",                         \ 
 2087        FT_UINT16, BASE_HEX, VALS(ssl_versions), 0x0,                   \ 
 2088        "Version selected by server [legacy_version if supported_versions ext is present]", HFILL } \ 
 2090    { & name .hf.hs_cipher_suites_len,                                  \ 
 2091      { "Cipher Suites Length", prefix ".handshake.cipher_suites_length", \ 
 2092        FT_UINT16, BASE_DEC, NULL, 0x0,                                 \ 
 2093        "Length of cipher suites field", HFILL }                        \ 
 2095    { & name .hf.hs_cipher_suites,                                      \ 
 2096      { "Cipher Suites", prefix ".handshake.ciphersuites",              \ 
 2097        FT_NONE, BASE_NONE, NULL, 0x0,                                  \ 
 2098        "List of cipher suites supported by client", HFILL }            \ 
 2100    { & name .hf.hs_cipher_suite,                                       \ 
 2101      { "Cipher Suite", prefix ".handshake.ciphersuite",                \ 
 2102        FT_UINT16, BASE_HEX|BASE_EXT_STRING, &ssl_31_ciphersuite_ext, 0x0, \ 
 2105    { & name .hf.hs_comp_methods_len,                                   \ 
 2106      { "Compression Methods Length", prefix ".handshake.comp_methods_length", \ 
 2107        FT_UINT8, BASE_DEC, NULL, 0x0,                                  \ 
 2108        "Length of compression methods field", HFILL }                  \ 
 2110    { & name .hf.hs_comp_methods,                                       \ 
 2111      { "Compression Methods", prefix ".handshake.comp_methods",        \ 
 2112        FT_NONE, BASE_NONE, NULL, 0x0,                                  \ 
 2113        "List of compression methods supported by client", HFILL }      \ 
 2115    { & name .hf.hs_comp_method,                                        \ 
 2116      { "Compression Method", prefix ".handshake.comp_method",          \ 
 2117        FT_UINT8, BASE_DEC, VALS(ssl_31_compression_method), 0x0,       \ 
 2120    { & name .hf.hs_session_ticket_lifetime_hint,                       \ 
 2121      { "Session Ticket Lifetime Hint",                                 \ 
 2122        prefix ".handshake.session_ticket_lifetime_hint",               \ 
 2123        FT_UINT32, BASE_DEC|BASE_UNIT_STRING, UNS(&units_second_seconds), 0x0, \ 
 2124        "New Session Ticket Lifetime Hint", HFILL }                     \ 
 2126    { & name .hf.hs_session_ticket_age_add,                             \ 
 2127      { "Session Ticket Age Add",                                       \ 
 2128        prefix ".handshake.session_ticket_age_add",                     \ 
 2129        FT_UINT32, BASE_DEC, NULL, 0x0,                                 \ 
 2130        "Random 32-bit value to obscure age of ticket", HFILL }         \ 
 2132    { & name .hf.hs_session_ticket_nonce_len,                           \ 
 2133      { "Session Ticket Nonce Length", prefix ".handshake.session_ticket_nonce_length", \ 
 2134        FT_UINT8, BASE_DEC, NULL, 0x0,                                  \ 
 2137    { & name .hf.hs_session_ticket_nonce,                               \ 
 2138      { "Session Ticket Nonce", prefix ".handshake.session_ticket_nonce",   \ 
 2139        FT_BYTES, BASE_NONE, NULL, 0x0,                                 \ 
 2140        "A unique per-ticket value", HFILL }                            \ 
 2142    { & name .hf.hs_session_ticket_len,                                 \ 
 2143      { "Session Ticket Length", prefix ".handshake.session_ticket_length", \ 
 2144        FT_UINT16, BASE_DEC, NULL, 0x0,                                 \ 
 2145        "New Session Ticket Length", HFILL }                            \ 
 2147    { & name .hf.hs_session_ticket,                                     \ 
 2148      { "Session Ticket", prefix ".handshake.session_ticket",           \ 
 2149        FT_BYTES, BASE_NONE, NULL, 0x0,                                 \ 
 2150        "New Session Ticket", HFILL }                                   \ 
 2152    { & name .hf.hs_finished,                                           \ 
 2153      { "Verify Data", prefix ".handshake.verify_data",                 \ 
 2154        FT_BYTES, BASE_NONE, NULL, 0x0,                                 \ 
 2155        "Opaque verification data", HFILL }                             \ 
 2157    { & name .hf.hs_client_cert_vrfy_sig_len,                           \ 
 2158      { "Signature length", prefix ".handshake.client_cert_vrfy.sig_len", \ 
 2159        FT_UINT16, BASE_DEC, NULL, 0x0,                                 \ 
 2160        "Length of CertificateVerify's signature", HFILL }              \ 
 2162    { & name .hf.hs_client_cert_vrfy_sig,                               \ 
 2163      { "Signature", prefix ".handshake.client_cert_vrfy.sig",          \ 
 2164        FT_BYTES, BASE_NONE, NULL, 0x0,                                 \ 
 2165        "CertificateVerify's signature", HFILL }                        \ 
 2167    { & name .hf.hs_ja3_full,                                           \ 
 2168      { "JA3 Fullstring", prefix ".handshake.ja3_full",                 \ 
 2169        FT_STRING, BASE_NONE, NULL, 0x0,                                \ 
 2172    { & name .hf.hs_ja3_hash,                                           \ 
 2173      { "JA3", prefix ".handshake.ja3",                                 \ 
 2174        FT_STRING, BASE_NONE, NULL, 0x0,                                \ 
 2177    { & name .hf.hs_ja3s_full,                                          \ 
 2178      { "JA3S Fullstring", prefix ".handshake.ja3s_full",               \ 
 2179        FT_STRING, BASE_NONE, NULL, 0x0,                                \ 
 2182    { & name .hf.hs_ja3s_hash,                                          \ 
 2183      { "JA3S", prefix ".handshake.ja3s",                               \ 
 2184        FT_STRING, BASE_NONE, NULL, 0x0,                                \ 
 2187    { & name .hf.hs_ja4,                                                \ 
 2188      { "JA4", prefix ".handshake.ja4",                                 \ 
 2189        FT_STRING, BASE_NONE, NULL, 0x0,                                \ 
 2192    { & name .hf.hs_ja4_r,                                              \ 
 2193      { "JA4_r", prefix ".handshake.ja4_r",                             \ 
 2194        FT_STRING, BASE_NONE, NULL, 0x0,                                \ 
 2197    { & name .hf.hs_ext_psk_ke_modes_length,                            \ 
 2198      { "PSK Key Exchange Modes Length", prefix ".extension.psk_ke_modes_length", \ 
 2199        FT_UINT8, BASE_DEC, NULL, 0x0,                                  \ 
 2202    { & name .hf.hs_ext_psk_ke_mode,                                    \ 
 2203      { "PSK Key Exchange Mode", prefix ".extension.psk_ke_mode",       \ 
 2204        FT_UINT8, BASE_DEC, VALS(tls_hello_ext_psk_ke_mode), 0x0,       \ 
 2205        "Key exchange modes where the client supports use of PSKs", HFILL } \ 
 2207    { & name .hf.hs_certificate_request_context_length,                 \ 
 2208      { "Certificate Request Context Length", prefix ".handshake.certificate_request_context_length", \ 
 2209        FT_UINT8, BASE_DEC, NULL, 0x0,                                  \ 
 2212    { & name .hf.hs_certificate_request_context,                        \ 
 2213      { "Certificate Request Context", prefix ".handshake.certificate_request_context", \ 
 2214        FT_BYTES, BASE_NONE, NULL, 0x0,                                 \ 
 2215        "Value from CertificateRequest or empty for server auth", HFILL } \ 
 2217    { & name .hf.hs_key_update_request_update,                          \ 
 2218      { "Key Update Request", prefix ".handshake.key_update.request_update", \ 
 2219        FT_UINT8, BASE_DEC, VALS(tls13_key_update_request), 0x00,       \ 
 2220        "Whether the receiver should also update its keys", HFILL }     \ 
 2222    { & name .hf.sct_scts_length,                                       \ 
 2223      { "Serialized SCT List Length", prefix ".sct.scts_length",        \ 
 2224        FT_UINT16, BASE_DEC, NULL, 0x00,                                \ 
 2227    { & name .hf.sct_sct_length,                                        \ 
 2228      { "Serialized SCT Length", prefix ".sct.sct_length",              \ 
 2229        FT_UINT16, BASE_DEC, NULL, 0x00,                                \ 
 2232    { & name .hf.sct_sct_version,                                       \ 
 2233      { "SCT Version", prefix ".sct.sct_version",                       \ 
 2234        FT_UINT8, BASE_DEC, NULL, 0x00,                                 \ 
 2235        "SCT Protocol version (v1 (0) is defined in RFC 6962)", HFILL } \ 
 2237    { & name .hf.sct_sct_logid,                                         \ 
 2238      { "Log ID", prefix ".sct.sct_logid",                              \ 
 2239        FT_BYTES, BASE_NONE, NULL, 0x00,                                \ 
 2240        "SHA-256 hash of log's public key", HFILL }                     \ 
 2242    { & name .hf.sct_sct_timestamp,                                     \ 
 2243      { "Timestamp", prefix ".sct.sct_timestamp",                       \ 
 2244        FT_ABSOLUTE_TIME, ABSOLUTE_TIME_UTC, NULL, 0x00,                \ 
 2245        "Timestamp of issuance", HFILL }                                \ 
 2247    { & name .hf.sct_sct_extensions_length,                             \ 
 2248      { "Extensions length", prefix ".sct.sct_extensions_length",       \ 
 2249        FT_UINT16, BASE_DEC, NULL, 0x00,                                \ 
 2250        "Length of future extensions to this protocol (currently none)", HFILL } \ 
 2252    { & name .hf.sct_sct_extensions,                                    \ 
 2253      { "Extensions", prefix ".sct.sct_extensions",                     \ 
 2254        FT_NONE, BASE_NONE, NULL, 0x00,                                 \ 
 2255        "Future extensions to this protocol (currently none)", HFILL }  \ 
 2257    { & name .hf.sct_sct_signature_length,                              \ 
 2258      { "Signature Length", prefix ".sct.sct_signature_length",         \ 
 2259        FT_UINT16, BASE_DEC, NULL, 0x00,                                \ 
 2262    { & name .hf.sct_sct_signature,                                     \ 
 2263      { "Signature", prefix ".sct.sct_signature",                       \ 
 2264        FT_BYTES, BASE_NONE, NULL, 0x00,                                \ 
 2267    { & name .hf.hs_ext_max_early_data_size,                            \ 
 2268      { "Maximum Early Data Size", prefix ".early_data.max_early_data_size", \ 
 2269        FT_UINT32, BASE_DEC, NULL, 0x00,                                \ 
 2270        "Maximum amount of 0-RTT data that the client may send", HFILL } \ 
 2272    { & name .hf.hs_ext_oid_filters_length,                             \ 
 2273      { "OID Filters Length", prefix ".extension.oid_filters_length",   \ 
 2274        FT_UINT16, BASE_DEC, NULL, 0x00,                                \ 
 2277    { & name .hf.hs_ext_oid_filters_oid_length,                         \ 
 2278      { "Certificate Extension OID Length", prefix ".extension.oid_filters.oid_length", \ 
 2279        FT_UINT8, BASE_DEC, NULL, 0x00,                                 \ 
 2282    { & name .hf.hs_ext_oid_filters_oid,                                \ 
 2283      { "Certificate Extension OID", prefix ".extension.oid_filters.oid", \ 
 2284        FT_OID, BASE_NONE, NULL, 0x00,                                  \ 
 2287    { & name .hf.hs_ext_oid_filters_values_length,                      \ 
 2288      { "Certificate Extension Values Length", prefix ".extension.oid_filters.values_length", \ 
 2289        FT_UINT16, BASE_DEC, NULL, 0x00,                                \ 
 2292    { & name .hf.hs_cred_valid_time,                                    \ 
 2293      { "Valid Time", prefix ".handshake.cred.valid_time",              \ 
 2294        FT_UINT16, BASE_DEC, NULL, 0x0,                                 \ 
 2295        "Delegated Credentials Valid Time", HFILL }                     \ 
 2297    { & name .hf.hs_cred_pubkey,                                        \ 
 2298      { "Subject Public Key Info", prefix ".handshake.cred.pubkey",     \ 
 2299        FT_BYTES, BASE_NONE, NULL, 0x0,                                 \ 
 2300        "Delegated Credentials Subject Public Key Info", HFILL }        \ 
 2302    { & name .hf.hs_cred_pubkey_len,                                    \ 
 2303      { "Subject Public Key Info Length", prefix ".handshake.cred.pubkey_len", \ 
 2304        FT_UINT24, BASE_DEC, NULL, 0x0,                                 \ 
 2305        "Delegated Credentials Subject Public Key Info Length", HFILL } \ 
 2307    { & name .hf.hs_cred_signature,                                     \ 
 2308      { "Signature", prefix ".handshake.cred.signature",                \ 
 2309        FT_BYTES, BASE_NONE, NULL, 0x0,                                 \ 
 2310        "Delegated Credentials Signature", HFILL }                      \ 
 2312    { & name .hf.hs_cred_signature_len,                                 \ 
 2313      { "Signature Length", prefix ".handshake.cred.signature_len",     \ 
 2314        FT_UINT16, BASE_DEC, NULL, 0x0,                                 \ 
 2315        "Delegated Credentials Signature Length", HFILL }               \ 
 2317    { & name .hf.hs_ext_compress_certificate_algorithms_length,         \ 
 2318      { "Algorithms Length", prefix ".compress_certificate.algorithms_length", \ 
 2319        FT_UINT8, BASE_DEC, NULL, 0x00,                                 \ 
 2322    { & name .hf.hs_ext_compress_certificate_algorithm,                 \ 
 2323      { "Algorithm", prefix ".compress_certificate.algorithm",          \ 
 2324        FT_UINT16, BASE_DEC, VALS(compress_certificate_algorithm_vals), 0x00, \ 
 2327    { & name .hf.hs_ext_compress_certificate_uncompressed_length,       \ 
 2328      { "Uncompressed Length", prefix ".compress_certificate.uncompressed_length", \ 
 2329        FT_UINT24, BASE_DEC, NULL, 0x00,                                \ 
 2332    { & name .hf.hs_ext_compress_certificate_compressed_certificate_message_length, \ 
 2333      { "Length", prefix ".compress_certificate.compressed_certificate_message.length", \ 
 2334        FT_UINT24, BASE_DEC, NULL, 0x00,                                \ 
 2337    { & name .hf.hs_ext_compress_certificate_compressed_certificate_message, \ 
 2338      { "Compressed Certificate Message", prefix ".compress_certificate.compressed_certificate_message", \ 
 2339        FT_BYTES, BASE_NONE, NULL, 0x00,                                \ 
 2342    { & name .hf.hs_ext_token_binding_version_major,                    \ 
 2343      { "Protocol Major Version", prefix ".token_binding.version_major", \ 
 2344        FT_UINT8, BASE_HEX, NULL, 0x00,                                 \ 
 2345        "Major version of the Token Binding protocol", HFILL }          \ 
 2347    { & name .hf.hs_ext_token_binding_version_minor,                    \ 
 2348      { "Protocol Minor Version", prefix ".token_binding.version_minor", \ 
 2349        FT_UINT8, BASE_HEX, NULL, 0x00,                                 \ 
 2350        "Minor version of the Token Binding protocol", HFILL }          \ 
 2352    { & name .hf.hs_ext_token_binding_key_parameters,                   \ 
 2353      { "Key Parameters", prefix ".token_binding.key_parameters",       \ 
 2354        FT_NONE, BASE_NONE, NULL, 0x0,                                  \ 
 2357    { & name .hf.hs_ext_token_binding_key_parameters_length,            \ 
 2358      { "Key Parameters Length", prefix ".token_binding.key_parameters_length", \ 
 2359        FT_UINT8, BASE_DEC, NULL, 0x00,                                 \ 
 2360        "Length of the key parameters list", HFILL }                    \ 
 2362    { & name .hf.hs_ext_token_binding_key_parameter,                    \ 
 2363      { "Key Parameter", prefix ".token_binding.key_parameter",         \ 
 2364        FT_UINT8, BASE_DEC, VALS(token_binding_key_parameter_vals), 0x00, \ 
 2365        "Identifier of the Token Binding key parameter", HFILL }         \ 
 2367    { & name .hf.hs_ext_record_size_limit,                              \ 
 2368      { "Record Size Limit", prefix ".record_size_limit",               \ 
 2369        FT_UINT16, BASE_DEC, NULL, 0x00,                                \ 
 2370        "Maximum record size that an endpoint is willing to receive", HFILL } \ 
 2372    { & name .hf.hs_ext_quictp_len,                                     \ 
 2373      { "Parameters Length", prefix ".quic.len",                        \ 
 2374        FT_UINT16, BASE_DEC, NULL, 0x00,                                \ 
 2377    { & name .hf.hs_ext_quictp_parameter,                               \ 
 2378      { "Parameter", prefix ".quic.parameter",                          \ 
 2379        FT_NONE, BASE_NONE, NULL, 0x00,                                 \ 
 2382    { & name .hf.hs_ext_quictp_parameter_type,                          \ 
 2383      { "Type", prefix ".quic.parameter.type",                          \ 
 2384        FT_UINT64, BASE_CUSTOM, CF_FUNC(quic_transport_parameter_id_base_custom), 0x00,    \ 
 2387    { & name .hf.hs_ext_quictp_parameter_len,                           \ 
 2388      { "Length", prefix ".quic.parameter.length",                      \ 
 2389        FT_UINT64, BASE_DEC, NULL, 0x00,                                \ 
 2392    { & name .hf.hs_ext_quictp_parameter_len_old,                       \ 
 2393      { "Length", prefix ".quic.parameter.length.old",                  \ 
 2394        FT_UINT16, BASE_DEC, NULL, 0x00,                                \ 
 2397    { & name .hf.hs_ext_quictp_parameter_value,                         \ 
 2398      { "Value", prefix ".quic.parameter.value",                        \ 
 2399        FT_BYTES, BASE_NONE, NULL, 0x00,                                \ 
 2402    { & name .hf.hs_ext_quictp_parameter_original_destination_connection_id, \ 
 2403      { "original_destination_connection_id", prefix ".quic.parameter.original_destination_connection_id", \ 
 2404        FT_BYTES, BASE_NONE, NULL, 0x00,                                \ 
 2405        "Destination Connection ID from the first Initial packet sent by the client", HFILL } \ 
 2407    { & name .hf.hs_ext_quictp_parameter_max_idle_timeout,              \ 
 2408      { "max_idle_timeout", prefix ".quic.parameter.max_idle_timeout",  \ 
 2409        FT_UINT64, BASE_DEC, NULL, 0x00,                                \ 
 2410        "In milliseconds", HFILL }                                      \ 
 2412    { & name .hf.hs_ext_quictp_parameter_stateless_reset_token,         \ 
 2413      { "stateless_reset_token", prefix ".quic.parameter.stateless_reset_token",    \ 
 2414        FT_BYTES, BASE_NONE, NULL, 0x00,                                \ 
 2415        "Used in verifying a stateless reset", HFILL }                  \ 
 2417    { & name .hf.hs_ext_quictp_parameter_max_udp_payload_size,          \ 
 2418      { "max_udp_payload_size", prefix ".quic.parameter.max_udp_payload_size", \ 
 2419        FT_UINT64, BASE_DEC, NULL, 0x00,                                \ 
 2420        "Maximum UDP payload size that the endpoint is willing to receive", HFILL }    \ 
 2422    { & name .hf.hs_ext_quictp_parameter_initial_max_data,              \ 
 2423      { "initial_max_data", prefix ".quic.parameter.initial_max_data",  \ 
 2424        FT_UINT64, BASE_DEC, NULL, 0x00,                                \ 
 2425        "Contains the initial value for the maximum amount of data that can be sent on the connection", HFILL }                                                                 \ 
 2427    { & name .hf.hs_ext_quictp_parameter_initial_max_stream_data_bidi_local, \ 
 2428      { "initial_max_stream_data_bidi_local", prefix ".quic.parameter.initial_max_stream_data_bidi_local", \ 
 2429        FT_UINT64, BASE_DEC, NULL, 0x00,                                \ 
 2430        "Initial stream maximum data for bidirectional, locally-initiated streams", HFILL }                                                                 \ 
 2432    { & name .hf.hs_ext_quictp_parameter_initial_max_stream_data_bidi_remote, \ 
 2433      { "initial_max_stream_data_bidi_remote", prefix ".quic.parameter.initial_max_stream_data_bidi_remote", \ 
 2434        FT_UINT64, BASE_DEC, NULL, 0x00,                                \ 
 2435        "Initial stream maximum data for bidirectional, peer-initiated streams", HFILL }                                                                 \ 
 2437    { & name .hf.hs_ext_quictp_parameter_initial_max_stream_data_uni,   \ 
 2438      { "initial_max_stream_data_uni", prefix ".quic.parameter.initial_max_stream_data_uni", \ 
 2439        FT_UINT64, BASE_DEC, NULL, 0x00,                                \ 
 2440        "Initial stream maximum data for unidirectional streams parameter", HFILL } \ 
 2442    { & name .hf.hs_ext_quictp_parameter_initial_max_streams_bidi,      \ 
 2443      { "initial_max_streams_bidi", prefix ".quic.parameter.initial_max_streams_bidi",  \ 
 2444        FT_UINT64, BASE_DEC, NULL, 0x00,                                \ 
 2445        "Initial maximum number of application-owned bidirectional streams", HFILL } \ 
 2447    { & name .hf.hs_ext_quictp_parameter_initial_max_streams_uni,       \ 
 2448      { "initial_max_streams_uni", prefix ".quic.parameter.initial_max_streams_uni",    \ 
 2449        FT_UINT64, BASE_DEC, NULL, 0x00,                                \ 
 2450        "Initial maximum number of application-owned unidirectional streams", HFILL }   \ 
 2452    { & name .hf.hs_ext_quictp_parameter_ack_delay_exponent,            \ 
 2453      { "ack_delay_exponent", prefix ".quic.parameter.ack_delay_exponent",  \ 
 2454        FT_UINT64, BASE_DEC, NULL, 0x00,                                \ 
 2455        "Indicating an exponent used to decode the ACK Delay field in the ACK frame,", HFILL }  \ 
 2457    { & name .hf.hs_ext_quictp_parameter_max_ack_delay,                 \ 
 2458      { "max_ack_delay", prefix ".quic.parameter.max_ack_delay",        \ 
 2459        FT_UINT64, BASE_DEC, NULL, 0x00,                                \ 
 2460        "Indicating the maximum amount of time in milliseconds by which it will delay sending of acknowledgments", HFILL } \ 
 2462    { & name .hf.hs_ext_quictp_parameter_pa_ipv4address,                \ 
 2463      { "ipv4Address", prefix ".quic.parameter.preferred_address.ipv4address",  \ 
 2464        FT_IPv4, BASE_NONE, NULL, 0x00,                                 \ 
 2467    { & name .hf.hs_ext_quictp_parameter_pa_ipv6address,                \ 
 2468      { "ipv6Address", prefix ".quic.parameter.preferred_address.ipv6address",  \ 
 2469        FT_IPv6, BASE_NONE, NULL, 0x00,                                 \ 
 2472    { & name .hf.hs_ext_quictp_parameter_pa_ipv4port,                   \ 
 2473      { "ipv4Port", prefix ".quic.parameter.preferred_address.ipv4port", \ 
 2474        FT_UINT16, BASE_DEC, NULL, 0x00,                                \ 
 2477    { & name .hf.hs_ext_quictp_parameter_pa_ipv6port,                   \ 
 2478      { "ipv6Port", prefix ".quic.parameter.preferred_address.ipv6port", \ 
 2479        FT_UINT16, BASE_DEC, NULL, 0x00,                                \ 
 2482    { & name .hf.hs_ext_quictp_parameter_pa_connectionid_length,        \ 
 2483      { "Length", prefix ".quic.parameter.preferred_address.connectionid.length",   \ 
 2484        FT_UINT8, BASE_DEC, NULL, 0x00,                                 \ 
 2485        "Length of connectionId Field", HFILL }                         \ 
 2487    { & name .hf.hs_ext_quictp_parameter_pa_connectionid,               \ 
 2488      { "connectionId", prefix ".quic.parameter.preferred_address.connectionid",    \ 
 2489        FT_BYTES, BASE_NONE, NULL, 0x00,                                \ 
 2492    { & name .hf.hs_ext_quictp_parameter_pa_statelessresettoken,        \ 
 2493      { "statelessResetToken", prefix ".quic.parameter.preferred_address.statelessresettoken",  \ 
 2494        FT_BYTES, BASE_NONE, NULL, 0x00,                                \ 
 2497    { & name .hf.hs_ext_quictp_parameter_active_connection_id_limit,    \ 
 2498      { "Active Connection ID Limit", prefix ".quic.parameter.active_connection_id_limit", \ 
 2499        FT_UINT64, BASE_DEC, NULL, 0x00,                                \ 
 2502    { & name .hf.hs_ext_quictp_parameter_initial_source_connection_id,  \ 
 2503      { "Initial Source Connection ID", prefix ".quic.parameter.initial_source_connection_id", \ 
 2504        FT_BYTES, BASE_NONE, NULL, 0x00,                                \ 
 2507    { & name .hf.hs_ext_quictp_parameter_retry_source_connection_id,    \ 
 2508      { "Retry Source Connection ID", prefix ".quic.parameter.retry_source_connection_id", \ 
 2509        FT_BYTES, BASE_NONE, NULL, 0x00,                                \ 
 2512    { & name .hf.hs_ext_quictp_parameter_max_datagram_frame_size,       \ 
 2513      { "max_datagram_frame_size", prefix ".quic.parameter.max_datagram_frame_size", \ 
 2514        FT_UINT64, BASE_DEC, NULL, 0x00,                                \ 
 2517    { & name .hf.hs_ext_quictp_parameter_cibir_encoding_length,         \ 
 2518      { "length", prefix ".quic.parameter.cibir_encoding.length",       \ 
 2519        FT_UINT64, BASE_DEC, NULL, 0x00,                                \ 
 2522    { & name .hf.hs_ext_quictp_parameter_cibir_encoding_offset,         \ 
 2523      { "offset", prefix ".quic.parameter.cibir_encoding.offset",       \ 
 2524        FT_UINT64, BASE_DEC, NULL, 0x00,                                \ 
 2527    { & name .hf.hs_ext_quictp_parameter_loss_bits,                     \ 
 2528      { "loss_bits", prefix ".quic.parameter.loss_bits",                \ 
 2529        FT_UINT64, BASE_DEC, NULL, 0x00,                                \ 
 2532    { & name .hf.hs_ext_quictp_parameter_address_discovery,             \ 
 2533      { "address_discovery", prefix ".quic.parameter.address_discovery",  \ 
 2534        FT_UINT64, BASE_DEC|BASE_VAL64_STRING, VALS64(quic_address_discovery_vals), 0x00,  \ 
 2537    { & name .hf.hs_ext_quictp_parameter_enable_time_stamp_v2,          \ 
 2538      { "Enable TimestampV2", prefix ".quic.parameter.enable_time_stamp_v2", \ 
 2539        FT_UINT64, BASE_DEC|BASE_VAL64_STRING, VALS64(quic_enable_time_stamp_v2_vals), 0x00,                                \ 
 2542    { & name .hf.hs_ext_quictp_parameter_min_ack_delay,                 \ 
 2543      { "min_ack_delay", prefix ".quic.parameter.min_ack_delay",        \ 
 2544        FT_UINT64, BASE_DEC, NULL, 0x00,                                \ 
 2547    { & name .hf.hs_ext_quictp_parameter_google_user_agent_id,          \ 
 2548      { "Google UserAgent", prefix ".quic.parameter.google.user_agent", \ 
 2549        FT_STRING, BASE_NONE, NULL, 0x00,                               \ 
 2552    { & name .hf.hs_ext_quictp_parameter_google_key_update_not_yet_supported, \ 
 2553      { "Google Key Update not yet supported", prefix ".quic.parameter.google.key_update_not_yet_supported", \ 
 2554        FT_NONE, BASE_NONE, NULL, 0x00,                                 \ 
 2557    { & name .hf.hs_ext_quictp_parameter_google_quic_version,           \ 
 2558      { "Google QUIC version", prefix ".quic.parameter.google.quic_version", \ 
 2559        FT_UINT32, BASE_RANGE_STRING | BASE_HEX, RVALS(quic_version_vals), 0x00, \ 
 2562    { & name .hf.hs_ext_quictp_parameter_google_initial_rtt,            \ 
 2563      { "Google Initial RTT", prefix ".quic.parameter.google.initial_rtt", \ 
 2564        FT_UINT64, BASE_DEC, NULL, 0x00,                                \ 
 2567    { & name .hf.hs_ext_quictp_parameter_google_support_handshake_done, \ 
 2568      { "Google Support Handshake Done", prefix ".quic.parameter.google.support_handshake_done", \ 
 2569        FT_NONE, BASE_NONE, NULL, 0x00,                                 \ 
 2572    { & name .hf.hs_ext_quictp_parameter_google_quic_params,            \ 
 2573      { "Google QUIC parameters", prefix ".quic.parameter.google.quic_params", \ 
 2574        FT_BYTES, BASE_NONE, NULL, 0x00,                                \ 
 2577    { & name .hf.hs_ext_quictp_parameter_google_quic_params_unknown_field, \ 
 2578      { "Google Unknown Field", prefix ".quic.parameter.google.quic_params_unknown_field", \ 
 2579        FT_BYTES, BASE_NONE, NULL, 0x00,                                \ 
 2582    { & name .hf.hs_ext_quictp_parameter_google_connection_options,     \ 
 2583      { "Google Connection options", prefix ".quic.parameter.google.connection_options", \ 
 2584        FT_BYTES, BASE_NONE, NULL, 0x00,                                \ 
 2587    { & name .hf.hs_ext_quictp_parameter_google_supported_versions_length, \ 
 2588      { "Google Supported Versions Length", prefix ".quic.parameter.google.supported_versions_length", \ 
 2589        FT_UINT8, BASE_DEC, NULL, 0x00,                                 \ 
 2592    { & name .hf.hs_ext_quictp_parameter_google_supported_version,      \ 
 2593      { "Google Supported Version", prefix ".quic.parameter.google.supported_version", \ 
 2594        FT_UINT32, BASE_RANGE_STRING | BASE_HEX, RVALS(quic_version_vals), 0x00, \ 
 2597    { & name .hf.hs_ext_quictp_parameter_facebook_partial_reliability,     \ 
 2598      { "Facebook Partial Reliability", prefix ".quic.parameter.facebook.partial_reliability", \ 
 2599        FT_UINT64, BASE_DEC, NULL, 0x00,                                \ 
 2602    { & name .hf.hs_ext_quictp_parameter_chosen_version,                \ 
 2603      { "Chosen Version", prefix ".quic.parameter.vi.chosen_version",   \ 
 2604        FT_UINT32, BASE_RANGE_STRING | BASE_HEX, RVALS(quic_version_vals), 0x00, \ 
 2607    { & name .hf.hs_ext_quictp_parameter_other_version,                 \ 
 2608      { "Other Version", prefix ".quic.parameter.vi.other_version",     \ 
 2609        FT_UINT32, BASE_RANGE_STRING | BASE_HEX, RVALS(quic_version_vals), 0x00, \ 
 2612    { & name .hf.hs_ext_quictp_parameter_enable_multipath,              \ 
 2613      { "Enable Multipath", prefix ".quic.parameter.enable_multipath", \ 
 2614        FT_UINT64, BASE_DEC|BASE_VAL64_STRING, VALS64(quic_enable_multipath_vals), 0x00,                                \ 
 2617    { & name .hf.hs_ext_quictp_parameter_initial_max_paths,             \ 
 2618      { "Initial Max Paths", prefix ".quic.parameter.initial_max_paths", \ 
 2619        FT_UINT64, BASE_DEC, NULL, 0x00,                                \ 
 2622    { & name .hf.hs_ext_quictp_parameter_initial_max_path_id,           \ 
 2623      { "Initial Max Path ID", prefix ".quic.parameter.initial_max_path_id", \ 
 2624        FT_UINT64, BASE_DEC, NULL, 0x00,                                \ 
 2627    { & name .hf.hs_ext_connection_id_length,                           \ 
 2628      { "Connection ID length", prefix ".connection_id_length",         \ 
 2629        FT_UINT8, BASE_DEC, NULL, 0x00,                                 \ 
 2632    { & name .hf.hs_ext_connection_id,                                  \ 
 2633      { "Connection ID", prefix ".connection_id",                       \ 
 2634        FT_BYTES, BASE_NONE, NULL, 0x00,                                \ 
 2637    { & name .hf.hs_ext_trusted_ca_keys_len,                            \ 
 2638      { "Trusted CA keys length", prefix ".handshake.trusted_ca.keys_length", \ 
 2639        FT_UINT16, BASE_DEC, NULL, 0x00,                                \ 
 2640        "Length of Trusted CA keys extension", HFILL }                  \ 
 2642    { & name .hf.hs_ext_trusted_ca_keys_list,                           \ 
 2643      { "Trusted CA keys", prefix ".handshake.trusted_ca.keys",         \ 
 2644        FT_NONE, BASE_NONE, NULL, 0x00,                                 \ 
 2645        "List of Trusted CA keys", HFILL }                              \ 
 2647    { & name .hf.hs_ext_trusted_ca_key,                                 \ 
 2648      { "Trusted CA key", prefix ".handshake.trusted_ca.key",           \ 
 2649        FT_NONE, BASE_NONE, NULL, 0x0,                                  \ 
 2652    { & name .hf.hs_ext_trusted_ca_key_type,                            \ 
 2653      { "Trusted CA key type", prefix ".handshake.trusted_ca.key_type", \ 
 2654        FT_UINT8, BASE_DEC, VALS(tls_hello_ext_trusted_ca_key_type), 0x00, \ 
 2655        "Type of Trusted CA key", HFILL }                               \ 
 2657    { & name .hf.hs_ext_trusted_ca_key_hash,                            \ 
 2658      { "Trusted CA key hash", prefix ".handshake.trusted_ca.key_hash", \ 
 2659        FT_BYTES, BASE_NONE, NULL, 0x00,                                \ 
 2662    { & name .hf.hs_ext_trusted_ca_key_dname_len,                       \ 
 2663      { "Distinguished Name Length", prefix ".handshake.trusted_ca.key_dname_len", \ 
 2664        FT_UINT16, BASE_DEC, NULL, 0x0,                                 \ 
 2665        "Length of distinguished name", HFILL }                         \ 
 2667    { & name .hf.hs_ext_trusted_ca_key_dname,                           \ 
 2668      { "Distinguished Name", prefix ".handshake.trusted_ca.key_dname", \ 
 2669        FT_NONE, BASE_NONE, NULL, 0x0,                                  \ 
 2670        "Distinguished name of a CA that the client trusts", HFILL }    \ 
 2672    { & name .hf.esni_suite,                                            \ 
 2673      { "Cipher Suite", prefix ".esni.suite",                           \ 
 2674        FT_UINT16, BASE_HEX|BASE_EXT_STRING, &ssl_31_ciphersuite_ext, 0x0, \ 
 2675        "Cipher suite used to encrypt the SNI", HFILL }                 \ 
 2677    { & name .hf.esni_record_digest_length,                             \ 
 2678      { "Record Digest Length", prefix ".esni.record_digest_length",    \ 
 2679        FT_UINT16, BASE_DEC, NULL, 0x00,                                \ 
 2682    { & name .hf.esni_record_digest,                                    \ 
 2683      { "Record Digest", prefix ".esni.record_digest",                  \ 
 2684        FT_BYTES, BASE_NONE, NULL, 0x00,                                \ 
 2685        "Cryptographic hash of the ESNIKeys from which the ESNI key was obtained", HFILL } \ 
 2687    { & name .hf.esni_encrypted_sni_length,                             \ 
 2688      { "Encrypted SNI Length", prefix ".esni.encrypted_sni_length",    \ 
 2689        FT_UINT16, BASE_DEC, NULL, 0x00,                                \ 
 2692    { & name .hf.esni_encrypted_sni,                                    \ 
 2693      { "Encrypted SNI", prefix ".esni.encrypted_sni",                  \ 
 2694        FT_BYTES, BASE_NONE, NULL, 0x00,                                \ 
 2695        "The encrypted ClientESNIInner structure", HFILL }              \ 
 2697    { & name .hf.esni_nonce,                                            \ 
 2698      { "Nonce", prefix ".esni.nonce",                                  \ 
 2699        FT_BYTES, BASE_NONE, NULL, 0x00,                                \ 
 2700        "Contents of ClientESNIInner.nonce", HFILL }                    \ 
 2702    { & name .hf.ech_echconfiglist_length,                              \ 
 2703      { "ECHConfigList length", prefix ".ech.echconfiglist_length",     \ 
 2704        FT_UINT16, BASE_DEC, NULL, 0x0,                                 \ 
 2705        "Encrypted ClientHello (ECH) Configurations length", HFILL }    \ 
 2707    { & name .hf.ech_echconfiglist,                                     \ 
 2708      { "ECHConfigList", prefix ".ech.echconfiglist",                   \ 
 2709        FT_NONE, BASE_NONE, NULL, 0x0,                                  \ 
 2710        "Encrypted ClientHello (ECH) Configurations", HFILL }           \ 
 2712    { & name .hf.ech_echconfig,                                         \ 
 2713      { "ECHConfig", prefix ".ech.echconfig",                           \ 
 2714        FT_NONE, BASE_NONE, NULL, 0x0,                                  \ 
 2715        "Encrypted ClientHello (ECH) Configuration", HFILL }            \ 
 2717    { & name .hf.ech_echconfig_version,                                 \ 
 2718      { "Version", prefix ".ech.echconfig.version",                     \ 
 2719        FT_UINT16, BASE_HEX, NULL, 0x0,                                 \ 
 2720        "Encrypted ClientHello: ECHConfig version", HFILL }             \ 
 2722    { & name .hf.ech_echconfig_length,                                  \ 
 2723      { "Length", prefix ".ech.echconfig.length",                       \ 
 2724        FT_UINT16, BASE_DEC, NULL, 0x0,                                 \ 
 2725        "Encrypted ClientHello: ECHConfig length", HFILL }              \ 
 2727    { & name .hf.ech_echconfigcontents_maximum_name_length,             \ 
 2728      { "Maximum Name Length", prefix ".ech.echconfigcontents.maximum_name_length", \ 
 2729        FT_UINT8, BASE_DEC, NULL, 0x0,                                  \ 
 2730        "The longest name of a backend server, if known", HFILL }       \ 
 2732    { & name .hf.ech_echconfigcontents_public_name_length,              \ 
 2733      { "Public Name length", prefix ".ech.echconfigcontents.public_name_length", \ 
 2734        FT_UINT8, BASE_DEC, NULL, 0x0,                                  \ 
 2735        "Length of the Public Name field", HFILL }                      \ 
 2737    { & name .hf.ech_echconfigcontents_public_name,                     \ 
 2738      { "Public Name", prefix ".ech.echconfigcontents.public_name",     \ 
 2739        FT_STRING, BASE_NONE, NULL, 0x0,                                \ 
 2740        "The DNS name of the client-facing server, i.e., the entity trusted to update the ECH configuration", HFILL } \ 
 2742    { & name .hf.ech_echconfigcontents_extensions_length,               \ 
 2743      { "Extensions length", prefix ".ech.echconfigcontents.extensions_length", \ 
 2744        FT_UINT16, BASE_DEC, NULL, 0x0,                                 \ 
 2745        "Length of the Extensions field", HFILL }                       \ 
 2747    { & name .hf.ech_echconfigcontents_extensions,                      \ 
 2748      { "Extensions", prefix ".ech.echconfigcontents.extensions",       \ 
 2749        FT_BYTES, BASE_NONE, NULL, 0x0,                                 \ 
 2750        "A list of extensions that the client must take into consideration when generating a ClientHello message", HFILL } \ 
 2752    { & name .hf.ech_hpke_keyconfig,                                    \ 
 2753      { "HPKE Key Config", prefix ".ech.hpke.keyconfig",                \ 
 2754        FT_NONE, BASE_NONE, NULL, 0x0,                                  \ 
 2755        "HPKE Key Config", HFILL }                                      \ 
 2757    { & name .hf.ech_hpke_keyconfig_config_id,                          \ 
 2758      { "Config Id", prefix ".ech.hpke.keyconfig.config_id",            \ 
 2759        FT_UINT8, BASE_DEC, NULL, 0x0,                                  \ 
 2760        "HPKE Config Id", HFILL }                                       \ 
 2762    { & name .hf.ech_hpke_keyconfig_kem_id,                             \ 
 2763      { "KEM Id", prefix ".ech.hpke.keyconfig.kem_id",                  \ 
 2764        FT_UINT16, BASE_DEC, VALS(kem_id_type_vals), 0x0,               \ 
 2765        "HPKE KEM Id", HFILL }                                          \ 
 2767    { & name .hf.ech_hpke_keyconfig_public_key_length,                  \ 
 2768      { "Public Key length", prefix ".ech.hpke.keyconfig.public_key_length", \ 
 2769        FT_UINT16, BASE_DEC, NULL, 0x0,                                 \ 
 2770        "HPKE Public Key length", HFILL }                               \ 
 2772    { & name .hf.ech_hpke_keyconfig_public_key,                         \ 
 2773      { "Public Key", prefix ".ech.hpke.keyconfig.public_key",          \ 
 2774        FT_BYTES, BASE_NONE, NULL, 0x0,                                 \ 
 2775        "HPKE Public Key", HFILL }                                      \ 
 2777    { & name .hf.ech_hpke_keyconfig_cipher_suites,                      \ 
 2778      { "Cipher Suites", prefix ".ech.hpke.keyconfig.cipher_suites",    \ 
 2779        FT_NONE, BASE_NONE, NULL, 0x0,                                  \ 
 2780        "HPKE Cipher Suites", HFILL }                                   \ 
 2782    { & name .hf.ech_hpke_keyconfig_cipher_suites_length,               \ 
 2783      { "Cipher Suites length", prefix ".ech.hpke.keyconfig.cipher_suites_length", \ 
 2784        FT_UINT16, BASE_DEC, NULL, 0x0,                                 \ 
 2785        "HPKE Cipher Suites length", HFILL }                            \ 
 2787    { & name .hf.ech_hpke_keyconfig_cipher_suite,                       \ 
 2788      { "Cipher Suite", prefix ".ech.hpke.keyconfig.cipher_suite",      \ 
 2789        FT_NONE, BASE_NONE, NULL, 0x0,                                  \ 
 2790        "HPKE Cipher Suite", HFILL }                                    \ 
 2792    { & name .hf.ech_hpke_keyconfig_cipher_suite_kdf_id,                \ 
 2793      { "KDF Id", prefix ".ech.hpke.keyconfig.cipher_suite.kdf_id",     \ 
 2794        FT_UINT16, BASE_DEC, VALS(kdf_id_type_vals), 0x0,               \ 
 2795        "HPKE KDF Id", HFILL }                                          \ 
 2797    { & name .hf.ech_hpke_keyconfig_cipher_suite_aead_id,               \ 
 2798      { "AEAD Id", prefix ".ech.hpke.keyconfig.cipher_suite.aead_id",   \ 
 2799        FT_UINT16, BASE_DEC, VALS(aead_id_type_vals), 0x0,              \ 
 2800        "HPKE AEAD Id", HFILL }                                         \ 
 2802    { & name .hf.ech_clienthello_type,                                  \ 
 2803      { "Client Hello type", prefix ".ech.client_hello_type",           \ 
 2804        FT_UINT8, BASE_DEC, VALS(tls_hello_ext_ech_clienthello_types), 0x0, \ 
 2805        "Client Hello type", HFILL }                                     \ 
 2807    { & name .hf.ech_cipher_suite,                                      \ 
 2808      { "Cipher Suite", prefix ".ech.cipher_suite",                     \ 
 2809        FT_NONE, BASE_NONE, NULL, 0x0,                                  \ 
 2810        "The cipher suite used to encrypt ClientHelloInner", HFILL }    \ 
 2812    { & name .hf.ech_config_id,                                         \ 
 2813      { "Config Id", prefix ".ech.config_id",                           \ 
 2814        FT_UINT8, BASE_DEC, NULL, 0x0,                                  \ 
 2815        "The ECHConfigContents.key_config.config_id for the chosen ECHConfig", HFILL } \ 
 2817    { & name .hf.ech_enc_length,                                        \ 
 2818      { "Enc length", prefix ".ech.enc_length",                         \ 
 2819        FT_UINT16, BASE_DEC, NULL, 0x0,                                 \ 
 2822    { & name .hf.ech_enc,                                               \ 
 2823      { "Enc", prefix ".ech.enc",                                       \ 
 2824        FT_BYTES, BASE_NONE, NULL, 0x0,                                 \ 
 2825        "The HPKE encapsulated key, used by servers to decrypt the corresponding payload field", HFILL } \ 
 2827    { & name .hf.ech_payload_length,                                    \ 
 2828      { "Payload length", prefix ".ech.payload_length",                 \ 
 2829        FT_UINT16, BASE_DEC, NULL, 0x0,                                 \ 
 2830        "Payload Length", HFILL }                                       \ 
 2832    { & name .hf.ech_payload,                                           \ 
 2833      { "Payload", prefix ".ech.payload",                               \ 
 2834        FT_BYTES, BASE_NONE, NULL, 0x0,                                 \ 
 2835        "The serialized and encrypted ClientHelloInner structure", HFILL } \ 
 2837    { & name .hf.ech_confirmation,                                      \ 
 2838      { "Confirmation", prefix ".ech.confirmation",                     \ 
 2839        FT_BYTES, BASE_NONE, NULL, 0x0,                                 \ 
 2840        "Confirmation of ECH acceptance in a HelloRetryRequest", HFILL } \ 
 2842    { & name .hf.ech_retry_configs,                                     \ 
 2843      { "Retry Configs", prefix ".ech.retry_configs",                   \ 
 2844        FT_NONE, BASE_NONE, NULL, 0x0,                                  \ 
 2845        "ECHConfig structures for one-time use by the client in a retry connection", HFILL } \ 
 2847    { & name .hf.ech_padding_data,                                      \ 
 2848      { "ECH Encrypted Padding", prefix ".ech.encrypted_padding",       \ 
 2849        FT_BYTES, BASE_NONE, NULL, 0x0,                                 \ 
 2850        "Must be zero", HFILL }                                         \ 
 2852    { & name .hf.hs_ext_alps_len,                                       \ 
 2853      { "ALPS Extension Length", prefix ".handshake.extensions_alps_len", \ 
 2854        FT_UINT16, BASE_DEC, NULL, 0x0,                                 \ 
 2855        "Length of the ALPS Extension", HFILL }                         \ 
 2857    { & name .hf.hs_ext_alps_alpn_list,                                 \ 
 2858      { "Supported ALPN List", prefix ".handshake.extensions_alps_alpn_list", \ 
 2859        FT_NONE, BASE_NONE, NULL, 0x0,                                  \ 
 2860        "List of supported ALPN by ALPS", HFILL }                       \ 
 2862    { & name .hf.hs_ext_alps_alpn_str_len,                              \ 
 2863      { "Supported ALPN Length", prefix ".handshake.extensions_alps_alpn_str_len", \ 
 2864        FT_UINT8, BASE_DEC, NULL, 0x0,                                  \ 
 2865        "Length of ALPN string", HFILL }                                \ 
 2867    { & name .hf.hs_ext_alps_alpn_str,                                  \ 
 2868      { "Supported ALPN", prefix ".handshake.extensions_alps_alpn_str", \ 
 2869        FT_STRING, BASE_NONE, NULL, 0x00,                               \ 
 2870        "ALPN supported by ALPS", HFILL }                               \ 
 2872    { & name .hf.hs_ext_alps_settings,                                  \ 
 2873      { "ALPN Opaque Settings", prefix ".handshake.extensions_alps.settings", \ 
 2874        FT_BYTES, BASE_NONE, NULL, 0x00,                                \ 
 2875        "ALPN Opaque Settings", HFILL }                                 \ 
 2880#define SSL_COMMON_ETT_LIST(name)                   \ 
 2881        & name .ett.hs_ext,                         \ 
 2882        & name .ett.hs_ext_alpn,                    \ 
 2883        & name .ett.hs_ext_cert_types,              \ 
 2884        & name .ett.hs_ext_groups,                  \ 
 2885        & name .ett.hs_ext_curves_point_formats,    \ 
 2886        & name .ett.hs_ext_npn,                     \ 
 2887        & name .ett.hs_ext_reneg_info,              \ 
 2888        & name .ett.hs_ext_key_share,               \ 
 2889        & name .ett.hs_ext_key_share_ks,            \ 
 2890        & name .ett.hs_ext_pre_shared_key,          \ 
 2891        & name .ett.hs_ext_psk_identity,            \ 
 2892        & name .ett.hs_ext_psk_binders,             \ 
 2893        & name .ett.hs_ext_psk_binder,              \ 
 2894        & name .ett.hs_ext_server_name,             \ 
 2895        & name .ett.hs_ext_oid_filter,              \ 
 2896        & name .ett.hs_ext_quictp_parameter,        \ 
 2897        & name .ett.hs_ext_trusted_ca_keys,         \ 
 2898        & name .ett.hs_ext_trusted_ca_key,          \ 
 2899        & name .ett.hs_sig_hash_alg,                \ 
 2900        & name .ett.hs_sig_hash_algs,               \ 
 2901        & name .ett.urlhash,                        \ 
 2902        & name .ett.keyex_params,                   \ 
 2903        & name .ett.certificates,                   \ 
 2904        & name .ett.cert_types,                     \ 
 2905        & name .ett.dnames,                         \ 
 2906        & name .ett.hs_random,                      \ 
 2907        & name .ett.cipher_suites,                  \ 
 2908        & name .ett.comp_methods,                   \ 
 2909        & name .ett.session_ticket,                 \ 
 2911        & name .ett.cert_status,                    \ 
 2912        & name .ett.ocsp_response,                  \ 
 2913        & name .ett.uncompressed_certificates,      \ 
 2914        & name .ett.hs_ext_alps,                    \ 
 2915        & name .ett.ech_echconfiglist,              \ 
 2916        & name .ett.ech_echconfig,                  \ 
 2917        & name .ett.ech_retry_configs,              \ 
 2918        & name .ett.ech_hpke_keyconfig,             \ 
 2919        & name .ett.ech_hpke_cipher_suites,         \ 
 2920        & name .ett.ech_hpke_cipher_suite,          \ 
 2921        & name .ett.ech_decrypt,                    \ 
 2922        & name .ett.hs_ext_token_binding_key_parameters, \ 
 2927#define SSL_COMMON_EI_LIST(name, prefix)                       \ 
 2928    { & name .ei.client_version_error, \ 
 2929        { prefix ".handshake.client_version_error", PI_PROTOCOL, PI_WARN, \ 
 2930        "Client Hello legacy version field specifies version 1.3, not version 1.2; some servers may not be able to handle that.", EXPFILL } \ 
 2932    { & name .ei.server_version_error, \ 
 2933        { prefix ".handshake.server_version_error", PI_PROTOCOL, PI_WARN, \ 
 2934        "Server Hello legacy version field specifies version 1.3, not version 1.2; some middleboxes may not be able to handle that.", EXPFILL } \ 
 2936    { & name .ei.legacy_version, \ 
 2937        { prefix ".handshake.legacy_version", PI_DEPRECATED, PI_CHAT, \ 
 2938        "This legacy_version field MUST be ignored. The supported_versions extension is present and MUST be used instead.", EXPFILL } \ 
 2940    { & name .ei.malformed_vector_length, \ 
 2941        { prefix ".malformed.vector_length", PI_PROTOCOL, PI_WARN, \ 
 2942        "Variable vector length is outside the permitted range", EXPFILL } \ 
 2944    { & name .ei.malformed_buffer_too_small, \ 
 2945        { prefix ".malformed.buffer_too_small", PI_MALFORMED, PI_ERROR, \ 
 2946        "Malformed message, not enough data is available", EXPFILL } \ 
 2948    { & name .ei.malformed_trailing_data, \ 
 2949        { prefix ".malformed.trailing_data", PI_PROTOCOL, PI_WARN, \ 
 2950        "Undecoded trailing data is present", EXPFILL } \ 
 2952    { & name .ei.hs_ext_cert_status_undecoded, \ 
 2953        { prefix ".handshake.status_request.undecoded", PI_UNDECODED, PI_NOTE, \ 
 2954        "Responder ID list or Request Extensions are not implemented", EXPFILL } \ 
 2956    { & name .ei.hs_ciphersuite_undecoded, \ 
 2957        { prefix ".handshake.ciphersuite.undecoded", PI_UNDECODED, PI_NOTE, \ 
 2958        "Ciphersuite not implemented", EXPFILL } \ 
 2960    { & name .ei.hs_srv_keyex_illegal, \ 
 2961        { prefix ".handshake.server_keyex_illegal", PI_PROTOCOL, PI_WARN, \ 
 2962        "It is not legal to send the ServerKeyExchange message for this ciphersuite", EXPFILL } \ 
 2964    { & name .ei.resumed, \ 
 2965        { prefix ".resumed", PI_SEQUENCE, PI_NOTE, \ 
 2966        "This session reuses previously negotiated keys (Session resumption)", EXPFILL } \ 
 2968    { & name .ei.record_length_invalid, \ 
 2969        { prefix ".record.length.invalid", PI_PROTOCOL, PI_ERROR, \ 
 2970        "Record fragment length is too small or too large", EXPFILL } \ 
 2972    { & name .ei.decompression_error, \ 
 2973        { prefix ".decompression_error", PI_PROTOCOL, PI_ERROR, \ 
 2974        "Decompression error", EXPFILL } \ 
 2976    { & name .ei.ech_echconfig_invalid_version, \ 
 2977        { prefix ".ech_echconfig_invalid_version", PI_PROTOCOL, PI_ERROR, \ 
 2978        "Invalid/unknown ECHConfig version", EXPFILL } \ 
 2980    { & name .ei.ech_accepted, \ 
 2981        { prefix ".ech_accepted", PI_PROTOCOL, PI_NOTE, \ 
 2982        "Calculated ECH Confirmation matches Server Random bytes, ECH was accepted", EXPFILL } \ 
 2984    { & name .ei.ech_rejected, \ 
 2985        { prefix ".ech_rejected", PI_PROTOCOL, PI_WARN, \ 
 2986        "Calculated ECH Confirmation does not match Server Random bytes, ECH was rejected", EXPFILL } \ 
 2991ssl_common_register_ssl_alpn_dissector_table(
const char *name,
 
 2992    const char *ui_name, 
const int proto);
 
 2995ssl_common_register_dtls_alpn_dissector_table(
const char *name,
 
 2996    const char *ui_name, 
const int proto);
 
 3001#ifdef SSL_DECRYPT_DEBUG 
 3003ssl_debug_printf(
const char* fmt,...) G_GNUC_PRINTF(1,2);
 
 3005ssl_print_data(const 
char* name, const 
unsigned char* data, 
size_t len);
 
 3007ssl_print_string(const 
char* name, const 
StringInfo* data);
 
 3009ssl_set_debug(const 
char* name);
 
 3011ssl_debug_flush(
void);
 
 3015static inline void G_GNUC_PRINTF(1,2)
 
 3016ssl_debug_printf(const 
char* fmt _U_,...)
 
 3019#define ssl_print_data(a, b, c) 
 3020#define ssl_print_string(a, b) 
 3021#define ssl_set_debug(name) 
 3022#define ssl_debug_flush() 
 3029                                  proto_tree *tree, uint32_t offset, uint32_t offset_end);
 
Definition packet-tls-utils.h:339
Definition packet-tls-utils.h:355
StringInfo dtls13_aad
Definition packet-tls-utils.h:366
StringInfo app_traffic_secret
Definition packet-tls-utils.h:369
uint64_t seq
Definition packet-tls-utils.h:365
Definition packet-tls-utils.c:2867
Definition packet-tls-utils.h:533
Definition packet-tls-utils.h:347
Definition packet-tls-utils.h:431
SslFlow * flow
Definition packet-tls-utils.h:441
uint64_t record_seq
Definition packet-tls-utils.h:443
uint32_t seq
Definition packet-tls-utils.h:444
unsigned content_len
Definition packet-tls-utils.h:436
unsigned plain_data_len
Definition packet-tls-utils.h:433
int id
Definition packet-tls-utils.h:438
ContentType type
Definition packet-tls-utils.h:440
unsigned char * plain_data
Definition packet-tls-utils.h:432
Definition packet-tls-utils.h:471
Definition packet-tls-utils.h:264
Definition packet-tls-utils.h:452
unsigned reassembly_id
Definition packet-tls-utils.h:455
uint8_t type
Definition packet-tls-utils.h:457
int is_last
Definition packet-tls-utils.h:458
uint32_t offset
Definition packet-tls-utils.h:456
unsigned record_id
Definition packet-tls-utils.h:453
Definition packet_info.h:43
Definition value_string.h:570
Definition packet-tls-utils.h:575
Mapping between a 64-bit integer value and its string representation.
Definition value_string.h:196
Extended metadata for a value_string array.
Definition value_string.h:325
Mapping between a 32-bit integer value and its string representation.
Definition value_string.h:33
Internal memory allocator interface used by the wmem subsystem.
Definition wmem_allocator.h:34
Definition wmem_list.c:23
Internal structure representing a wmem-allocated string buffer.
Definition wmem_strbuf.h:38
Internal representation of a wmem balanced tree.
Definition wmem_tree-int.h:81
Definition packet-tls-utils.h:426
Definition packet-tls-utils.h:462
Definition packet-tls-utils.h:569
Definition conversation.h:230
Definition packet-tls-utils.h:1251
Definition epan_dissect.h:28
Definition packet-tls-utils.h:1266
Definition prefs-int.h:27
Definition packet-tls-utils.h:874
Definition packet-tls-utils.h:583
Definition packet-tls-utils.h:1259
Definition packet-tls-utils.h:589
Definition tvbuff-int.h:35
tap_packet_status
Definition tap.h:25