Wireshark-commits: [Wireshark-commits] rev 25879: /trunk/ /trunk/epan/crypt/: airpdcap.c airpdcap_d
http://anonsvn.wireshark.org/viewvc/viewvc.cgi?view=rev&revision=25879
User: gerald
Date: 2008/07/30 03:32 PM
Log:
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.
Directory: /trunk/epan/crypt/
Changes Path Action
+427 -20 airpdcap.c Modified
+4 -0 airpdcap_debug.h Modified
+2 -0 airpdcap_int.h Modified
+313 -1 airpdcap_rijndael.c Modified
+3 -1 airpdcap_rijndael.h Modified
+8 -2 airpdcap_tkip.c Modified
Directory: /trunk/
Changes Path Action
+4 -0 AUTHORS Modified