On 2011-08-08 1:19 PM, Bill Jordan wrote:
The first 4 hardware key indexes are reserved for WEP, but
never programmed. The result was that WEP always used
software decryption.
Signed-off-by: Bill Jordan<bjordan@xxxxxxxxxx>
---
drivers/net/wireless/ath/key.c | 8 +++++---
1 files changed, 5 insertions(+), 3 deletions(-)
diff --git a/drivers/net/wireless/ath/key.c b/drivers/net/wireless/ath/key.c
index 17b0efd..73177f1 100644
--- a/drivers/net/wireless/ath/key.c
+++ b/drivers/net/wireless/ath/key.c
@@ -501,7 +501,11 @@ int ath_key_config(struct ath_common *common,
if (key->keylen)
memcpy(hk.kv_val, key->key, key->keylen);
- if (!(key->flags& IEEE80211_KEY_FLAG_PAIRWISE)) {
+ if (hk.kv_type == ATH_CIPHER_WEP) {
+ if (key->keyidx>= IEEE80211_WEP_NKID)
+ return -EOPNOTSUPP;
+ idx = key->keyidx;
+ } else if (!(key->flags& IEEE80211_KEY_FLAG_PAIRWISE)) {
I'm not sure this is a good idea, this would break adding pairwise WEP
keys. Also, maybe WEP keys could use the BSSID in the lookup to avoid
the first 4 keycache slots, that way it'd work properly in multi-BSSID
AP setups.
- Felix
--
To unsubscribe from this list: send the line "unsubscribe linux-wireless" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html