|
@@ -167,12 +167,15 @@ int cfg80211_validate_key_settings(struct cfg80211_registered_device *rdev,
|
|
|
|
|
|
/*
|
|
|
* Disallow pairwise keys with non-zero index unless it's WEP
|
|
|
- * (because current deployments use pairwise WEP keys with
|
|
|
- * non-zero indizes but 802.11i clearly specifies to use zero)
|
|
|
+ * or a vendor specific cipher (because current deployments use
|
|
|
+ * pairwise WEP keys with non-zero indices and for vendor specific
|
|
|
+ * ciphers this should be validated in the driver or hardware level
|
|
|
+ * - but 802.11i clearly specifies to use zero)
|
|
|
*/
|
|
|
if (pairwise && key_idx &&
|
|
|
- params->cipher != WLAN_CIPHER_SUITE_WEP40 &&
|
|
|
- params->cipher != WLAN_CIPHER_SUITE_WEP104)
|
|
|
+ ((params->cipher == WLAN_CIPHER_SUITE_TKIP) ||
|
|
|
+ (params->cipher == WLAN_CIPHER_SUITE_CCMP) ||
|
|
|
+ (params->cipher == WLAN_CIPHER_SUITE_AES_CMAC)))
|
|
|
return -EINVAL;
|
|
|
|
|
|
switch (params->cipher) {
|