summaryrefslogtreecommitdiff
path: root/epan/dissectors/packet-ssl-utils.c
AgeCommit message (Collapse)AuthorFilesLines
2017-06-06ssl-utils: Build with -Wshorten-64-to-32Stig Bjørlykke1-2/+2
[...]/wireshark/epan/dissectors/packet-ssl-utils.c:3556:7: error: implicit conversion loses integer precision: 'size_t' (aka 'unsigned long') to 'gint' (aka 'int') [-Werror,-Wshorten-64-to-32] i=rsa_decrypt_inplace(encrypted_pre_master->data_len, ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Change-Id: I1bfdef1bfa451f5098bc6c12c1b4cc57c7de4fdd Reviewed-on: https://code.wireshark.org/review/21976 Petri-Dish: Stig Bjørlykke <stig@bjorlykke.org> Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org> Reviewed-by: Stig Bjørlykke <stig@bjorlykke.org>
2017-06-05Move RSA key loading and decryption functions to wsutilAhmad Fatoum1-410/+21
Loading PEM and PKCS#11 keys was being done in static functions in packet-ssl-utils.c. These were moved to wsutil, with prototypes in a new <wsutil/rsa.h> header. This adds gnutls as optional dependency to wsutil. The RSA decryption helper was also moved and is now provided in <wsutil/wsgcrypt.h>. This allows more dissectors to access this functionality. Change-Id: I6cfbbf5203f2881c82bad721747834ccd76e2033 Reviewed-on: https://code.wireshark.org/review/21941 Reviewed-by: Peter Wu <peter@lekensteyn.nl> Petri-Dish: Peter Wu <peter@lekensteyn.nl> Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org> Reviewed-by: Michael Mann <mmann78@netscape.net>
2017-06-02Add ChaCha20-Poly1305 decryption support for TLS 1.2 and 1.3Peter Wu1-12/+50
Implements all seven AEAD_CHACHA20_POLY1305 cipher suites from RFC 7905 (for TLS 1.2) and the final missing one for TLS 1.3 (draft -20). New test captures (created using OpenSSL_1_1_0-pre6-2528-g042597b0a) also serve as tests for TLS 1.3 decryption support. Change-Id: Ice6d639c9c7b7bc23a6ff5fb4832d02694abd8c4 Ping-Bug: 12779 Reviewed-on: https://code.wireshark.org/review/21902 Reviewed-by: Alexis La Goutte <alexis.lagoutte@gmail.com> Petri-Dish: Peter Wu <peter@lekensteyn.nl> Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org> Reviewed-by: Peter Wu <peter@lekensteyn.nl>
2017-06-02ssl-utils: fix regression in decryption and Follow SSL StreamPeter Wu1-1/+1
Store SslPacketInfo under the same key as used by p_get_proto_data and pass this data to the Follow SSL tap. Change-Id: If9b97d0e0e2a82562abe6cb9e61986744680066d Fixes: v2.3.0rc0-3740-ge1f84f985e ("Fix Decode As for protocols that may use tunneling.") Reviewed-on: https://code.wireshark.org/review/21893 Petri-Dish: Peter Wu <peter@lekensteyn.nl> Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org> Reviewed-by: Michael Mann <mmann78@netscape.net>
2017-06-02Fix Decode As for protocols that may use tunneling.Irene Ruengeler1-2/+4
Dissectors that rely on pinfo structure information may have the data overwritten if the data is tunneled. Address it by using proto data that is based on pinfo->curr_layer_num. Bug: 13746 Change-Id: I1c29f26a3c49f368876f0e96908705bc9c099ce1 Reviewed-on: https://code.wireshark.org/review/21559 Petri-Dish: Michael Mann <mmann78@netscape.net> Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org> Reviewed-by: Peter Wu <peter@lekensteyn.nl> Reviewed-by: Michael Mann <mmann78@netscape.net>
2017-05-19TLS: Add Reserved Extension type from GREASEAlexis La Goutte1-0/+16
See https://tools.ietf.org/html/draft-ietf-tls-grease Change-Id: I305a35c50f6aa94f94f20974babb7c871393f9e7 Reviewed-on: https://code.wireshark.org/review/21706 Petri-Dish: Alexis La Goutte <alexis.lagoutte@gmail.com> Reviewed-by: Peter Wu <peter@lekensteyn.nl>
2017-05-19TLS: add Reserved Supported Group from GREASEAlexis La Goutte1-0/+16
See https://tools.ietf.org/html/draft-ietf-tls-grease Change-Id: Iaf5ec11eba3b28cff5d292326166eae26fabda99 Reviewed-on: https://code.wireshark.org/review/21705 Reviewed-by: Peter Wu <peter@lekensteyn.nl>
2017-05-19TLS: Update list of Supported Groups RegistryAlexis La Goutte1-2/+2
https://www.iana.org/assignments/tls-parameters/tls-parameters.xhtml#tls-parameters-8 Change-Id: I5beca54eb4dc644647b0f40ec005d8e3bf23222f Reviewed-on: https://code.wireshark.org/review/21704 Reviewed-by: Peter Wu <peter@lekensteyn.nl>
2017-05-19TLS: Update draft tls-chacha20poly1305 to RFC 7905Alexis La Goutte1-25/+1
and also remove some blankline Change-Id: I5e66a64c95697f8e92d346b7b4c8956eadf967d3 Reviewed-on: https://code.wireshark.org/review/19955 Petri-Dish: Peter Wu <peter@lekensteyn.nl> Reviewed-by: Peter Wu <peter@lekensteyn.nl>
2017-05-19TLS: Add Reserved cipher from GREASEAlexis La Goutte1-0/+22
See https://tools.ietf.org/html/draft-ietf-tls-grease Change-Id: I890e33a6b5afb51d768b0264023b51682642f867 Reviewed-on: https://code.wireshark.org/review/19871 Reviewed-by: Peter Wu <peter@lekensteyn.nl>
2017-05-14ssl,dtls: fix message hash for extended_master_secretPeter Wu1-1/+5
The handshake_messages for extended master secret start at Client Hello and end at ClientKeyExchange. Previously all handshake messages in a record would be hashed, possibly covering those after CKE. Now it will hash each handshake message separately. For DTLS, the CH and HVR messages must also be ignored. Additionally, DTLS needs special treatment to merge multiple fragments. Bug: 13704 Change-Id: I0c8f19b4c352c0195848ded319b6991d76542720 Reviewed-on: https://code.wireshark.org/review/21625 Reviewed-by: Peter Wu <peter@lekensteyn.nl> Petri-Dish: Peter Wu <peter@lekensteyn.nl> Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org> Reviewed-by: Alexis La Goutte <alexis.lagoutte@gmail.com>
2017-05-03TLS13: update HKDF-Expand-Label for draft -20Peter Wu1-9/+21
This is needed for decryption to work in draft -20. Since lots of implementations are still at draft -18, maintain decryption support for older draft versions. Tested with tls13.pcapng (attachment 15156). Change-Id: Ieb7d85136221573007b529b40e4eadc60eac174f Ping-Bug: 12779 Reviewed-on: https://code.wireshark.org/review/21467 Petri-Dish: Peter Wu <peter@lekensteyn.nl> Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org> Reviewed-by: Alexis La Goutte <alexis.lagoutte@gmail.com> Reviewed-by: Peter Wu <peter@lekensteyn.nl>
2017-05-03TLS13: update Certificate dissection for draft -20Peter Wu1-84/+91
RawPublicKey (RFC 7250) has been incorporated in the Certificate message, update the definition and restructure the code accordingly. No functional change for X.509 certs, but RPK types will now be correctly handled for TLS 1.3 (including the context and extensions). Ran the test suite and tested for regressions using rpk-certficate-message.pcapng from bug 11480. Change-Id: If551a30344851313430201cb6d6198b2091efc2d Ping-Bug: 12779 Reviewed-on: https://code.wireshark.org/review/21466 Petri-Dish: Alexis La Goutte <alexis.lagoutte@gmail.com> Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org> Reviewed-by: Peter Wu <peter@lekensteyn.nl>
2017-05-02TLS (1.3): Add new extension 'post_handshake_auth' add on draft 20Alexis La Goutte1-0/+3
The "extension_data" field is zero length. Ping-Bug: 12779 Change-Id: I7a512d7940f55a5edf2c4f71bf1684c3d4e4733a Reviewed-on: https://code.wireshark.org/review/21465 Petri-Dish: Peter Wu <peter@lekensteyn.nl> Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org> Reviewed-by: Peter Wu <peter@lekensteyn.nl>
2017-05-02TLS: Add support of TLS 1.3 (draft 20)Alexis La Goutte1-0/+1
Ping-Bug: 12779 Change-Id: I6c54f7c4d793a99e448cbfe6b2971cae418f2d39 Reviewed-on: https://code.wireshark.org/review/21464 Petri-Dish: Peter Wu <peter@lekensteyn.nl> Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org> Reviewed-by: Peter Wu <peter@lekensteyn.nl>
2017-04-17Qt: Provide both file save and open preferencesAhmad Fatoum1-1/+1
This is a breaking change. prefs_register_filename_preference hasn't been differentiating between files to be saved and ones to be opened. On GTK, a neutral dialog is used, so no problems there. On Qt, a save dialog has been always used, even in dissectors that were reading configuration files without modification. prefs_register_filename_preference now takes an argument to indicate whether UI could be a save dialog with a warning on overwriting a file, or whether it's a general purpose open file dialog. Qt now does this. Previously no warning was shown on overwriting a file, so it may be used for opening files too without irritating the user. This has been changed, as non-destructive reads should now use the open dialog. Dissectors were changed accordingly. Change-Id: I9087fefa5ee7ca58de0775d4fe2c0fdcfa3a3018 Reviewed-on: https://code.wireshark.org/review/21086 Petri-Dish: Peter Wu <peter@lekensteyn.nl> Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org> Reviewed-by: Peter Wu <peter@lekensteyn.nl>
2017-04-08Clean up handling of enabled/disabled protocols/heuristic dissectors.Guy Harris1-1/+1
Add a "report a warning message" routine to the "report_err" code in libwsutil, and rename files and routines appropriately, as they don't only handle errors any more. Have a routine read_enabled_and_disabled_protos() that reads all the files that enable or disable protocols or heuristic dissectors, enables and disables them based on the contents of those files, and reports errors itself (as warnings) using the new "report a warning message" routine. Fix that error reporting to report separately on the disabled protocols, enabled protocols, and heuristic dissectors files. Have a routine to set up the enabled and disabled protocols and heuristic dissectors from the command-line arguments, so it's done the same way in all programs. If we try to enable or disable an unknown heuristic dissector via a command-line argument, report an error. Update a bunch of comments. Update the name of disabled_protos_cleanup(), as it cleans up information for disabled *and* enabled protocols and for heuristic dissectors. Support the command-line flags to enable and disable protocols and heuristic dissectors in tfshark. Change-Id: I9b8bd29947cccdf6dc34a0540b5509ef941391df Reviewed-on: https://code.wireshark.org/review/20966 Reviewed-by: Guy Harris <guy@alum.mit.edu>
2017-03-30ssl-utils: fix a couple of uninitialized variablesChema Gonzalez1-2/+2
Fixed these (false-positive) warnings: epan/dissectors/packet-ssl-utils.c:4149:30: error: 'mac_frag' may be used uninitialized in this function [-Werror=maybe-uninitialized] epan/dissectors/packet-ssl-utils.c:4149:30: error: 'mac_fraglen' may be used uninitialized in this function [-Werror=maybe-uninitialized] else if(tls_check_mac(decoder,ct,TLSV1_VERSION,mac_frag,mac_fraglen,mac)>= 0) { Change-Id: I282d5d60d96953858844deeaaf2069ffed3fabca Reviewed-on: https://code.wireshark.org/review/20793 Petri-Dish: Alexis La Goutte <alexis.lagoutte@gmail.com> Reviewed-by: Peter Wu <peter@lekensteyn.nl> Reviewed-by: Michael Mann <mmann78@netscape.net>
2017-03-29TLS: fix decryption with Encrypt-then-MAC (RFC 7366)Peter Wu1-13/+51
Bug: 13522 Change-Id: I0dfe30e086c3ef1a4f96f22e2db46e4d4cc7dffa Reviewed-on: https://code.wireshark.org/review/20771 Petri-Dish: Peter Wu <peter@lekensteyn.nl> Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org> Reviewed-by: Alexis La Goutte <alexis.lagoutte@gmail.com>
2017-03-20TLS13: add oid_filters(48) extension for draft -19Peter Wu1-0/+71
Change-Id: I80b05bc81e77a70f2e0c8e1fe706ce5bd0a33981 Ping-Bug: 12779 Reviewed-on: https://code.wireshark.org/review/20593 Reviewed-by: Alexis La Goutte <alexis.lagoutte@gmail.com> Petri-Dish: Alexis La Goutte <alexis.lagoutte@gmail.com> Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org> Reviewed-by: Michael Mann <mmann78@netscape.net>
2017-03-20TLS13: fix key expansion for AES256Peter Wu1-1/+1
"key_len" refers to the key length of an algorithm, not the block size. For AES128 both are the same, but for AES256 it is different. Change-Id: Ic657265d90323eb224b133b23232cb809264ab64 Ping-Bug: 12779 Reviewed-on: https://code.wireshark.org/review/20598 Reviewed-by: Alexis La Goutte <alexis.lagoutte@gmail.com> Petri-Dish: Alexis La Goutte <alexis.lagoutte@gmail.com> Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org> Reviewed-by: Michael Mann <mmann78@netscape.net>
2017-03-19TLS13: update pre_shared_key lengths for draft -19Peter Wu1-7/+7
Change-Id: Idb9741fba0a2dfcad503e7bd033311bffd54a022 Ping-Bug: 12779 Reviewed-on: https://code.wireshark.org/review/20592 Reviewed-by: Anders Broman <a.broman58@gmail.com>
2017-03-19TLS13: update HRR for draft -19Peter Wu1-1/+6
Change-Id: I4b229350fbc6740b307e52086cc0529a888c8eb4 Ping-Bug: 12779 Reviewed-on: https://code.wireshark.org/review/20587 Reviewed-by: Alexis La Goutte <alexis.lagoutte@gmail.com> Reviewed-by: Anders Broman <a.broman58@gmail.com>
2017-03-19TLS13: update CertificateRequest dissection for draft -19Peter Wu1-48/+56
Removed supported_signature_algorithms and certificate_authorities dissection for TLS 1.3. In preparation for certificate_authorities, extract the certificate_authorities dissection. Change-Id: I58884b02744ac53f226d3a3e6c491219f58facc0 Ping-Bug: 12779 Reviewed-on: https://code.wireshark.org/review/20588 Reviewed-by: Alexis La Goutte <alexis.lagoutte@gmail.com> Reviewed-by: Michael Mann <mmann78@netscape.net>
2017-03-18TLS13: update end_of_early_data to draft -19Peter Wu1-0/+2
It changed from an alert to a handshake message. Change-Id: Ic24776e612a291153290543ba1ec8680d9d74264 Ping-Bug: 12779 Reviewed-on: https://code.wireshark.org/review/20586 Reviewed-by: Alexis La Goutte <alexis.lagoutte@gmail.com> Petri-Dish: Alexis La Goutte <alexis.lagoutte@gmail.com> Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org> Reviewed-by: Michael Mann <mmann78@netscape.net>
2017-03-18TLS13: add certificate_authorities (47) dissection for draft -19Peter Wu1-0/+17
Ping-Bug: 12779 Change-Id: Ic21869f73ffa1ac29b6a50102030eca85f533d37 Reviewed-on: https://code.wireshark.org/review/20589 Reviewed-by: Alexis La Goutte <alexis.lagoutte@gmail.com> Petri-Dish: Alexis La Goutte <alexis.lagoutte@gmail.com> Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org> Reviewed-by: Michael Mann <mmann78@netscape.net>
2017-03-18TLS13: update pre_shared_key references to draft -19Peter Wu1-4/+4
Also rename the fields for consistency. Change-Id: I49f4c9b1d308264e7849df92e1b1ac4a93a94766 Ping-Bug: 12779 Reviewed-on: https://code.wireshark.org/review/20590 Reviewed-by: Alexis La Goutte <alexis.lagoutte@gmail.com> Petri-Dish: Alexis La Goutte <alexis.lagoutte@gmail.com> Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org> Reviewed-by: Michael Mann <mmann78@netscape.net>
2017-03-18TLS13: update early_data for draft -19Peter Wu1-4/+34
Added new max_early_data_size for NewSessionTicket. Change-Id: I6886415d03ffdce983b49649ad52ff0f897f2f77 Ping-Bug: 12779 Reviewed-on: https://code.wireshark.org/review/20591 Reviewed-by: Alexis La Goutte <alexis.lagoutte@gmail.com> Petri-Dish: Alexis La Goutte <alexis.lagoutte@gmail.com> Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org> Reviewed-by: Michael Mann <mmann78@netscape.net>
2017-03-17TLS13: add new supported_versions value for draft -19Peter Wu1-0/+1
Change-Id: I2e5fd001bb8d4312c6267f530b66d6687865112e Ping-Bug: 12779 Reviewed-on: https://code.wireshark.org/review/20596 Reviewed-by: Alexis La Goutte <alexis.lagoutte@gmail.com>
2017-03-10TLS: append Log name for CT Log IDsPeter Wu1-0/+81
Show something like "Signed Certificate Timestamp (Google 'Pilot' Log)" if the Log ID is recognized, or "... (Unknown Log)" otherwise. Bug: 13372 Change-Id: I1cd373f110d5beb63ee89fb85831ab72cafe03d0 Reviewed-on: https://code.wireshark.org/review/20387 Petri-Dish: Peter Wu <peter@lekensteyn.nl> Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org> Reviewed-by: Peter Wu <peter@lekensteyn.nl>
2017-02-16Cast away some compiler warnings.Guy Harris1-2/+2
Change-Id: Ia8b68a718b6cee77b479594be09542fd7133ebe1 Reviewed-on: https://code.wireshark.org/review/20131 Reviewed-by: Guy Harris <guy@alum.mit.edu>
2017-02-16TLS: add Signed Certificate Timestamp support (RFC 6962)Peter Wu1-0/+91
Adds support for dissecting the Signed Certificate Timestamp List in the TLS Hello, X.509v3 Certificate and OCSP Response extensions. Tested with tls-sct.pcap (TLS extension, OCSP) and x509-sct.pcap (cert). Bug: 13372 Change-Id: I127dbf5cfe9a8dd9ed13741322273c4841b0f582 Reviewed-on: https://code.wireshark.org/review/20110 Petri-Dish: Peter Wu <peter@lekensteyn.nl> Reviewed-by: Peter Wu <peter@lekensteyn.nl> Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org> Reviewed-by: Anders Broman <a.broman58@gmail.com>
2017-02-16ssl-utils: refactor DigitallySignedPeter Wu1-49/+50
Refactor DigitallySigned dissection to return the length and make it accept a version integer instead of Session pointer. Hopefully this makes it easier to use the routine for SCT dissection in X.509 certs. While at it, convert it to use ssl_add_vector. Change-Id: I64afecc65ff597fda50d208d8f96ca0b97bfcbde Reviewed-on: https://code.wireshark.org/review/20111 Petri-Dish: Peter Wu <peter@lekensteyn.nl> Reviewed-by: Peter Wu <peter@lekensteyn.nl> Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org> Reviewed-by: Anders Broman <a.broman58@gmail.com>
2017-02-15TLS13: handle message-specific TLS extensionsPeter Wu1-3/+7
Some extensions from the client are processed differently than those sent by the server. In TLS 1.3 the Encrypted Extensions section took over most of the Server Hello extensions and some appear in Certificate. Based on https://tlswg.github.io/tls13-spec/#rfc.section.4.2 Change-Id: I40d98bae21fe7933563df4a79b0cec4bf02a76f8 Reviewed-on: https://code.wireshark.org/review/20109 Petri-Dish: Peter Wu <peter@lekensteyn.nl> Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org> Reviewed-by: Peter Wu <peter@lekensteyn.nl>
2017-02-15ssl-utils: sort extensions casesPeter Wu1-51/+56
Sort cases to match the extension numbers. No functional change. Change-Id: I648ecce9037511cc19721e81b434645d61560dd2 Reviewed-on: https://code.wireshark.org/review/20108 Petri-Dish: Peter Wu <peter@lekensteyn.nl> Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org> Reviewed-by: Peter Wu <peter@lekensteyn.nl>
2017-02-15TLS13: dissect NewSessionTicket and CertificateRequest extensionsPeter Wu1-42/+44
Process NewSessionTicket and CertificateRequest extensions for TLS 1.3. CertificateExtension in draft -18 is replaced by Extension in the next draft, so anticipate for that and start decoding this extensions vector. Rename ssl_dissect_hnd_hello_ext to reflect extended functionality. (Certificate Extensions SCT is still not dissected though, but at least OCSP (status_request(_v2)) is supported now.) Change-Id: I3cae58dbde600e82598b3c2f8e29e92e38cd1db1 Ping-Bug: 12779 Reviewed-on: https://code.wireshark.org/review/20104 Petri-Dish: Peter Wu <peter@lekensteyn.nl> Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org> Reviewed-by: Peter Wu <peter@lekensteyn.nl>
2017-02-15ssl,dtls: fix wrong expert info for overly large recordsPeter Wu1-0/+23
The plaintext length is limited to 2^14, but the actual record length (TLSCiphertext) may be larger due to expansion from compression and the cipher (like AEAD auth tags). The wrong check led to false expert infos. Change-Id: I3a56f1b0af05ecc1d97c4f1f0bcf35ff4d0fad42 Fixes: v2.3.0rc0-1584-gff0371e898 ("ssl,dtls: add expert info for overly large record lengths") Reviewed-on: https://code.wireshark.org/review/20099 Petri-Dish: Peter Wu <peter@lekensteyn.nl> Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org> Reviewed-by: Jaap Keuter <jaap.keuter@xs4all.nl> Reviewed-by: Peter Wu <peter@lekensteyn.nl>
2017-02-13Make Libgcrypt a mandatory dependencyPeter Wu1-102/+13
Removed all guards for HAVE_LIBGCRYPT, change autotools and CMake to error out if it is not available. Update release notes, developer documentation and README with the new status. Clarify relation with GnuTLS in macosx-setup.sh. Install Libgcrypt via brew script. Motivation for this change is that many dissectors depend on Libgcrypt and having it optional increases the maintenance burden (there have been several compile issues in the past due to the optional status). Furthermore, wsutil has crypto code that can be replaced by Libgcrypt. Change-Id: Idf0021b8c4cd5db70b8766f7dcc2a8b3acbf042f Link: https://www.wireshark.org/lists/wireshark-dev/201702/msg00011.html Reviewed-on: https://code.wireshark.org/review/20030 Petri-Dish: Peter Wu <peter@lekensteyn.nl> Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org> Reviewed-by: Pascal Quantin <pascal.quantin@gmail.com> Reviewed-by: Peter Wu <peter@lekensteyn.nl>
2017-02-11TLS13: handle Key Update for decryptionPeter Wu1-4/+59
Generate new key upon receipt of Key Update message. Untested. Note that the "traffic_secret" field in SslDecryptSession was unused and since the client and server have two different encryption states, store the application traffic secret in SslDecoder. Change-Id: Iefca3f6cb75745a996fecb0fe7769c876dc9c4ee Ping-Bug: 12779 Reviewed-on: https://code.wireshark.org/review/20013 Petri-Dish: Peter Wu <peter@lekensteyn.nl> Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org> Reviewed-by: Peter Wu <peter@lekensteyn.nl>
2017-02-11TLS13: add Key Update dissectionPeter Wu1-0/+24
Actual decryption support will be added later. Ping-Bug: 12779 Change-Id: I3ff1f243fd0bd1467e84d8a6a5433c1fe71bbebf Reviewed-on: https://code.wireshark.org/review/20012 Petri-Dish: Peter Wu <peter@lekensteyn.nl> Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org> Reviewed-by: Peter Wu <peter@lekensteyn.nl>
2017-02-11ssl-utils: add length validation for Certificate handshake messagePeter Wu1-15/+28
This also introduces a new macro, "G_MAXUINT24" as symbol for 2^24-1 (this name does not exist in GLib and uncommon in Google). Change-Id: If000f41f6286161e3a7697357fc33ae16c1e11db Reviewed-on: https://code.wireshark.org/review/20003 Petri-Dish: Peter Wu <peter@lekensteyn.nl> Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org> Reviewed-by: Peter Wu <peter@lekensteyn.nl>
2017-02-11TLS13: fix length of Finished messagePeter Wu1-2/+8
Select the full message instead of just the first 12 bytes (as was the case in previous TLS versions. No check is added since it is too much work for little gain (it would require looking up the hash length for the cipher suite). Change-Id: Iea13d5abe6a7e55b04fabacfa8919a02acd8517d Reviewed-on: https://code.wireshark.org/review/20011 Petri-Dish: Peter Wu <peter@lekensteyn.nl> Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org> Reviewed-by: Peter Wu <peter@lekensteyn.nl>
2017-02-11ssl-utils: add length validation to CertificateRequestPeter Wu1-35/+41
Add length validation to several fields in CertificateRequest. Clarify specification, remove unnecessary length check and add TODO for TLS 1.3. Change-Id: Ic3aca62d90e5fad6930beb371adf10d7b7b9fbe2 Reviewed-on: https://code.wireshark.org/review/20010 Reviewed-by: Peter Wu <peter@lekensteyn.nl>
2017-02-11TLS13: add length validation for Pre-Shared Key Exchange ModesPeter Wu1-17/+12
Add length validation for expert info and add a reference. Change-Id: Id21916b11ca924b517ea45294798692a010e7541 Reviewed-on: https://code.wireshark.org/review/20009 Reviewed-by: Peter Wu <peter@lekensteyn.nl>
2017-02-10TLS13: add length validation for Pre-Shared Key ExtensionPeter Wu1-26/+23
Use "ssl_add_vector" for length validation and expert info. Change-Id: Ib38d36dfd82b78580035415d0924f1fae6cbe96d Reviewed-on: https://code.wireshark.org/review/20008 Reviewed-by: Peter Wu <peter@lekensteyn.nl>
2017-02-10ssl-utils: update supported_groups extensionPeter Wu1-28/+45
Update references, rename the old "elliptic_curves" name to "supported_groups". Fix a wrong field name (EC Point Format now has its own hf). Add length validation for "elliptic_curve_list". Change-Id: I554ebb259ba7561b48dfe1cc9162a0b3b3bcdba4 Reviewed-on: https://code.wireshark.org/review/20007 Reviewed-by: Peter Wu <peter@lekensteyn.nl>
2017-02-10TLS13: add length validation for SupportedVersionsPeter Wu1-8/+19
Also add reference to specification. Change-Id: I5619ce175711f6768949f8b7eec789320100573c Reviewed-on: https://code.wireshark.org/review/20002 Petri-Dish: Peter Wu <peter@lekensteyn.nl> Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org> Reviewed-by: Peter Wu <peter@lekensteyn.nl>
2017-02-10ssl-utils: stylistic changes for ServerHello, HelloRetryRequestPeter Wu1-16/+12
Change "length" to "offset_end" parameter for consistency. Clarify applicable TLS version in comments. Remove unnecessary check for length. Change-Id: Icdc7edff9c8fdaf4c7d7349f65fed42f5344f2c3 Reviewed-on: https://code.wireshark.org/review/20001 Petri-Dish: Peter Wu <peter@lekensteyn.nl> Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org> Reviewed-by: Peter Wu <peter@lekensteyn.nl>
2017-02-07ssl-utils: add vector length validation for Client HelloPeter Wu1-72/+63
Use ssl_add_vector to process DTLS Cookie, cipher_suites, compression_methods, client_hello_extension_list. Removed some checks (like cipher_suite_length > 0) since (per specification) these must be non-empty (if this is not the case, then at worst an empty tree is visible). Change-Id: I7ab2ef12e210d5878769478c7dfba33a799fb567 Reviewed-on: https://code.wireshark.org/review/19993 Petri-Dish: Peter Wu <peter@lekensteyn.nl> Reviewed-by: Alexis La Goutte <alexis.lagoutte@gmail.com> Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org> Reviewed-by: Peter Wu <peter@lekensteyn.nl>
2017-02-07TLS13: update NewSessionTicket dissectionPeter Wu1-13/+47
The new ticket_age_add field resulted in a dissector exception. With this fixed, the tls13-18-picotls-earlydata.pcap capture can now be fully decrypted. Also add validation for the ticket length (using ssl_add_vector). Change-Id: I167038f682b47b2d1da020a8f241daaf7af22017 Ping-Bug: 12779 Reviewed-on: https://code.wireshark.org/review/19992 Petri-Dish: Peter Wu <peter@lekensteyn.nl> Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org> Reviewed-by: Alexis La Goutte <alexis.lagoutte@gmail.com>