mirror of
https://github.com/torvalds/linux.git
synced 2024-11-24 21:21:41 +00:00
cfg80211: Remove strict validation of AKM suites
NL80211_ATTR_AKM_SUITES can be used to configure new AKMs, like FT or the SHA-256 -based AKMs or FT from 802.11r/802.11w. In addition, vendor specific AKMs could be used. The current validation code for the connect command prevents cfg80211-based drivers from using these mechanisms even if the driver would not actually use this AKM value (i.e., it uses WPA/RSN IE from user space). mac80211-based drivers allow any AKM to be used since this value is not used there. Remove the unnecessary validation step in cfg80211 to allow drivers to decide what AKMs are supported. In theory, we could handle this by advertising supported AKMs, but that would not be very effective unless we enforce all drivers (including mac80211) to advertise the set of supported AKMs. This would require additional changes in many places whenever a new AKM is introduced even though no actually functionality changes may be required in most drivers. Signed-off-by: Jouni Malinen <jouni@qca.qualcomm.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
This commit is contained in:
parent
37a41b4aff
commit
6d30240e3d
@ -4126,12 +4126,6 @@ static bool nl80211_valid_wpa_versions(u32 wpa_versions)
|
||||
NL80211_WPA_VERSION_2));
|
||||
}
|
||||
|
||||
static bool nl80211_valid_akm_suite(u32 akm)
|
||||
{
|
||||
return akm == WLAN_AKM_SUITE_8021X ||
|
||||
akm == WLAN_AKM_SUITE_PSK;
|
||||
}
|
||||
|
||||
static bool nl80211_valid_cipher_suite(u32 cipher)
|
||||
{
|
||||
return cipher == WLAN_CIPHER_SUITE_WEP40 ||
|
||||
@ -4295,7 +4289,7 @@ static int nl80211_crypto_settings(struct cfg80211_registered_device *rdev,
|
||||
|
||||
if (info->attrs[NL80211_ATTR_AKM_SUITES]) {
|
||||
void *data;
|
||||
int len, i;
|
||||
int len;
|
||||
|
||||
data = nla_data(info->attrs[NL80211_ATTR_AKM_SUITES]);
|
||||
len = nla_len(info->attrs[NL80211_ATTR_AKM_SUITES]);
|
||||
@ -4305,10 +4299,6 @@ static int nl80211_crypto_settings(struct cfg80211_registered_device *rdev,
|
||||
return -EINVAL;
|
||||
|
||||
memcpy(settings->akm_suites, data, len);
|
||||
|
||||
for (i = 0; i < settings->n_ciphers_pairwise; i++)
|
||||
if (!nl80211_valid_akm_suite(settings->akm_suites[i]))
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
return 0;
|
||||
|
Loading…
Reference in New Issue
Block a user