git: a54a36c40f07 - main - ath: migrate to new net80211 encryption key API
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Thu, 26 Feb 2026 03:56:19 UTC
The branch main has been updated by adrian:
URL: https://cgit.FreeBSD.org/src/commit/?id=a54a36c40f07092ace706ccec8c3db6f6a1877c1
commit a54a36c40f07092ace706ccec8c3db6f6a1877c1
Author: Adrian Chadd <adrian@FreeBSD.org>
AuthorDate: 2026-02-26 03:49:27 +0000
Commit: Adrian Chadd <adrian@FreeBSD.org>
CommitDate: 2026-02-26 03:49:27 +0000
ath: migrate to new net80211 encryption key API
Migrate to the new encryption key API rather than poking at the
key struct directly.
Differential Revision: https://reviews.freebsd.org/D54479
---
sys/dev/ath/if_ath_keycache.c | 34 +++++++++++++++++++++++++---------
1 file changed, 25 insertions(+), 9 deletions(-)
diff --git a/sys/dev/ath/if_ath_keycache.c b/sys/dev/ath/if_ath_keycache.c
index a58625ad2803..2b40a8940674 100644
--- a/sys/dev/ath/if_ath_keycache.c
+++ b/sys/dev/ath/if_ath_keycache.c
@@ -134,12 +134,16 @@ ath_keyset_tkip(struct ath_softc *sc, const struct ieee80211_key *k,
* 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 @@ ath_keyset_tkip(struct ath_softc *sc, const struct ieee80211_key *k,
* 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 @@ ath_keyset_tkip(struct ath_softc *sc, const struct ieee80211_key *k,
* 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 @@ ath_keyset(struct ath_softc *sc, struct ieee80211vap *vap,
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;