From 93ea780e7ce2f490ff442db5abc9253e4b7d8e03 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Stig=20Bj=C3=B8rlykke?= Date: Sun, 18 Oct 2020 23:15:26 +0200 Subject: [PATCH] tls/dtls: Add a generated field for Application Data Protocol --- epan/dissectors/packet-dtls.c | 11 +++++++++++ epan/dissectors/packet-tls.c | 12 +++++++++++- 2 files changed, 22 insertions(+), 1 deletion(-) diff --git a/epan/dissectors/packet-dtls.c b/epan/dissectors/packet-dtls.c index 4fa5191316..f36bc2247d 100644 --- a/epan/dissectors/packet-dtls.c +++ b/epan/dissectors/packet-dtls.c @@ -97,6 +97,7 @@ static gint hf_dtls_record_sequence_number = -1; static gint hf_dtls_record_connection_id = -1; static gint hf_dtls_record_length = -1; static gint hf_dtls_record_appdata = -1; +static gint hf_dtls_record_appdata_proto = -1; static gint hf_dtls_record_encrypted_content = -1; static gint hf_dtls_alert_message = -1; static gint hf_dtls_alert_message_level = -1; @@ -969,6 +970,11 @@ dissect_dtls_record(tvbuff_t *tvb, packet_info *pinfo, proto_tree_add_item(dtls_record_tree, hf_dtls_record_appdata, tvb, offset, record_length, ENC_NA); + if (session->app_handle) { + ti = proto_tree_add_string(dtls_record_tree, hf_dtls_record_appdata_proto, tvb, 0, 0, dissector_handle_get_dissector_name(session->app_handle)); + proto_item_set_generated(ti); + } + /* show decrypted data info, if available */ if (decrypted) { @@ -1901,6 +1907,11 @@ proto_register_dtls(void) FT_BYTES, BASE_NONE, NULL, 0x0, "Payload is encrypted application data", HFILL } }, + { &hf_dtls_record_appdata_proto, + { "Application Data Protocol", "dtls.app_data_proto", + FT_STRING, BASE_NONE, NULL, 0x0, + NULL, HFILL } + }, { &hf_dtls_record_encrypted_content, { "Encrypted Record Content", "dtls.enc_content", FT_BYTES, BASE_NONE, NULL, 0x0, diff --git a/epan/dissectors/packet-tls.c b/epan/dissectors/packet-tls.c index 410b1074ca..2f86795815 100644 --- a/epan/dissectors/packet-tls.c +++ b/epan/dissectors/packet-tls.c @@ -100,6 +100,7 @@ static gint hf_tls_record_opaque_type = -1; static gint hf_tls_record_version = -1; static gint hf_tls_record_length = -1; static gint hf_tls_record_appdata = -1; +static gint hf_tls_record_appdata_proto = -1; static gint hf_ssl2_record = -1; static gint hf_ssl2_record_is_escape = -1; static gint hf_ssl2_record_padding_length = -1; @@ -2034,6 +2035,11 @@ dissect_ssl3_record(tvbuff_t *tvb, packet_info *pinfo, proto_tree_add_item(ssl_record_tree, hf_tls_record_appdata, tvb, offset, record_length, ENC_NA); + if (app_handle) { + ti = proto_tree_add_string(ssl_record_tree, hf_tls_record_appdata_proto, tvb, 0, 0, dissector_handle_get_dissector_name(app_handle)); + proto_item_set_generated(ti); + } + if (decrypted) { dissect_ssl_payload(decrypted, pinfo, tree, session, record, app_handle); } @@ -4168,7 +4174,11 @@ proto_register_tls(void) FT_BYTES, BASE_NONE, NULL, 0x0, "Payload is encrypted application data", HFILL } }, - + { &hf_tls_record_appdata_proto, + { "Application Data Protocol", "tls.app_data_proto", + FT_STRING, BASE_NONE, NULL, 0x0, + NULL, HFILL } + }, { &hf_ssl2_record, { "SSLv2 Record Header", "tls.record", FT_NONE, BASE_NONE, NULL, 0x0,