Ethereal-dev: [Ethereal-dev] Ethereal patch for IEEE 802.11 key descriptor type (IEEE 802.11i/
The latest IEEE 802.1X-REV draft has a TBD entry for IEEE 802.11
Descriptor Type (EAPOL-Key packets). WPA used value 254 here, but IEEE
802.11i/RSN is likely to get another value. The final value may still
change, but the most probable value is 2 and the attached patch adds a
separate define for RSN EAPOL-Key using this descriptor type. The frame
itself is processed with the exact same code as WPA EAPOL-Keys in this
version since both WPA and RSN EAPOL-Key formats are so similar to each
other.
--
Jouni Malinen PGP id EFC895FA
Index: packet-eapol.c
===================================================================
RCS file: /cvsroot/ethereal/packet-eapol.c,v
retrieving revision 1.17
diff -u -p -r1.17 packet-eapol.c
--- packet-eapol.c 28 Mar 2004 00:26:13 -0000 1.17
+++ packet-eapol.c 30 Mar 2004 05:21:40 -0000
@@ -80,6 +80,8 @@ static dissector_handle_t data_handle;
#define EAPOL_KEY 3
#define EAPOL_ENCAP_ASF_ALERT 4
+#define EAPOL_RSN_KEY 2 /* TBD, may change in final IEEE 802.1X-REV
+ */
#define EAPOL_WPA_KEY 254
static const value_string eapol_type_vals[] = {
@@ -93,6 +95,7 @@ static const value_string eapol_type_val
static const value_string eapol_keydes_type_vals[] = {
{ 1, "RC4 Descriptor" },
+ { EAPOL_RSN_KEY, "EAPOL RSN key" },
{ EAPOL_WPA_KEY, "EAPOL WPA key" },
{ 0, NULL }
};
@@ -180,7 +183,7 @@ dissect_eapol(tvbuff_t *tvb, packet_info
keydesc_type = tvb_get_guint8(tvb, offset);
proto_tree_add_item(eapol_tree, hf_eapol_keydes_type, tvb, offset, 1, FALSE);
offset += 1;
- if (keydesc_type == EAPOL_WPA_KEY) {
+ if (keydesc_type == EAPOL_WPA_KEY || keydesc_type == EAPOL_RSN_KEY) {
keyinfo = tvb_get_ntohs(tvb, offset);
keyinfo_item =
proto_tree_add_uint(eapol_tree, hf_eapol_wpa_keydes_keyinfo, tvb,