Commit Graph

114 Commits

Author SHA1 Message Date
Jeff Morriss 3729335973 We always HAVE_CONFIG_H so don't bother checking whether we have it or not.
svn path=/trunk/; revision=45016
2012-09-20 01:48:30 +00:00
Chris Maynard cc3c9ba3e5 Allow wpa-psk decryption keys to be successfully entered.
Problems reported on ask.wireshark.org here:
1) http://ask.wireshark.org/questions/13951/invalid-key-format-wireshark-182
2) http://ask.wireshark.org/questions/13688/error-updating-record-invalid-key-format

#BACKPORT (to 1.8)

svn path=/trunk/; revision=44694
2012-08-29 16:15:01 +00:00
Jörg Mayer 2097912587 Rename crypt-xxx to xxx
svn path=/trunk/; revision=40511
2012-01-15 12:29:44 +00:00
Bill Meier 781129806f Fix ex "modeline" so it works;
See https://bugs.wireshark.org/bugzilla/show_bug.cgi?id=5748

svn path=/trunk/; revision=39081
2011-09-21 17:49:11 +00:00
Stig Bjørlykke 5359494b1f Second try to move crc routines to libwsutil.
This time keep the tvb routines in epan.

Now we can use common crc routines outside epan.

svn path=/trunk/; revision=38810
2011-08-31 09:00:54 +00:00
Stig Bjørlykke 71f903b956 Revert r38800, as the crc routines contains some tvb functions.
svn path=/trunk/; revision=38803
2011-08-30 14:17:40 +00:00
Stig Bjørlykke 4132d40e50 Move all crc routines to libwsutil.
This way we can use the crc routines in wiretap.

svn path=/trunk/; revision=38800
2011-08-30 13:46:42 +00:00
Jörg Mayer c15ff441c6 Replace deprecated glib functions.
In order to compile the whole project with -DG_DISABLE_DEPRECATED
the mate plugin needs to replace its usage of GMemChunk.
All other places should be clean.

svn path=/trunk/; revision=38392
2011-08-07 18:15:45 +00:00
Anders Broman 639e59a9f9 From Michael Mann:
Removed "key prefix" need within GUI so it's a little more intuitive (because
that's what this bug is complaining about).  Slight backwards compatibility
issue with UAT (because key prefix was in previous keys), but all development 
(including fix for BUG 1123 that created UAT) has just been on SVN and not
released.

Also adjusted AirPCap (airpcap_loader.c) to account for the lack of "key
prefix".

Addressed some memory leaks/excess string creation.

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

svn path=/trunk/; revision=37888
2011-07-04 14:07:20 +00:00
Gerald Combs a5ddd187ca Fix Coverity CID 557.
svn path=/trunk/; revision=36526
2011-04-08 21:21:32 +00:00
Gerald Combs 69901e8eba Fix Visual C++ code analysis errors.
svn path=/trunk/; revision=35970
2011-02-16 22:57:36 +00:00
Guy Harris e646e71d0f Fix some compiler warnings.
svn path=/trunk/; revision=31969
2010-02-23 20:30:27 +00:00
Guy Harris b395a98305 Squelch a bunch of compiler warnings.
svn path=/trunk/; revision=31961
2010-02-23 04:35:23 +00:00
Gerald Combs 22dcdd3f9a WPA decryption fix from Greg Schwendimann via bug 3890:
I'm reasonably sure that I introduced this bug and I apologize for the problems
with my previous patch.  The problem is that I did not use all of the seen
keys,  I used all except the first key, which in a case of one key is none. 
The attached patch fixes the error.

svn path=/trunk/; revision=29843
2009-09-10 16:50:25 +00:00
Bill Meier 3b4b7023b9 Fix some whitespace ....
svn path=/trunk/; revision=29184
2009-07-23 20:53:44 +00:00
Gerald Combs 8ca33644e7 From Greg Schwendimann via bug 3156:
Airpdcap does not allow for more than one key to be stored for a pair of nodes.
 This means that when a device associates more than once the previous keys are
lost.  This is ok for the first pass as the newest key is all that is needed
but when the user tries to click on a packet, to get the tree, which used a
previous key all that is seen is the encrypted data.  The attached patch stores
previous associations in a linked list and will try all known keys before
decided the packet can't be decrypted.  The list of keys is garbage collected
when a new capture is started.

svn path=/trunk/; revision=28449
2009-05-22 17:38:21 +00:00
Gerald Combs 5f1b7e8f27 More Win64 fixes.
svn path=/trunk/; revision=27707
2009-03-11 22:44:06 +00:00
Stig Bjørlykke c3b54a3378 Removed a "statement not reached" warning.
svn path=/trunk/; revision=26478
2008-10-16 13:35:35 +00:00
Gerald Combs b9fac8aa8a Fetch the key length using pntohs. Initialize and check its length.
svn path=/trunk/; revision=26115
2008-09-02 17:26:24 +00:00
Bill Meier afd857957a Fix a few Emacs "file variables" to have "safe" values.
That is: indent-tabs-mode: tabs --> indent-tabs-mode: t
Also: fix a typo: set-tabs-mode --> indent-tabs-mode

svn path=/trunk/; revision=26113
2008-09-02 11:17:03 +00:00
Gerald Combs ab689cc334 Add another buffer length check to group key decryption.
svn path=/trunk/; revision=26071
2008-08-25 15:26:15 +00:00
Gerald Combs f31f3f6d14 Fix a couple of crashes in WPA group key decryption.
svn path=/trunk/; revision=26070
2008-08-25 15:22:48 +00:00
Gerald Combs b5a8677250 Add WPA group key decryption from Brian Stormont, via bug 1420:
Although this patch successfully recognizes group keys and decrypts packets
properly using the group key, there is a limitation.  If an AP is using key
rotation, clicking on individual packets in a trace may not properly decrypt a
packet encrypted with a group key.  This is because the current structure used
in Wireshark only supports one active unicast and one active group key.  If a
new key has been seen, but you are looking at a packet encrypted with an older
key, it will not decrypt.  The summary lines, however, do show the packets
properly decrypted.

I've written up a much longer and more detailed explanation in a comment in the
code, along with a proposed idea for a solution, plus a clunky work-around in
the GUI when using the current code.

I also suspect there might still be a problem with decrypting TKIP groups keys
that are sent using WPA2 authentication.  In the most common operation, if you
are using WPA2, you'll also be using AES keys. It's not a common AP
configuration to use WPA2 with TKIP. In fact, most APs don't seem to support
it.  Since it is an uncommon setup, I haven't put aside the time to test this
patch against such an AP.   I do have access to an AP that supports this, so
when I have the time I'll test it and if needed, will submit another patch to
handle that odd-ball condition.

From me:

Remove the decrypt element of s_rijndael_ctx (which was unused, as indicated
in the comments).
Preserve the GPL licensing text in several files (which the patch shouldn't
have removed).
Remove changes that added whitespace.
Convert C++-style comments to C-style.
Update to include recent SVN changes (e.g. renaming variables named "index").
Remove extraneous printf's.
Define DEBUG_DUMP in airpdcap_debug.h.
Comment out some instances of DEBUG_DUMP.
Change malloc/free to g_malloc/g_free.
Use g_memdup instead of allocating and copying.
Use gint16 instead of INT16 in airpdcap_rijndael.c.
Add Brian to AUTHORS.


svn path=/trunk/; revision=25879
2008-07-30 22:32:21 +00:00
Guy Harris dc7ae72983 Fix another variable named "index".
svn path=/trunk/; revision=25581
2008-06-24 18:10:57 +00:00
Guy Harris 11848b9efe Rename a variable to avoid collisions with the old V7 index() function,
still declared by <string.h> on some platforms (at least the way we
compile, with all sorts of non-ANSI C/non-POSIX stuff added).

svn path=/trunk/; revision=25551
2008-06-23 21:06:42 +00:00
Anders Broman 63c5c71cf8 Remove:
#ifdef NEED_G_ASCII_STRCASECMP_H
#include "g_ascii_strcasecmp.h"
#endif

svn path=/trunk/; revision=24859
2008-04-09 05:36:08 +00:00
Stephen Fisher 726a1caaf1 - Remove GLIB1 code
- Change ugly GLIB version checking statements to GLIB_CHECK_VERSION
- Remove ws_strsplit files because we no longer need to borrow GLIB2's
  g_strsplit code for the no longer supported GLIB1 builds


svn path=/trunk/; revision=24829
2008-04-07 05:22:54 +00:00
Gerald Combs b0f634c396 If we haven't found a handshake packet, say so.
svn path=/trunk/; revision=24605
2008-03-11 18:32:20 +00:00
Gerald Combs 9d2533aa25 Change the BSD-licensed written by CACE to BSD+GPL.
svn path=/trunk/; revision=24599
2008-03-10 17:20:15 +00:00
Gerald Combs 2cc71b9b66 Move the contents of AirPDcapCleanKeys() into AirPDcapInitContext()
and call AirPDcapInitContext() where we were previously calling
AirPDcapCleanKeys(). If we're resetting our keys, we should reset our
SA list and other associated data as well.

svn path=/trunk/; revision=24562
2008-03-05 00:57:30 +00:00
Ronnie Sahlberg 722ab30a62 we must include config.h or else NEED_G_ASCII_STRCASECMP_H will never be
defined

we must also include g_ascii_strcasecmp.h from the parent directory


svn path=/trunk/; revision=23634
2007-11-28 01:20:46 +00:00
Guy Harris 9c89cdaaa3 strcasecmp(), strncasecmp(), g_strcasecmp(), and g_strncasecmp() delenda
est.  Use g_ascii_strcasecmp() and g_ascii_strncasecmp(), and supply our
own versions if they're missing from GLib (as is the case with GLib
1.x).

In the code to build the list of named fields for Diameter, don't use
g_strdown(); do our own g_ascii_-style upper-case to lower-case mapping
in the hash function and use g_ascii_strcasecmp() in the compare
function.

We do this because there is no guarantee that toupper(), tolower(), and
functions that use them will, for example, map between "I" and "i" in
all locales; in Turkish locales, for example, there are, in both
upper case and lower case, versions of "i" with and without a dot, and
the upper-case version of "i" is "I"-with-a-dot and the lower-case
version of "I" is "i"-without-a-dot.  This causes strings that should
match not to match.

This finishes fixing bug 2010 - an earlier checkin prevented the crash
(as there are other ways to produce the same crash, e.g. a bogus
dictionary.xml file), but didn't fix the case-insensitive string matching.

svn path=/trunk/; revision=23623
2007-11-27 18:52:51 +00:00
Gerald Combs 6327c19912 From Christopher McKenzie: Zero out our SAs before we use them.
Remove an unneeded for loop in AirPDcapCleanKeys(), and make it static.

svn path=/trunk/; revision=23314
2007-10-31 00:15:17 +00:00
Sake Blok 6bec9d3d9e From tmiller@hcjbtech.org : Spelling error on GDS DB protocol dissector: "Buffer lenght:"
(recursively grepped through the source and corrected all occurences, even 
the ones just in comments)



svn path=/trunk/; revision=23211
2007-10-16 23:42:33 +00:00
Gerald Combs d75af45adc Make the WPA passphrase a percent-escaped string. Constify and GLib-ize
some variables.

svn path=/trunk/; revision=22210
2007-06-27 19:02:58 +00:00
Gerald Combs 4944cdc899 A recent checkin broke wpa-psk keys; fix it.
svn path=/trunk/; revision=22169
2007-06-23 00:00:57 +00:00
Gerald Combs 7efcc33a1e In packet-ieee802.11.c, fix a serious preference bug introduced in the
last checkin.  In airpcap.c, appease the toolbar code by returning a
lower-case, non-separated WEP key.

svn path=/trunk/; revision=22152
2007-06-21 20:22:56 +00:00
Gerald Combs 249a747c51 Be less restrictive about WEP key preferences. Use hex_str_to_bytes to
process WEP keys.  Allow the "wep:" prefix for WEP keys even when
HAVE_AIRPDCAP isn't defined.  Add a NULL pointer check to
hex_str_to_bytes().  Fixes bug 1584.

Fixup indentation.

svn path=/trunk/; revision=22151
2007-06-21 17:49:03 +00:00
Gerald Combs c992e2a3c5 Be a little less picky about EAPOL packet lengths. Someone sent in a
capture that has extra data in the 4th handshake message.

svn path=/trunk/; revision=22138
2007-06-18 21:58:34 +00:00
Gerald Combs 1d567d6e6b The 802.11 dissector calculates the header size, so pass that value to
the WEP/WPA decryption code instead of re-calculating it.  Fixes bug
1639.

Remove fcsPresent, radiotapPresent, and associated code from airpdcap.c
since they were always FALSE.  Glib-ize some data types.  Fixup white
space.

Update the release notes.

svn path=/trunk/; revision=22104
2007-06-14 22:09:14 +00:00
Gerald Combs 7c8bb268ca The fix for ad-hoc WEP decryption in r21814 broke WPA. Replace it with
a better fix.  Clean up whitespace while we're at it.

svn path=/trunk/; revision=21847
2007-05-20 22:40:35 +00:00
Gerald Combs 86865b0fb8 Try WEP decryption before WPA. This keeps us from returning
prematurely if we have an IBSS frame.

svn path=/trunk/; revision=21814
2007-05-17 17:14:39 +00:00
Guy Harris 552fff182e Don't assume a pointer to UCHAR is necessarily aligned; that now
generates a warning.

svn path=/trunk/; revision=21528
2007-04-23 16:41:31 +00:00
Guy Harris 065be642f4 Get rid of some const warnings.
Use the "pnto" macros to fetch 16-bit quantities from a buffer - not
only do they have the right casts to avoid const warnings, they also
work even on platforms (such as SPARC) where you can't dereference
unaligned pointers without a trap.

Similarly, compare a possibly-unaligned (we make no alignment guarantees
in Wireshark) 16-bit quantity against 0 a byte at a time.

svn path=/trunk/; revision=21507
2007-04-22 18:26:45 +00:00
Guy Harris 6327554e6c Check the GLib version number, not the GTK+ version number; it's GLib we
care about, and this code doesn't use GTK+, so it doesn't include any
GTK+ headers and therefore doesn't get the GTK+ version number defined.

svn path=/trunk/; revision=21506
2007-04-22 18:04:52 +00:00
Ronnie Sahlberg 7a97135752 GString.len has changed signednedd between gtk1 and gtk2
this will hopefully again compile under both gtk1 and 2


svn path=/trunk/; revision=21499
2007-04-22 15:22:53 +00:00
Jörg Mayer 7b20d35047 Fix a signedness warning.
svn path=/trunk/; revision=21497
2007-04-22 11:51:36 +00:00
Ronnie Sahlberg 99bc488535 fix the sign of a variable to prevent a singed/unsigned warning during
compiling


svn path=/trunk/; revision=21494
2007-04-22 09:58:12 +00:00
Stephen Fisher 84c5becd89 Add -Werror for gcc to a few more directories and fix a few warnings
svn path=/trunk/; revision=21129
2007-03-22 23:24:13 +00:00
Gerald Combs 183cbf95cc WEP decryption is destructive -- pass a fresh copy of our data buffer
instead of the actual buffer.  Add an entry to the release notes, and
clear out leftovers from the 0.99.5 release.

svn path=/trunk/; revision=20875
2007-02-20 18:44:22 +00:00
Stephen Fisher 0ebc01dc03 From Sebastien Tandel:
Create two new files (ws_strsplit.[ch]) that use GTK2 code to override
the buggy g_strsplit() function when compiling for GTK1.  Include this
work-around function (ws_strsplit) in libwireshark.def.  Add notes on usage
to README.developer.  Include epan/ws_strsplit.h in all files that use
g_strsplit().


svn path=/trunk/; revision=20804
2007-02-13 20:57:22 +00:00
Gerald Combs 6132c5b323 Fix saving WPA key preferences from the decryption key management dialog,
which was broken by r20388.

svn path=/trunk/; revision=20573
2007-01-26 23:28:22 +00:00
Gerald Combs f9e2736d7c Add support for "wildcard" WPA keys in the form "wpa:passphrase" (note
the lack of SSID).  Wildcarding combines the passphrase with the last
seen SSID and attempts decryption.  The last-seen stack is only one
element tall, which means it may get clobbered on busy and diverse
networks.  We can expand it if needed.

Make internal functions static in airpdcap.c.  Rearrange the
AIRPDCAP_KEY_ITEM struct so that the passphrase and SSID don't get
clobbered when we set our PSK.

svn path=/trunk/; revision=20572
2007-01-26 21:54:59 +00:00
Gerald Combs 2664012ca6 Fix a key preference crash bug. Improve WPA passphrase and SSID length
handling.  Free a byte array.  Squelch a compiler warning.  Fix a URI
string parsing bug.

svn path=/trunk/; revision=20549
2007-01-25 01:24:14 +00:00
Stephen Fisher a5b223382f From Gisle Vanem: Add the final ) to a g_strdup_printf call
svn path=/trunk/; revision=20457
2007-01-16 21:16:45 +00:00
Gerald Combs ba4a327704 Add copyright attributions and licenses. License each derived work
according to its pedigree.

svn path=/trunk/; revision=20401
2007-01-12 00:54:13 +00:00
Gerald Combs f67fdf4865 Move sha1.[ch] to epan/crypt/crypt-sha1.[ch]. Remove duplicate code.
svn path=/trunk/; revision=20399
2007-01-12 00:33:32 +00:00
Gerald Combs def1f435fc Fix compilation problems under Windows. In the GTK code, convert SSIDs
to GByteArrays.  Add format_uri() to strutil, which formats a byte string
with percent-escapes.  Fixup whitespace and indentation.

svn path=/trunk/; revision=20397
2007-01-11 22:12:33 +00:00
Gerald Combs 983f496f69 Add uri_str_to_bytes(), byte_array_dup(), and byte_array_equal()
functions to strutil.  Use GByteArrays to store SSIDs for decryption,
and let the user specify arbitrary byte strings using percent-encoded
strings.  We should probably add percent encoding for pass phrases as
well, so you can escape the ":" character.

Move the key struct key conversion utilities to airpdcap.c, and remove
duplicate code from packet-ieee80211.c.  Fix a lot of indentation.

svn path=/trunk/; revision=20388
2007-01-11 02:42:34 +00:00
Gerald Combs 2a033f3350 Remove duplicate crc32 code.
svn path=/trunk/; revision=20347
2007-01-08 21:19:46 +00:00
Gerald Combs 53689800e6 Move epan/crypt-md5.[ch] to epan/crypt. Remove
epan/crypt/airpdcap_md5.[ch].  Fix up whitespace.

svn path=/trunk/; revision=20277
2007-01-02 22:49:57 +00:00
Gerald Combs 20fe5ab1a3 Fix a compiler warning. Surround an MSVC-specific #pragma with an
#ifdef, and add a link to a -dev mailing list thread pointing out that
it may not be necessary.  Fixup whitespace and comments.

svn path=/trunk/; revision=20256
2007-01-01 20:07:23 +00:00
Guy Harris 1f349f16e1 Add some parentheses, as the suggestion of Mr. GCC.
svn path=/trunk/; revision=20236
2006-12-29 22:48:52 +00:00
Gerald Combs bd282b4114 Move the contents of airpdcap to epan/crypt. Try to fix the current
distcheck failure.  Move the nmake build targets for airpdcap from 
epan/dissectors to epan.  This will probably break the Windows build.

svn path=/trunk/; revision=20231
2006-12-28 17:22:12 +00:00