The branch main has been updated by adrian:

URL: 
https://cgit.FreeBSD.org/src/commit/?id=a54a36c40f07092ace706ccec8c3db6f6a1877c1

commit a54a36c40f07092ace706ccec8c3db6f6a1877c1
Author:     Adrian Chadd <[email protected]>
AuthorDate: 2026-02-26 03:49:27 +0000
Commit:     Adrian Chadd <[email protected]>
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;
 

Reply via email to