Wireshark-commits: [Wireshark-commits] master 93ed726: ssl, dtls, ssl-utils: Prepare for STARTTLS h
From: Wireshark code review <code-review-do-not-reply@xxxxxxxxxxxxx>
Date: Mon, 9 Feb 2015 14:00:43 +0000 (UTC)
URL: https://code.wireshark.org/review/gitweb?p=wireshark.git;a=commit;h=93ed72642b3bc0771c6099c4861a39c080040b0e Submitter: Michael Mann (mmann78@xxxxxxxxxxxx) Changed: branch: master Repository: wireshark Commits: 93ed726 by Peter Wu (peter@xxxxxxxxxxxxx): ssl,dtls,ssl-utils: Prepare for STARTTLS handling All STARTTLS-like dissectors (protocols which can switch to SSL/TLS after a protocol command) currently fail to get called after decryption. The reason for this is that the port is not registered for SSL dissection via ssl_dissector_add. Besides this, the MySQL dissector breaks in the event of multiple segments because it does not properly set desegmentation. The call path TCP | App | SSL | App is a bad, error-prone pattern which requires duplication of required functionality in dissectors. This patch enables to bypass the App (TCP | SSL | App) by registering a SSL as conversation dissector after a STARTTLS switch. Logical overview of changes: - Move srv_addr, srv_ptype and srv_port to SslSession and adjust the users. This allows passing SslSession around which will never be null unlike SslDecryptSession. This is needed for looking up the packet direction (server or client) before calling a subdissector. - Add app_handle to store the dissector and last_nontls_frame the frame that initiated STARTTLS. - The same app_handle is now used to store the dissector handle from a ssl association. - Moved conversation data (SslDecryptSession) to ssl-utils to avoid code duplication. Merge ssl_session_init into it. The new ssl_session_get() is needed for STARTTLS frame/handle storage. - Introduce new "ssl_starttls_ack" function to signal the last non-TLS packet. - Ensure that match_uint is set before calling the conversation dissector. This ensures that dissectors using match_uint to check the direction of a packet (client vs. server) see the TCP port instead of the IP proto. At least the MySQL and SMTP dissectors require such special treatment. - Move epan/conversation.h outside HAVE_LIBGNUTLS, remove from dtls (as it is already included by ssl-utils). - Various comment/debug string updates. Remove outdated comment before SSL association lookup. Besides setting match_uint and caching the app_handle, existing dissectors should not be affected by this patch. Follow-up patches will update existing dissectors to use the new ssl_starttls_ack interface. Bug: 9515 Change-Id: I795d16b6a901e672a5d89e922adc7e5bbcda0333 Reviewed-on: https://code.wireshark.org/review/6872 Reviewed-by: Alexis La Goutte <alexis.lagoutte@xxxxxxxxx> Petri-Dish: Alexis La Goutte <alexis.lagoutte@xxxxxxxxx> Tested-by: Petri Dish Buildbot <buildbot-no-reply@xxxxxxxxxxxxx> Reviewed-by: Michael Mann <mmann78@xxxxxxxxxxxx> Actions performed: from 5b2a05c [IS-IS LSP] Add support for Adj-SID & LAN-Adj-SID subTLV adds 93ed726 ssl,dtls,ssl-utils: Prepare for STARTTLS handling Summary of changes: epan/dissectors/packet-dtls.c | 80 ++++++++++++++++---------- epan/dissectors/packet-ssl-utils.c | 85 +++++++++++++++++++++++----- epan/dissectors/packet-ssl-utils.h | 43 ++++++++++---- epan/dissectors/packet-ssl.c | 109 ++++++++++++++++++------------------ 4 files changed, 207 insertions(+), 110 deletions(-)
- Prev by Date: [Wireshark-commits] buildbot failure in Wireshark (development) on Visual Studio Code Analysis
- Next by Date: [Wireshark-commits] master e190253: Fix STARTTLS handling in various dissectors
- Previous by thread: [Wireshark-commits] master 5b2a05c: [IS-IS LSP] Add support for Adj-SID & LAN-Adj-SID subTLV
- Next by thread: [Wireshark-commits] master e190253: Fix STARTTLS handling in various dissectors
- Index(es):