PERFORCE change 139141 for review
Sam Leffler
sam at FreeBSD.org
Tue Apr 1 10:58:21 PDT 2008
http://perforce.freebsd.org/chv.cgi?CH=139141
Change 139141 by sam at sam_ebb on 2008/04/01 17:57:43
correct handling of tx-only TKIP keys: copy the appropriate
mic key (was previously masked by hostapd marking group keys
as tx/rx)
Affected files ...
.. //depot/projects/vap/sys/dev/ath/if_ath.c#54 edit
Differences ...
==== //depot/projects/vap/sys/dev/ath/if_ath.c#54 (text+ko) ====
@@ -2071,7 +2071,7 @@
/*
* Room for both TX+RX MIC keys in one key cache
* slot, just set key at the first index; the hal
- * will handle the reset.
+ * will handle the rest.
*/
memcpy(hk->kv_mic, k->wk_rxmic, sizeof(hk->kv_mic));
#if HAL_ABI_VERSION > 0x06052200
@@ -2080,13 +2080,16 @@
KEYPRINTF(sc, k->wk_keyix, hk, mac);
return ath_hal_keyset(ah, k->wk_keyix, hk, mac);
}
- } else if (k->wk_flags & IEEE80211_KEY_XR) {
- /*
- * TX/RX key goes at first index.
- * The hal handles the MIC keys are index+64.
- */
- memcpy(hk->kv_mic, k->wk_flags & IEEE80211_KEY_XMIT ?
- k->wk_txmic : k->wk_rxmic, sizeof(hk->kv_mic));
+ } else if (k->wk_flags & IEEE80211_KEY_XMIT) {
+#if HAL_ABI_VERSION > 0x06052200
+ memcpy(hk->kv_txmic, k->wk_txmic, sizeof(hk->kv_txmic));
+#else
+ memcpy(hk->kv_mic, k->wk_mic, sizeof(hk->kv_mic));
+#endif
+ KEYPRINTF(sc, k->wk_keyix, hk, mac);
+ return ath_hal_keyset(ah, k->wk_keyix, hk, mac);
+ } else if (k->wk_flags & IEEE80211_KEY_RECV) {
+ memcpy(hk->kv_mic, k->wk_rxmic, sizeof(hk->kv_mic));
KEYPRINTF(sc, k->wk_keyix, hk, mac);
return ath_hal_keyset(ah, k->wk_keyix, hk, mac);
}
More information about the p4-projects
mailing list