diff options
author | Mikael Kanstrup <mikael.kanstrup@sony.com> | 2019-04-03 15:09:21 +0200 |
---|---|---|
committer | Anders Broman <a.broman58@gmail.com> | 2019-04-04 07:16:04 +0000 |
commit | 52324097c24bbc757f15f5193a9a391dca205117 (patch) | |
tree | b28769e4078b68b2d24b37defdb9ca3717d886fa | |
parent | b39a736e918294f27b8218c1b2dd8ac82fbb77e6 (diff) |
ieee80211: FT over IEEE 802.1X (SHA384) is an FT AKMS
FT over IEEE 802.1X (SHA384) is also an FT AKMS so treat it
as such when dissecting the RSN IE. While at it replace the big
if statement with a function.
Bug: 15616
Change-Id: I9abe45a5c70bc062a9d6d8fb97226a3d0cde42b3
Reviewed-on: https://code.wireshark.org/review/32692
Petri-Dish: Alexis La Goutte <alexis.lagoutte@gmail.com>
Tested-by: Petri Dish Buildbot
Reviewed-by: Alexis La Goutte <alexis.lagoutte@gmail.com>
Reviewed-by: Anders Broman <a.broman58@gmail.com>
-rw-r--r-- | epan/dissectors/packet-ieee80211.c | 18 |
1 files changed, 17 insertions, 1 deletions
diff --git a/epan/dissectors/packet-ieee80211.c b/epan/dissectors/packet-ieee80211.c index b6c38697d4..25177c63e9 100644 --- a/epan/dissectors/packet-ieee80211.c +++ b/epan/dissectors/packet-ieee80211.c @@ -14459,6 +14459,22 @@ dissect_qos_capability(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, int return offset; } +/* See ieee80211_rsn_keymgmt_vals */ +static gboolean is_ft_akm_suite(guint32 akm_suite) +{ + switch (akm_suite) { + case 0x000FAC03: + case 0x000FAC04: + case 0x000FAC09: + case 0x000FAC0D: + case 0x000FAC10: + case 0x000FAC11: + return TRUE; + default: + return FALSE; + } +} + /* * 7.3.2.25 RSNE information element. Common format with OSEN except the * verison... should refactor @@ -14570,7 +14586,7 @@ dissect_rsn_ie(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, guint32 akm_suite = tvb_get_ntohl(tvb, offset); association_sanity_check->last_akm_suite = akm_suite; - if (akm_suite == 0x000FAC03 || akm_suite == 0x000FAC04 || akm_suite == 0x000FAC09 || akm_suite == 0x000FAC10 || akm_suite == 0x000FAC11) { + if (is_ft_akm_suite(akm_suite)) { /* This is an FT AKM suite */ association_sanity_check->has_ft_akm_suite = TRUE; if (association_sanity_check->rsn_first_ft_akm_suite == NULL && rsn_sub_akms_tree != NULL) { |