diff options
author | Alexis La Goutte <alexis.lagoutte@gmail.com> | 2018-09-23 20:32:21 +0200 |
---|---|---|
committer | Anders Broman <a.broman58@gmail.com> | 2018-09-30 08:13:43 +0000 |
commit | 342088f8b80bc065bb23b0f33460951ebab30184 (patch) | |
tree | 79b0f669211d41c360c25a5f4caea34e03830381 /epan/dissectors/packet-tls-utils.h | |
parent | 88f74fb6268356bd742658cd7ae39bad33fbf6bb (diff) |
TLS: Add compress_certificate Handshaketype (25)
See https://tools.ietf.org/html/draft-ietf-tls-certificate-compression-03
the value is TEMPORARY registered to IANA (registered 2018-05-23, expires 2019-05-23
Change-Id: I5a91ad4f1366cd7f0fa077677f227a66591494b6
Reviewed-on: https://code.wireshark.org/review/29796
Reviewed-by: Peter Wu <peter@lekensteyn.nl>
Petri-Dish: Peter Wu <peter@lekensteyn.nl>
Tested-by: Petri Dish Buildbot
Reviewed-by: Anders Broman <a.broman58@gmail.com>
Diffstat (limited to 'epan/dissectors/packet-tls-utils.h')
-rw-r--r-- | epan/dissectors/packet-tls-utils.h | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/epan/dissectors/packet-tls-utils.h b/epan/dissectors/packet-tls-utils.h index 94e8d45200..fcb4634854 100644 --- a/epan/dissectors/packet-tls-utils.h +++ b/epan/dissectors/packet-tls-utils.h @@ -62,6 +62,7 @@ typedef enum { SSL_HND_CERT_STATUS = 22, SSL_HND_SUPPLEMENTAL_DATA = 23, SSL_HND_KEY_UPDATE = 24, + SSL_HND_COMPRESSED_CERTIFICATE = 25, /* Encrypted Extensions was NextProtocol in draft-agl-tls-nextprotoneg-03 * and changed in draft 04. Not to be confused with TLS 1.3 EE. */ SSL_HND_ENCRYPTED_EXTS = 67 @@ -846,6 +847,9 @@ typedef struct ssl_common_dissect { /* compress_certificate */ gint hs_ext_compress_certificate_algorithms_length; gint hs_ext_compress_certificate_algorithm; + gint hs_ext_compress_certificate_uncompressed_length; + gint hs_ext_compress_certificate_compressed_certificate_message_length; + gint hs_ext_compress_certificate_compressed_certificate_message; /* QUIC Transport Parameters */ gint hs_ext_quictp_negotiated_version; @@ -1084,6 +1088,11 @@ tls13_hkdf_expand_label(int md, const StringInfo *secret, const char *label_prefix, const char *label, guint16 out_len, guchar **out); +extern void +ssl_dissect_hnd_compress_certificate(ssl_common_dissect_t *hf, tvbuff_t *tvb, proto_tree *tree, + guint32 offset, guint32 offset_end, packet_info *pinfo, + SslSession *session _U_, SslDecryptSession *ssl _U_, + GHashTable *key_hash _U_, gboolean is_from_server _U_, gboolean is_dtls _U_); /* {{{ */ #define SSL_COMMON_LIST_T(name) \ ssl_common_dissect_t name = { \ @@ -1099,6 +1108,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, \ }, \ /* ett */ { \ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, \ @@ -1829,6 +1839,21 @@ ssl_common_dissect_t name = { \ FT_UINT16, BASE_DEC, VALS(compress_certificate_algorithm_vals), 0x00, \ NULL, HFILL } \ }, \ + { & name .hf.hs_ext_compress_certificate_uncompressed_length, \ + { "Uncompressed Length", prefix ".compress_certificate.uncompressed_length", \ + FT_UINT24, BASE_DEC, NULL, 0x00, \ + NULL, HFILL } \ + }, \ + { & name .hf.hs_ext_compress_certificate_compressed_certificate_message_length, \ + { "Length", prefix ".compress_certificate.compressed_certificate_message.length", \ + FT_UINT24, BASE_DEC, NULL, 0x00, \ + NULL, HFILL } \ + }, \ + { & name .hf.hs_ext_compress_certificate_compressed_certificate_message, \ + { "Compressed Certificate Message", prefix ".compress_certificate.compressed_certificate_message", \ + FT_BYTES, BASE_NONE, NULL, 0x00, \ + NULL, HFILL } \ + }, \ { & name .hf.hs_ext_quictp_negotiated_version, \ { "Negotiated Version", prefix ".quic.negotiated_version", \ FT_UINT32, BASE_HEX, VALS(quic_version_vals), 0x00, \ |