Page MenuHomeFreeBSD

D54479.diff
No OneTemporary

D54479.diff

diff --git a/sys/dev/ath/if_ath_keycache.c b/sys/dev/ath/if_ath_keycache.c
--- a/sys/dev/ath/if_ath_keycache.c
+++ b/sys/dev/ath/if_ath_keycache.c
@@ -134,12 +134,16 @@
* TX key goes at first index, RX key at the rx index.
* The hal handles the MIC keys at index+64.
*/
- memcpy(hk->kv_mic, k->wk_txmic, sizeof(hk->kv_mic));
+ memcpy(hk->kv_mic,
+ ieee80211_crypto_get_key_txmic_data(k),
+ sizeof(hk->kv_mic));
KEYPRINTF(sc, k->wk_keyix, hk, zerobssid);
if (!ath_hal_keyset(ah, k->wk_keyix, hk, zerobssid))
return 0;
- memcpy(hk->kv_mic, k->wk_rxmic, sizeof(hk->kv_mic));
+ memcpy(hk->kv_mic,
+ ieee80211_crypto_get_key_rxmic_data(k),
+ sizeof(hk->kv_mic));
KEYPRINTF(sc, k->wk_keyix+32, hk, mac);
/* XXX delete tx key on failure? */
return ath_hal_keyset(ah, k->wk_keyix+32, hk, mac);
@@ -149,8 +153,12 @@
* slot, just set key at the first index; the hal
* will handle the rest.
*/
- memcpy(hk->kv_mic, k->wk_rxmic, sizeof(hk->kv_mic));
- memcpy(hk->kv_txmic, k->wk_txmic, sizeof(hk->kv_txmic));
+ memcpy(hk->kv_mic,
+ ieee80211_crypto_get_key_rxmic_data(k),
+ sizeof(hk->kv_mic));
+ memcpy(hk->kv_txmic,
+ ieee80211_crypto_get_key_txmic_data(k),
+ sizeof(hk->kv_txmic));
KEYPRINTF(sc, k->wk_keyix, hk, mac);
return ath_hal_keyset(ah, k->wk_keyix, hk, mac);
}
@@ -160,13 +168,19 @@
* NB: must pass MIC key in expected location when
* the keycache only holds one MIC key per entry.
*/
- memcpy(hk->kv_mic, k->wk_txmic, sizeof(hk->kv_txmic));
+ memcpy(hk->kv_mic,
+ ieee80211_crypto_get_key_txmic_data(k),
+ sizeof(hk->kv_txmic));
} else
- memcpy(hk->kv_txmic, k->wk_txmic, sizeof(hk->kv_txmic));
+ memcpy(hk->kv_txmic,
+ ieee80211_crypto_get_key_txmic_data(k),
+ sizeof(hk->kv_txmic));
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));
+ memcpy(hk->kv_mic,
+ ieee80211_crypto_get_key_rxmic_data(k),
+ sizeof(hk->kv_mic));
KEYPRINTF(sc, k->wk_keyix, hk, mac);
return ath_hal_keyset(ah, k->wk_keyix, hk, mac);
}
@@ -210,8 +224,10 @@
KASSERT(cip->ic_cipher < nitems(ciphermap),
("invalid cipher type %u", cip->ic_cipher));
hk.kv_type = ciphermap[cip->ic_cipher];
- hk.kv_len = k->wk_keylen;
- memcpy(hk.kv_val, k->wk_key, k->wk_keylen);
+ hk.kv_len = ieee80211_crypto_get_key_len(k);
+ memcpy(hk.kv_val,
+ ieee80211_crypto_get_key_data(k),
+ ieee80211_crypto_get_key_len(k));
} else
hk.kv_type = HAL_CIPHER_CLR;

File Metadata

Mime Type
text/plain
Expires
Mon, Jan 19, 1:13 AM (14 h, 42 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
27493002
Default Alt Text
D54479.diff (2 KB)

Event Timeline