diff options
author | Vasanthakumar Thiagarajan <vasanth@atheros.com> | 2008-12-23 11:00:50 -0500 |
---|---|---|
committer | John W. Linville <linville@tuxdriver.com> | 2009-01-29 15:58:47 -0500 |
commit | eb46936b9f2b639f4edeeaf9154d49476fc30fe5 (patch) | |
tree | 07c5ba68d5a49c722c019e401d8f8abf53c60e20 /net/mac80211/wext.c | |
parent | 9ee677c2276bfcbcf68042ec2718a504af0c5fd7 (diff) |
mac80211: Scale down to non-HT association with TKIP/WEP as pairwise cipher
As TKIP is not updated to new security needs which arise when
TKIP is used to encrypt A-MPDU aggregated data frames, IEEE802.11n
does not allow any cipher other than CCMP (Which has new extensions
defined) as pairwise cipher between HT peers.
When such configuration (TKIP/WEP in HT) is forced, we still
associate in non-HT mode (11a/b/g).
Signed-off-by: Vasanthakumar Thiagarajan <vasanth@atheros.com>
Acked-by: Johannes Berg <johannes@sipsolutions.net>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'net/mac80211/wext.c')
-rw-r--r-- | net/mac80211/wext.c | 12 |
1 files changed, 11 insertions, 1 deletions
diff --git a/net/mac80211/wext.c b/net/mac80211/wext.c index 7162d5816f39..011592fd4528 100644 --- a/net/mac80211/wext.c +++ b/net/mac80211/wext.c | |||
@@ -903,12 +903,22 @@ static int ieee80211_ioctl_siwauth(struct net_device *dev, | |||
903 | 903 | ||
904 | switch (data->flags & IW_AUTH_INDEX) { | 904 | switch (data->flags & IW_AUTH_INDEX) { |
905 | case IW_AUTH_WPA_VERSION: | 905 | case IW_AUTH_WPA_VERSION: |
906 | case IW_AUTH_CIPHER_PAIRWISE: | ||
907 | case IW_AUTH_CIPHER_GROUP: | 906 | case IW_AUTH_CIPHER_GROUP: |
908 | case IW_AUTH_WPA_ENABLED: | 907 | case IW_AUTH_WPA_ENABLED: |
909 | case IW_AUTH_RX_UNENCRYPTED_EAPOL: | 908 | case IW_AUTH_RX_UNENCRYPTED_EAPOL: |
910 | case IW_AUTH_KEY_MGMT: | 909 | case IW_AUTH_KEY_MGMT: |
911 | break; | 910 | break; |
911 | case IW_AUTH_CIPHER_PAIRWISE: | ||
912 | if (sdata->vif.type == NL80211_IFTYPE_STATION) { | ||
913 | if (data->value & (IW_AUTH_CIPHER_WEP40 | | ||
914 | IW_AUTH_CIPHER_WEP104 | IW_AUTH_CIPHER_TKIP)) | ||
915 | sdata->u.sta.flags |= | ||
916 | IEEE80211_STA_TKIP_WEP_USED; | ||
917 | else | ||
918 | sdata->u.sta.flags &= | ||
919 | ~IEEE80211_STA_TKIP_WEP_USED; | ||
920 | } | ||
921 | break; | ||
912 | case IW_AUTH_DROP_UNENCRYPTED: | 922 | case IW_AUTH_DROP_UNENCRYPTED: |
913 | sdata->drop_unencrypted = !!data->value; | 923 | sdata->drop_unencrypted = !!data->value; |
914 | break; | 924 | break; |