Commit Graph

177 Commits

Author SHA1 Message Date
Michael Tüxen 7e112bec91 From Robin Seggelmann:
Support DTLS 1.2
Fix a bug in option handling.


svn path=/trunk/; revision=41816
2012-03-28 09:31:04 +00:00
Jeff Morriss 4efb92a274 Replace some duplicate blurbs with NULL.
svn path=/trunk/; revision=41743
2012-03-23 01:41:24 +00:00
Anders Broman afa29e0070 From Yaniv Kaul:
Enhance the SSL dissector to dissect some Hello extensions.

https://bugs.wireshark.org/bugzilla/show_bug.cgi?id=6979

svn path=/trunk/; revision=41736
2012-03-22 08:58:19 +00:00
Michael Tüxen 9765ee1bea From Robin Seggelmann: Add support for the New Session Ticket
message according to RFC 5077.

svn path=/trunk/; revision=41427
2012-03-08 09:25:13 +00:00
Michael Tüxen a7e2d55198 Fix CID 473 and 474.
svn path=/trunk/; revision=41267
2012-03-01 15:50:43 +00:00
Michael Tüxen e929fdfdee From Robin Seggelmann: Add support for RFC 6520.
From me: Some cleanup
Initial work was done by Denis Jaeger and
Lukas Scharlau, but the code got rewritten by Robin.

svn path=/trunk/; revision=41189
2012-02-26 13:50:52 +00:00
Jeff Morriss d45ad837b2 Fix via https://bugs.wireshark.org/bugzilla/show_bug.cgi?id=6817 :
r40200 made ssl_parse()/dtls_parse() post-update-callbacks for those
dissector's UATs so that the dissector would be updated when the user changed
the UAT.  (This allows SSL/DTLS keys to be taken into account without requiring
Wireshark to be restarted.)

But, those functions also update the UAT themselves if the old-style keys_list
preference is used, creating an infinite recursion.

Fix this by splitting the *_parse() functions into two: one for the UAT and one
for the old-style keys list.

svn path=/trunk/; revision=40952
2012-02-10 23:08:46 +00:00
Anders Broman 0ee76da516 Minor updates to debug output.
svn path=/trunk/; revision=40775
2012-01-30 19:42:21 +00:00
Michael Tüxen f011eca8c1 Don't register ett_ssl_keyex_params twice.
This bug was introduced in
http://anonsvn.wireshark.org/viewvc/viewvc.cgi?view=rev&revision=40748

svn path=/trunk/; revision=40756
2012-01-28 22:22:01 +00:00
Anders Broman 855289862a From Andreas Heise:
option ssl_ignore_mac_failed.

https://bugs.wireshark.org/bugzilla/show_bug.cgi?id=6748

svn path=/trunk/; revision=40752
2012-01-28 16:48:06 +00:00
Anders Broman cde63b2001 From Michael:
Enhance SSL Key Exchange dissection.

https://bugs.wireshark.org/bugzilla/show_bug.cgi?id=6716

svn path=/trunk/; revision=40748
2012-01-28 15:50:59 +00:00
Bill Meier dddb66178b AFAIKT sys/stat.h, sys/types.h, sys/socket.h, winsock2.h, inet_v6_defs.h #includes aren't needed.
also: Add #include <epan/packet.h>  (altho included by one of the other includes).

svn path=/trunk/; revision=40329
2011-12-29 21:08:53 +00:00
Anders Broman 678711f488 From Naoyoshi Ueda:
Enable decryption of TLS 1.2.

 Add some cipher suites from RFC5246 and RFC5289.

Fixed a bug in the handling of stream cipher.
(The explicit IV field in the application record doesn't exist when stream ciphers are used. But the original code handles it as if one-byte IV exists.)

https://bugs.wireshark.org/bugzilla/show_bug.cgi?id=6688

svn path=/trunk/; revision=40273
2011-12-22 07:03:42 +00:00
Bill Meier 8ea30b478a Fix tvb memory leak; Add missing call to add_new_data_source();
Also: remove unneeded #includes.

svn path=/trunk/; revision=40221
2011-12-16 00:33:03 +00:00
Sake Blok 418863f88d Fix for bug 6032:
After changing the ssl_keys UAT, reparse the list and reload the keys.


svn path=/trunk/; revision=40200
2011-12-14 18:24:41 +00:00
Bill Meier 6d96a16932 Fix a few proto_tree_add_item() encoding args manually.
Some whitespace cleanup.

svn path=/trunk/; revision=39507
2011-10-21 14:33:43 +00:00
Bill Meier 794757ae8f For proto_tree_add_item(..., proto_xxx, ...)use ENC_NA as the encoding arg.
Also: remove trailing whitespace for a number of files.

svn path=/trunk/; revision=39503
2011-10-21 02:10:19 +00:00
Bill Meier 293049dfba Do some conversions of proto_tree_add_item() 'encoding' arg.
(previously missed).

    57   FT_BOOLEAN:       FALSE-->ENC_BIG_ENDIAN
    31   FT_BOOLEAN:       TRUE-->ENC_LITTLE_ENDIAN

    10   FT_BYTES:         ENC_BIG_ENDIAN-->ENC_NA
     1   FT_BYTES:         ENC_LITTLE_ENDIAN-->ENC_NA
    21   FT_BYTES:         FALSE-->ENC_NA
     2   FT_BYTES:         TRUE-->ENC_NA

     2   FT_IPXNET:        ENC_BIG_ENDIAN-->ENC_NA

     6   FT_IPv6:          ENC_BIG_ENDIAN-->ENC_NA
     1   FT_IPv6:          FALSE-->ENC_NA

     6   FT_NONE:          ENC_BIG_ENDIAN-->ENC_NA
    19   FT_NONE:          FALSE-->ENC_NA
     3   FT_NONE:          TRUE-->ENC_NA

     1   FT_STRING:        ENC_BIG_ENDIAN-->ENC_ASCII|ENC_NA
     1   FT_STRING:        ENC_LITTLE_ENDIAN-->ENC_ASCII|ENC_NA
     5   FT_STRING:        FALSE-->ENC_ASCII|ENC_NA
     1   FT_STRING:        TRUE-->ENC_ASCII|ENC_NA

     4   FT_STRINGZ:       ENC_NA-->ENC_ASCII|ENC_NA
     8   FT_STRINGZ:       FALSE-->ENC_ASCII|ENC_NA

     1   FT_INT32:         FALSE-->ENC_BIG_ENDIAN
     1   FT_INT32:         TRUE-->ENC_LITTLE_ENDIAN

    11   FT_UINT8:         0-->ENC_BIG_ENDIAN
   111   FT_UINT8:         FALSE-->ENC_BIG_ENDIAN
    17   FT_UINT8:         TRUE-->ENC_LITTLE_ENDIAN
     1   FT_UINT16:        0-->ENC_BIG_ENDIAN
    68   FT_UINT16:        FALSE-->ENC_BIG_ENDIAN
    18   FT_UINT16:        TRUE-->ENC_LITTLE_ENDIAN
     4   FT_UINT24:        FALSE-->ENC_BIG_ENDIAN
    70   FT_UINT32:        FALSE-->ENC_BIG_ENDIAN
     1   FT_UINT32:        TRUE-->ENC_LITTLE_ENDIAN
     4   FT_UINT64:        FALSE-->ENC_BIG_ENDIAN
     1   FT_UINT64:        TRUE-->ENC_LITTLE_ENDIAN

     1   FT_UINT_STRING:   FALSE-->ENC_ASCII|ENC_BIG_ENDIAN


svn path=/trunk/; revision=39442
2011-10-16 23:38:49 +00:00
Bill Meier e98b54c098 Use intended proto_tree_add_uint() instead of proto_tree_add_item() to fix benign bugs (Replaces SVN #39348).
svn path=/trunk/; revision=39359
2011-10-11 14:58:54 +00:00
Bill Meier 29e823dfba Fix benign bugs in some proto_tree_add_item() 'encoding' args;
svn path=/trunk/; revision=39348
2011-10-10 21:53:15 +00:00
Bill Meier 4e57694d4a Convert 'encoding' parameter of certain proto_tree_add_item() calls in non-autogenerated epan/dissectors:
Specifically:  Replace FALSE|0 and TRUE|1 by ENC_BIG_ENDIAN|ENC_LITTLE_ENDIAN as
 the encoding parameter for proto_tree_add_item() calls which directly reference
 an item in hf[] which has a type of:
    FT_UINT8
    FT_UINT16
    FT_UINT24
    FT_UINT32
    FT_UINT64
    FT_INT8
    FT_INT16
    FT_INT24
    FT_INT32
    FT_INT64
    FT_FLOAT
    FT_DOUBLE


svn path=/trunk/; revision=39288
2011-10-06 03:35:44 +00:00
Bill Meier 799578fb29 Use ENC_NA as encoding for proto_tree_add_item() calls which directly reference an hf item with types in hf[] of:
FT_NONE
    FT_BYTES
    FT_IPV6
    FT_IPXNET
    FT_OID

svn path=/trunk/; revision=39261
2011-10-05 00:25:09 +00:00
Bill Meier 94f36ca4ff Use ENC_NA as encoding for proto_tree_add_item() calls which directly reference an hf item (in hf[] with types:
FT_NONE
   FT_BYTES
   FT_IPV6
   FT_IPXNET
   FT_OID

Note: Encoding field set to ENC_NA only if the field was previously TRUE|FALSE|ENC_LITTLE_ENDIAN|ENC_BIG_ENDIAN

svn path=/trunk/; revision=39260
2011-10-04 22:44:31 +00:00
Graeme Lunt 779206012c Microsoft Credential Security Support Provider (CredSSP) support.
Used by direct approach RDP for NTLMSSP authentication under SSL. 



svn path=/trunk/; revision=39196
2011-09-30 15:21:16 +00:00
Bill Meier ad1efb6b9c (Trivial) Remove trailing whitespace from lines for a few files.
svn path=/trunk/; revision=39084
2011-09-21 23:42:55 +00:00
Bill Meier 4c46725c2c Fix vi "modeline" so it works;
See https://bugs.wireshark.org/bugzilla/show_bug.cgi?id=5748

svn path=/trunk/; revision=39074
2011-09-21 16:28:53 +00:00
Stig Bjørlykke 0554530407 From Dirk via bug 6361:
Use File/Directory Dialog as a field type for UAT preferences.

svn path=/trunk/; revision=39059
2011-09-20 10:15:09 +00:00
Anders Broman ccf9a9cb52 Use ENC_BIG_ENDIAN
svn path=/trunk/; revision=38859
2011-09-02 05:52:10 +00:00
Anders Broman af65dc50ab From Eric Wustrow:
TLS Diffie-Hellman key exchange dissection support.
https://bugs.wireshark.org/bugzilla/show_bug.cgi?id=6277

svn path=/trunk/; revision=38858
2011-09-02 05:48:29 +00:00
Sake Blok ba086053c7 Add "File -> Export -> SSL Session Keys..." to be able to save the keyring info for each session in the trace file. This makes it possible to give someone the trace and the exported keys so that they can decrypt the traffic in the trace, but not new sessions to the same server.
(See also: https://bugs.wireshark.org/bugzilla/show_bug.cgi?id=3444)


svn path=/trunk/; revision=37446
2011-05-28 18:17:50 +00:00
Jeff Morriss f3f9f2697f Make TVBs opaque for most users.
Convert TVB_RAW_OFFSET() and TVB_GET_DS_TVB() into functions.

svn path=/trunk/; revision=37422
2011-05-27 03:06:50 +00:00
Sake Blok 8f5742c5ad Extended the SSL key log import routine to be able to read the following format:
RSA Session-ID:xxxx Master-Key:xxxx

This makes it easy to use the "openssl s_client" output for decryption
(see: http://ask.wireshark.org/questions/4229/follow-ssl-stream-using-master-key-and-session-id)

It also paves the way for exporting SSL keyring material. See also the enhancement request in:
https://bugs.wireshark.org/bugzilla/show_bug.cgi?id=3444


svn path=/trunk/; revision=37401
2011-05-25 21:49:29 +00:00
Guy Harris b205288622 If HAVE_LIBGNUTLS isn't defined, don't build functions that are used
only if HAVE_LIBGNUTLS is defined.

svn path=/trunk/; revision=36878
2011-04-26 23:07:40 +00:00
Gerald Combs 767e73c3d5 From Adam Langley via bug 4349:
This patch adds support for getting the pre-master secret of a TLS
connection from a log file. Currently Wireshark can decrypt and TLS
connection only if it has the server's private key.

I commonly have a use case where I control the TLS client, but not the
server.  In order to decrypt in this case, I've added support to NSS
(used by Chrome and Firefox) to log the keys to a file on disk:

https://bugzilla.mozilla.org/show_bug.cgi?id=536474

Given this file, Wireshark can then decrypt the resulting TLS connections.

The format is such that Wireshark opens and linearly scans the file each
time it sees a ClientKeyExchange. If the key log grows too large, this
is pretty inefficient. However, it's simple and the number of
interesting TLS connections when debugging is usually very small.

svn path=/trunk/; revision=36876
2011-04-26 22:51:35 +00:00
Gerald Combs c6fecb57b0 From Ivan Sy via bug 3343:
- Support for DTLS and SSL RSA keys list using User Accessible Table
- Support for IPv6 SSL as posted by bug#3343 comment#1
- 'any' and 'anyipv4' for IPv4 wildcard
- 'anyipv6' for IPv6 wildcard
- UAT fields validation.


From me:

- Update paramaters to match UAT API changes.
- Change the UAT filename.
- Fix buffer overflow for IPv6 addresses.
- Allow the use of hostnames along with numeric addresses.
- Don't convert strings to addresses twice.
- Don't use the same variable name for different data types.
- Make "any" mean "any IPv4 or any IPv6".
- Bend the concept of obsolete preferences slightly so that we can convert
  and old-style key list to a UAT.
- Clean up whitespace.
- Don't point to a User's Guide section for now; it may make more sense to
  keep using the wiki page.
  
SSL dissector changes have been tested. DTLS dissector changes have not.

svn path=/trunk/; revision=36875
2011-04-26 21:59:11 +00:00
Jeff Morriss cc6fc23812 From Didier via https://bugs.wireshark.org/bugzilla/show_bug.cgi?id=3055 :
Apply rev 25869 to most of the rest of the TCP-desegmenting dissectors.
(The SSL dissector was already updated in one of two spots with bug 4535/rev
32456.)

A couple of the patches had to be manually applied.

From me: Fix the comments to match the change (including in the TCP and SSL
dissectors.)

svn path=/trunk/; revision=36332
2011-03-25 19:02:18 +00:00
Jeff Morriss 8c73d0c6f4 If we've already seen a segment which starts a multi-segment pdu (i.e., it's
a retransmission), don't add it to the list (tree) of multi-segment pdus.

Otherwise, if we'd already seen the rest of the pdu and the other segments
were not retransmitted, the retransmission would break dissection of the pdu
because lookups for the segment would find the retransmission (to which the
other segments were not attached).

Since we know this segment is a retransmission, don't bother handing it off
to the subdissector either.

Use PINFO_FD_VISITED().
Add some white space in the desegmentation routine to improve readability.

Apply the same changes to the SSL dissector.

svn path=/trunk/; revision=36304
2011-03-24 02:10:04 +00:00
Jeff Morriss 50e1634f4c Modify proto_tree_add_bytes_format() and proto_tree_add_bytes_format_value()
so that if the start_ptr is NULL the bytes are extracted from the given TVB
using the given offset and length.

Replace a bunch of:

proto_tree_add_bytes_format*(tree, hf, tvb, offset, length, tvb_get_ptr(tvb, offset, length), [...])

with:

proto_tree_add_bytes_format*(tree, hf, tvb, offset, length, NULL, [...])

svn path=/trunk/; revision=35896
2011-02-10 16:31:00 +00:00
Stig Bjørlykke 84bc28bd6a Introduce "Fragment count" filter element for all protocols doing reassembly.
svn path=/trunk/; revision=35705
2011-01-30 21:01:07 +00:00
Anders Broman c4fe9a28ca From Kaspar Brand:
SSL/TLS dissector: add support for "Certificate Status" messages (aka OCSP stapling)
https://bugs.wireshark.org/bugzilla/show_bug.cgi?id=5503

svn path=/trunk/; revision=35655
2011-01-26 08:49:06 +00:00
Jeff Morriss 8d32d2066a There's no need to pass the result of tvb_get_ptr() as the 'value' in
proto_tree_add_*(): just use proto_tree_add_item().

Replace some tvb_get_ptr()s with tvb_get_ephemeral_string() or
tvb_get_const_stringz().

Use tvb_memeql() & tvb_memcmp().

svn path=/trunk/; revision=35558
2011-01-16 20:51:21 +00:00
Sake Blok c16ac675d9 Add support for the TLSv1.2 format of the CertificateRequest handshake message.
(see: https://bugs.wireshark.org/bugzilla/show_bug.cgi?id=5485 )


svn path=/trunk/; revision=35216
2010-12-18 01:16:11 +00:00
Stephen Fisher e4a02e802c Rename "Secure Socket Layer" to "Secure Sockets Layer" (plural) and update
protocol reference URLs.


svn path=/trunk/; revision=35186
2010-12-14 17:02:00 +00:00
Bill Meier 62e44e3f66 Minor cleanup:
- Initialize a few static global variables;
- Remove two unnecessary calls to g_hash_table_foreach_remove;
- Do whitespace cleanup and use consistent indentation;
- Fix a few typos and fix up several comments.

svn path=/trunk/; revision=35183
2010-12-14 01:50:31 +00:00
Bill Meier 28402479cc Use value_string_ext fcns to access two value-string arrays;
Reorder value-string arrays slightly so they are in ascending order.

svn path=/trunk/; revision=34699
2010-10-29 22:18:44 +00:00
Jeff Morriss 0ff5638f37 Replace blurbs that match the name (case insensitive) with NULL.
svn path=/trunk/; revision=34227
2010-09-23 21:46:31 +00:00
Anders Broman 1b390de1dc Try to fix the build.
svn path=/trunk/; revision=33310
2010-06-24 06:37:31 +00:00
Anders Broman 8396802773 From "wiresharkbugzilla@jdkbx.cjb.net":
Support for RFC4279 Pre-Shared Key Ciphersuites for Transport Layer Security (TLS)
https://bugs.wireshark.org/bugzilla/show_bug.cgi?id=4853

svn path=/trunk/; revision=33309
2010-06-24 06:01:11 +00:00
Jeff Morriss 47e2d75820 Move some code (including the optional objects) into libwsutil
svn path=/trunk/; revision=33012
2010-05-28 20:19:55 +00:00
Sake Blok d323dd81ec Fix for bug 4544 - Decrypted data for STARTLS session is not shown in packet list when using "starttls" SSL decryption preference
- make sure the SSL dissector knows how to reach the original dissector for the decrypted data
- make sure the SMTP dissector does not call the SSL dissector again with the decrypted data


svn path=/trunk/; revision=32921
2010-05-23 22:23:33 +00:00