From nobody Thu Feb 26 03:56:23 2026 X-Original-To: dev-commits-src-main@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 4fLyLc0ycgz6TB55 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 4fLyLb6dR6z3CTH 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=1772078183; 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=sn8gAMaM62crCBs3JIgsHQMCfp3qYqyGHt7CiDGSSVX9j65Ij0oMu55cu0DFPDOVCnsoGv Y3MN+w+TqHGpZhI6ItvMED2T9IUDylgi2+pm+UzJHrlvDik6chc5BUPjVlek+a7Qxljgi/ 2axMmdXgrWDarFzODyYtDXwJ5k2p3EOknE8PKF8QUKKAKPj9kYMy+n7OdSUlvWRJfCbVSs wilBcAxT2Gxdu/DdHXjKApj5RSvmts7oC36L0UD/i7fdi4tPyBKHpBAdCb3zPP8XQ+1cOq zY/PpqbUWvRbSIYRu12ZmAjZ/eaiPCCAuZMSVgzV71LGQ6oF8cNUpOW8arVhXw== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1772078183; a=rsa-sha256; cv=none; b=hDyzmqD6kIUDz1xOzmvs1yJrlUwOHnwezHP4NVQjNjrR97bRSHwlXPTv7bYgQK3eK3nqc5 sX0ElGbCSn/YV9ibMknWXBj3B1qwDNFf8MEwG68qQUu4yGBYHVJiRpl0NM0KDXl+RCjI+Q YlNprZ7MdT1Fd8d6sv6HwsccZ7NjrvK637l0aD3zfviU4JZiOFHRhXqPVlg/JWQ7f92c1y rBAKPqjeA5Yqe8Ts+D7Z1nFxdr0Vn3I+iufx4RZMNHJphIw0Dht+A0uh0SNNsUcMQQ+i9L bTcBkrLmpaYPyNUfvt6iUiTjR8m/NQ7+VmvSYmgE4m0H0W1MrSu32V+POAnIww== 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=1772078183; 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=WHAVeC2bH8lIh0pzkfKoN1j7IJW5sQyxixn1jkDkNP3YpFwIQ/Frsh496Qwr9OO9iaH2Rc 9v9PUGkhBdA44l1Isf8B4dpCZNC50/iHQtXtYaWXPlqfE2uvGhEwQrIowullfjCiix9tiB 0BK6b8NeIAYizwjgZcuJtWwG0OjNCjWOc4+KD8CLFP3nrEM0j6BmWrCDAUAdxWWVwDG5mo EyQDueTcNb64zPVDx5SKBaqrREREjY97nfAxe4rR6ujaVIYCzPKjUMtZfA2ugVQ1ShuXjR wxZmyXYnic1Bf6WChgOdGuTAr+viU7sZpoMbDumUsCJxumRGwW65QvTWVgRaHw== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4fLyLb63p7zwl 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 the main branch of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-main List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-main@freebsd.org Sender: owner-dev-commits-src-main@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;