Commit graph

166 commits

Author SHA1 Message Date
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
Jeff Morriss
729de1a635 As suggested in http://www.wireshark.org/lists/wireshark-dev/200809/msg00075.html
(as referenced in https://bugs.wireshark.org/bugzilla/show_bug.cgi?id=2907 ) and
https://bugs.wireshark.org/bugzilla/show_bug.cgi?id=3411 :

Write a new convenience routine for finding a conversation and, if it is not
found, create it.  The frame number and addresses are taken from pinfo (as is
the common case).

Use this function in a bunch of dissectors.

svn path=/trunk/; revision=32790
2010-05-13 18:28:34 +00:00
Bill Meier
d03f69e2df From Yaniv Kaul: Fix errors found by clang static code analyzer and add some consts.
svn path=/trunk/; revision=32760
2010-05-11 20:14:37 +00:00
Sake Blok
810861bcd0 Fix for bug 4535: The SSL dissector can not correctly resemple SSL records when the record header is spit between packets
svn path=/trunk/; revision=32456
2010-04-13 19:37:44 +00:00
Jaap Keuter
4ab14bc71e Ditch the last direct indexed character array.
And some minor formatting updates.

svn path=/trunk/; revision=31921
2010-02-19 07:43:26 +00:00
Stig Bjørlykke
47e732e29e Changed "reassembled_length" -> "reassembled.length".
svn path=/trunk/; revision=31776
2010-02-03 08:47:15 +00:00
Stig Bjørlykke
88b72356ad Introduce "Reassembled length" filter element for all protocols doing
reassembly.

svn path=/trunk/; revision=31767
2010-02-02 16:01:52 +00:00
Jaap Keuter
ef44e06208 From Jens Weibler:
Just a small patch to add information about elliptic curves for SSL-connections.

svn path=/trunk/; revision=31744
2010-01-31 19:57:01 +00:00
Stig Bjørlykke
941cfd993e Only add a delimiter to COL_INFO when actually adding something more.
(remaining data can be TCP segment data)

Removed calls to col_check().

svn path=/trunk/; revision=31332
2009-12-21 00:34:41 +00:00
Guy Harris
8e236e55de For fields of type FT_ABSOLUTE_TIME, have the "display" value be one of
ABSOLUTE_TIME_LOCAL or ABSOLUTE_TIME_UTC, indicating whether to display
the date/time in local time or UTC. (int)ABSOLUTE_TIME_LOCAL ==
(int)BASE_NONE, so there's no source or binary compatiblity issue,
although we might want to eliminate BASE_NONE at some point and have the
BASE_ values used with integral types start at 0, so that you can't
specify BASE_NONE for an integral field.

svn path=/trunk/; revision=31319
2009-12-19 03:17:44 +00:00
Stig Bjørlykke
d577ca0fa7 Guard #include <sys/types.h> with HAVE_SYS_TYPES_H.
svn path=/trunk/; revision=31053
2009-11-23 18:47:52 +00:00
Kovarththanan Rajaratnam
00810ff199 * Prefer col_append_str instead of col_append_fstr for constant strings
* Remove check_col guards

svn path=/trunk/; revision=30127
2009-09-24 20:21:23 +00:00