diff --git a/epan/dissectors/packet-ssl-utils.c b/epan/dissectors/packet-ssl-utils.c index 2f91a37cfd..325a751c5c 100644 --- a/epan/dissectors/packet-ssl-utils.c +++ b/epan/dissectors/packet-ssl-utils.c @@ -1408,6 +1408,7 @@ const value_string quic_transport_parameter_id[] = { { SSL_HND_QUIC_TP_IDLE_TIMEOUT, "idle_timeout" }, { SSL_HND_QUIC_TP_OMIT_CONNECTION_ID, "omit_connection_id" }, { SSL_HND_QUIC_TP_MAX_PACKET_SIZE, "max_packet_size" }, + { SSL_HND_QUIC_TP_STATELESS_RESET_TOKEN, "stateless_reset_token" }, { 0, NULL } }; @@ -6347,6 +6348,7 @@ ssl_dissect_hnd_hello_ext_quic_transport_parameters(ssl_common_dissect_t *hf, tv * idle_timeout(3), * truncate_connection_id(4), * max_packet_size(5), + * stateless_reset_token(6), * (65535) * } TransportParameterId; * @@ -6463,6 +6465,11 @@ ssl_dissect_hnd_hello_ext_quic_transport_parameters(ssl_common_dissect_t *hf, tv /*TODO display expert info about invalid value (< 1252 or >65527) ? */ offset += 2; break; + case SSL_HND_QUIC_TP_STATELESS_RESET_TOKEN: + proto_tree_add_item(parameter_tree, hf->hf.hs_ext_quictp_parameter_stateless_reset_token, + tvb, offset, 16, ENC_BIG_ENDIAN); + offset += 16; + break; default: offset += parameter_length; /*TODO display expert info about unknown ? */ diff --git a/epan/dissectors/packet-ssl-utils.h b/epan/dissectors/packet-ssl-utils.h index cc1cf3c4fe..f20ea7d5c5 100644 --- a/epan/dissectors/packet-ssl-utils.h +++ b/epan/dissectors/packet-ssl-utils.h @@ -210,6 +210,7 @@ typedef enum { #define SSL_HND_QUIC_TP_IDLE_TIMEOUT 3 #define SSL_HND_QUIC_TP_OMIT_CONNECTION_ID 4 #define SSL_HND_QUIC_TP_MAX_PACKET_SIZE 5 +#define SSL_HND_QUIC_TP_STATELESS_RESET_TOKEN 6 /* * Lookup tables */ @@ -842,6 +843,7 @@ typedef struct ssl_common_dissect { gint hs_ext_quictp_parameter_initial_max_stream_id; gint hs_ext_quictp_parameter_idle_timeout; gint hs_ext_quictp_parameter_max_packet_size; + gint hs_ext_quictp_parameter_stateless_reset_token; /* do not forget to update SSL_COMMON_LIST_T and SSL_COMMON_HF_LIST! */ } hf; @@ -1038,7 +1040,7 @@ ssl_common_dissect_t name = { \ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, \ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, \ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, \ - -1, -1, -1, -1, -1, -1, -1, -1, -1, \ + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, \ }, \ /* ett */ { \ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, \ @@ -1818,6 +1820,11 @@ ssl_common_dissect_t name = { \ { "max_packet_size", prefix ".quic.parameter.max_packet_size", \ FT_UINT16, BASE_DEC, NULL, 0x00, \ "Indicates that packets larger than this limit will be dropped", HFILL } \ + }, \ + { & name .hf.hs_ext_quictp_parameter_stateless_reset_token, \ + { "stateless_reset_token", prefix ".quic.parameter.stateless_reset_token", \ + FT_BYTES, BASE_NONE, NULL, 0x00, \ + "Used in verifying a stateless reset", HFILL } \ } /* }}} */