From nobody Thu Feb 26 03:56:23 2026 X-Original-To: dev-commits-src-all@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4fLyLc1dX8z6TBBS for ; Thu, 26 Feb 2026 03:56:24 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R12" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4fLyLb70QYz3Cqj for ; Thu, 26 Feb 2026 03:56:23 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1772078184; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=aRE0ZpQnAim8bI8tdXo9zYjT8LOPpcK/PKP9ouHGJNw=; b=I2r4ChLtSXYndxJBZwIjK9pk2AYrcoU+mAr5apoxLkaL/6dqgrZa/1YoqiEqrCkeC1zwP9 9gUlHIFmyHdfN5TGxJTsJWF7LVoLQioaJ1aZNwJbAE2NG8sIaVuRvmDpuneiQZqA2nefwB twd5mjd/V7XjRW9YLqal/TIfM7IO5sIxesfqzKYgDCenjfflJtjFpakY/hKg2k7XmK9s7d CiPhjQE3HmDoBjl90EKD524yrJLO1p7aTtKX9fOTW94pBqec5y4XPFTyYFu/8kYT8x2Xej chxzLPmuNZIhat5HclgWhdsHjg114sR1tOatgfepcWjck/FJdN4JRHEFVksJuQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1772078184; a=rsa-sha256; cv=none; b=o4C6hferiWjWw25TjYucK8QrBorX0YHTHKYPgT2gDG47mGuwcHuXIHgVJ2pmF5fzrz7UP4 XGsAY9NzJvoWSShQD7fQtInWu3SIXrQ13PRHzEfnuPr26ONxLGzOOM2L2LoejVCF8JsXoO GmlZZ/9of1RkMj1v4jbOZtzjl6NhyerBbGQDoIy2zWpuWjQ7SDksWj+bFyatjneTro3IIz BGPrur81Hsu7EX0VmJ8ydwqE3S8uD++OStAbHcp+NuheHaTg5/9tXvbNPAHmoXpvfmkWra 8gY+3+/BqLFPeQdBYYipjHk3bnih5YP1Hbw54Btzq2kVWCZbVn4iFbmIgeTs0Q== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1772078184; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=aRE0ZpQnAim8bI8tdXo9zYjT8LOPpcK/PKP9ouHGJNw=; b=Px3Udvq93Yknf3bNUm1Tan6yMOtlGi4vy9wGiAzPHMwU782U4BKKcwcPItV5zd5zSOnoYf /KQ1xnb8kfXPxcS9MkmHDkx8NSQ5sPxX50E79bhNX5QWRaPoWWPmdXFHQDWyGZA/DZU3j7 eidj1eJ2Esim1m91iE3r7BDuS+ADNnBydhPpkI6SR62G33Vk/3Iwda0AWiVbDrTqVJG4Od l8iBEy9zyXB0vPFvTQMkeykojkQ9REJ9AlDpKVrlxKt/4VQh5wlPvL5LJ5KT7yMrtOgsgq 8N5wWT7Xn3L0rnnKxK7tkN9c1AOnM0bDWZxMJ3N62Tjzsd402g/PMz6FG3b1Vg== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4fLyLb68TGzqx for ; Thu, 26 Feb 2026 03:56:23 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 31cf2 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Thu, 26 Feb 2026 03:56:23 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Adrian Chadd Subject: git: 8ebc054acacc - main - mwl: migrate to new net80211 encryption key API List-Id: Commit messages for all branches of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-all List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-all@freebsd.org Sender: owner-dev-commits-src-all@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: adrian X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 8ebc054acacc70de6b95fc171ff724f344374172 Auto-Submitted: auto-generated Date: Thu, 26 Feb 2026 03:56:23 +0000 Message-Id: <699fc467.31cf2.4b082269@gitrepo.freebsd.org> The branch main has been updated by adrian: URL: https://cgit.FreeBSD.org/src/commit/?id=8ebc054acacc70de6b95fc171ff724f344374172 commit 8ebc054acacc70de6b95fc171ff724f344374172 Author: Adrian Chadd AuthorDate: 2026-02-26 03:49:59 +0000 Commit: Adrian Chadd CommitDate: 2026-02-26 03:49:59 +0000 mwl: migrate to new net80211 encryption key API Migrate to the new encryption key API rather than poking at the key struct directly. Notably this driver was very clear about its expectation the net80211 key layout w/ key, TX MIC and RX MIC matches the firmware layout and just memcpy()'ed it. That has been refactored. Differential Revision: https://reviews.freebsd.org/D54484 --- sys/dev/mwl/if_mwl.c | 26 ++++++++++++++++++-------- 1 file changed, 18 insertions(+), 8 deletions(-) diff --git a/sys/dev/mwl/if_mwl.c b/sys/dev/mwl/if_mwl.c index 9f3d34f4f50d..513c3d9c60e4 100644 --- a/sys/dev/mwl/if_mwl.c +++ b/sys/dev/mwl/if_mwl.c @@ -1638,28 +1638,43 @@ _mwl_key_set(struct ieee80211vap *vap, const struct ieee80211_key *k, switch (cip->ic_cipher) { case IEEE80211_CIPHER_WEP: hk.keyTypeId = KEY_TYPE_ID_WEP; - hk.keyLen = k->wk_keylen; + hk.keyLen = ieee80211_crypto_get_key_len(k); if (k->wk_keyix == vap->iv_def_txkey) hk.keyFlags = KEY_FLAG_WEP_TXKEY; if (!IEEE80211_IS_STATICKEY(k)) { /* NB: WEP is never used for the PTK */ (void) addgroupflags(&hk, k); } + memcpy(hk.key.aes, ieee80211_crypto_get_key_data(k), + ieee80211_crypto_get_key_len(k)); break; case IEEE80211_CIPHER_TKIP: hk.keyTypeId = KEY_TYPE_ID_TKIP; hk.key.tkip.tsc.high = (uint32_t)(k->wk_keytsc >> 16); hk.key.tkip.tsc.low = (uint16_t)k->wk_keytsc; hk.keyFlags = KEY_FLAG_TSC_VALID | KEY_FLAG_MICKEY_VALID; - hk.keyLen = k->wk_keylen + IEEE80211_MICBUF_SIZE; + hk.keyLen = ieee80211_crypto_get_key_len(k) + + IEEE80211_MICBUF_SIZE; if (!addgroupflags(&hk, k)) hk.keyFlags |= KEY_FLAG_PAIRWISE; + + /* Copy in TKIP MIC after the 16 byte main key */ + memcpy(hk.key.aes, ieee80211_crypto_get_key_data(k), + ieee80211_crypto_get_key_len(k)); + memcpy(hk.key.aes + IEEE80211_KEYBUF_SIZE, + ieee80211_crypto_get_key_txmic_data(k), + 8); + memcpy(hk.key.aes + IEEE80211_KEYBUF_SIZE + 8, + ieee80211_crypto_get_key_rxmic_data(k), + 8); break; case IEEE80211_CIPHER_AES_CCM: hk.keyTypeId = KEY_TYPE_ID_AES; - hk.keyLen = k->wk_keylen; + hk.keyLen = ieee80211_crypto_get_key_len(k); if (!addgroupflags(&hk, k)) hk.keyFlags |= KEY_FLAG_PAIRWISE; + memcpy(hk.key.aes, ieee80211_crypto_get_key_data(k), + ieee80211_crypto_get_key_len(k)); break; default: /* XXX should not happen */ @@ -1667,11 +1682,6 @@ _mwl_key_set(struct ieee80211vap *vap, const struct ieee80211_key *k, __func__, k->wk_cipher->ic_cipher); return 0; } - /* - * NB: tkip mic keys get copied here too; the layout - * just happens to match that in ieee80211_key. - */ - memcpy(hk.key.aes, k->wk_key, hk.keyLen); /* * Locate address of sta db entry for writing key;