diff options
author | Jouni Malinen <jouni@codeaurora.org> | 2020-02-22 15:25:43 +0200 |
---|---|---|
committer | Johannes Berg <johannes.berg@intel.com> | 2020-02-24 10:35:48 +0100 |
commit | 56be393fa8b40db2d4f54f97614f645eb8d3c32e (patch) | |
tree | 4fff8006404c1dec75a58674508873581ffef9bf /net/wireless/util.c | |
parent | f8af764bf1cb86bed615baae84e3bbb6e4d3912d (diff) | |
download | linux-56be393fa8b40db2d4f54f97614f645eb8d3c32e.tar.gz linux-56be393fa8b40db2d4f54f97614f645eb8d3c32e.tar.bz2 linux-56be393fa8b40db2d4f54f97614f645eb8d3c32e.zip |
cfg80211: Support key configuration for Beacon protection (BIGTK)
IEEE P802.11-REVmd/D3.0 adds support for protecting Beacon frames using
a new set of keys (BIGTK; key index 6..7) similarly to the way
group-addressed Robust Management frames are protected (IGTK; key index
4..5). Extend cfg80211 and nl80211 to allow the new BIGTK to be
configured. Add an extended feature flag to indicate driver support for
the new key index values to avoid array overflows in driver
implementations and also to indicate to user space when this
functionality is available.
Signed-off-by: Jouni Malinen <jouni@codeaurora.org>
Link: https://lore.kernel.org/r/20200222132548.20835-2-jouni@codeaurora.org
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Diffstat (limited to 'net/wireless/util.c')
-rw-r--r-- | net/wireless/util.c | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/net/wireless/util.c b/net/wireless/util.c index 8481e9ac33da..72926f87c913 100644 --- a/net/wireless/util.c +++ b/net/wireless/util.c @@ -231,7 +231,12 @@ int cfg80211_validate_key_settings(struct cfg80211_registered_device *rdev, struct key_params *params, int key_idx, bool pairwise, const u8 *mac_addr) { - if (key_idx < 0 || key_idx > 5) + int max_key_idx = 5; + + if (wiphy_ext_feature_isset(&rdev->wiphy, + NL80211_EXT_FEATURE_BEACON_PROTECTION)) + max_key_idx = 7; + if (key_idx < 0 || key_idx > max_key_idx) return -EINVAL; if (!pairwise && mac_addr && !(rdev->wiphy.flags & WIPHY_FLAG_IBSS_RSN)) |