From nobody Tue Apr 29 11:41:53 2025 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 4Zmz1Z3Px0z5tvJB; Tue, 29 Apr 2025 11:41:54 +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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4Zmz1Z119Vz3wyh; Tue, 29 Apr 2025 11:41:54 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1745926914; 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=RtnhbqHm/v9CetXa5OMkRA+58+Za7k+U9mgjYljL0pc=; b=e6WsningHeAbhqN4kqWQTv4IBadW2m+b6/4mlSD8ORsmiVNZIMR/r7dWwM7yzlH/5ijzBw lzalJInGNKl5YkJpRoBWX2Fk2ne5gOAgTMpPTPQEKTBz0ILAaglocIpff7xuI5yyhminbr uH1LZVu/tWXxV9nr1xQBDATMTfzvvOQ6n9prClBp+ORvv4+/IEN0ZjCYvxY00INyU9G3nF /3+CdqK64EGQpvwhBNwX/3z2pUZ2joNr8GNOVqF2Q5dGurBig4+wjFTsFeyntWillOf5uT P/LGZI0mIsBpBQqHVbFPPYl/fJNJ6J0LnR3LBQA+TphJZsDrQnQqfPU1t3hkWQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1745926914; a=rsa-sha256; cv=none; b=S1qHVG1VIiQiAyDcWsJ8azYa/oY1OTB1VRW9Y8j/cq7vcEElQJPrsQVQcRAKp2oH+KF0CU MX01jVdWLUpvfwB6B+GlibyehGJem2f3Fi17Nag35hqSRG/598BsfFO0QrUFrzLr5qBDth VNaWBQsEozuRZBxYCn0+4YeslgWryJTdLB6eKcw0q7Gix7W133A9XV4lOT+uC0cxKLlFXQ 7OR7o3tIQhmqtfzv4Ub8uYdnKh93rogC3EZ1VLY7brUOlh6NgIrAHH7E8IiDm9IFKQGx47 YWtOxCtLCCKMRrd83R5+4MG4J1zbnh/KQnNc4F4xgGYakwpbreVKdlQrJxau5g== 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=1745926914; 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=RtnhbqHm/v9CetXa5OMkRA+58+Za7k+U9mgjYljL0pc=; b=Fo0u0autkdu6UDplYmluJkAa4JaozTebd46s0aOVNuidPoSf/ROoP3ISG7SBaEBUc8qKmK R9SLiKxOowOXwSuigSWTk5HJNiauqdQv2JbwlJp34d15VoAPAbRQQXn93BE/XTL1/0s4s5 DM+qmRJA6jzYA7pjohKwWOoUD8NF2DbvEKtTlUDFedU6gKzKXVhCSkkjyeBRwS5IhlznxJ BFRpcMSc1jWtjlDMS9pRsPv1kv0UNhStnepqMve/BdOhwFjMxmgcV/gJUGdZrwWShy6IKt GGabYWCFEf7lJzwFjEYnLKeYthaElDIvvlima7Bnbg2H+DriMhPWhGH06+2M+Q== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (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 did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4Zmz1Z06tbz3jJ; Tue, 29 Apr 2025 11:41:54 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 53TBfrXu046324; Tue, 29 Apr 2025 11:41:53 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 53TBfrH0046321; Tue, 29 Apr 2025 11:41:53 GMT (envelope-from git) Date: Tue, 29 Apr 2025 11:41:53 GMT Message-Id: <202504291141.53TBfrH0046321@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: "Bjoern A. Zeeb" Subject: git: ba1325db9fdc - stable/14 - LinuxKPI: 802.11: fill ieee80211_get_key_rx_seq() also for TKIP/GCMP 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: bz X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: ba1325db9fdc97eade99b7c6cb24f7eb613c8163 Auto-Submitted: auto-generated The branch stable/14 has been updated by bz: URL: https://cgit.FreeBSD.org/src/commit/?id=ba1325db9fdc97eade99b7c6cb24f7eb613c8163 commit ba1325db9fdc97eade99b7c6cb24f7eb613c8163 Author: Bjoern A. Zeeb AuthorDate: 2025-04-15 19:36:53 +0000 Commit: Bjoern A. Zeeb CommitDate: 2025-04-29 10:49:31 +0000 LinuxKPI: 802.11: fill ieee80211_get_key_rx_seq() also for TKIP/GCMP In addition to CCMP add TKIP and GCMP support. The others are still TODO() until we do suport them natively. Also refine checks for tid and narrow them down (also don't assert but gratiously fail). Sponsored by: The FreeBSD Foundation (cherry picked from commit a7131a748483adf783ff7ac2a8ab71d5c17eb925) --- sys/compat/linuxkpi/common/include/net/mac80211.h | 30 ++++++++++++++++++----- 1 file changed, 24 insertions(+), 6 deletions(-) diff --git a/sys/compat/linuxkpi/common/include/net/mac80211.h b/sys/compat/linuxkpi/common/include/net/mac80211.h index 98be1735d6ab..0d033da2b83e 100644 --- a/sys/compat/linuxkpi/common/include/net/mac80211.h +++ b/sys/compat/linuxkpi/common/include/net/mac80211.h @@ -2451,28 +2451,46 @@ ieee80211_get_key_rx_seq(struct ieee80211_key_conf *keyconf, int8_t tid, KASSERT(keyconf != NULL && seq != NULL, ("%s: keyconf %p seq %p\n", __func__, keyconf, seq)); - KASSERT(tid <= IEEE80211_NUM_TIDS, ("%s: tid out of bounds %d\n", - __func__, tid)); k = keyconf->_k; KASSERT(k != NULL, ("%s: keyconf %p ieee80211_key is NULL\n", __func__, keyconf)); switch (keyconf->cipher) { + case WLAN_CIPHER_SUITE_TKIP: + if (tid < 0 || tid >= IEEE80211_NUM_TIDS) + return; + /* See net80211::tkip_decrypt() */ + seq->tkip.iv32 = TKIP_PN_TO_IV32(k->wk_keyrsc[tid]); + seq->tkip.iv16 = TKIP_PN_TO_IV16(k->wk_keyrsc[tid]); + break; case WLAN_CIPHER_SUITE_CCMP: case WLAN_CIPHER_SUITE_CCMP_256: - if (tid < 0) + if (tid < -1 || tid >= IEEE80211_NUM_TIDS) + return; + if (tid == -1) p = (const uint8_t *)&k->wk_keyrsc[IEEE80211_NUM_TIDS]; /* IEEE80211_NONQOS_TID */ else p = (const uint8_t *)&k->wk_keyrsc[tid]; memcpy(seq->ccmp.pn, p, sizeof(seq->ccmp.pn)); break; + case WLAN_CIPHER_SUITE_GCMP: + case WLAN_CIPHER_SUITE_GCMP_256: + if (tid < -1 || tid >= IEEE80211_NUM_TIDS) + return; + if (tid == -1) + p = (const uint8_t *)&k->wk_keyrsc[IEEE80211_NUM_TIDS]; /* IEEE80211_NONQOS_TID */ + else + p = (const uint8_t *)&k->wk_keyrsc[tid]; + memcpy(seq->gcmp.pn, p, sizeof(seq->gcmp.pn)); + break; case WLAN_CIPHER_SUITE_AES_CMAC: + case WLAN_CIPHER_SUITE_BIP_CMAC_256: TODO(); memset(seq->aes_cmac.pn, 0xfa, sizeof(seq->aes_cmac.pn)); /* XXX TODO */ break; - case WLAN_CIPHER_SUITE_TKIP: + case WLAN_CIPHER_SUITE_BIP_GMAC_128: + case WLAN_CIPHER_SUITE_BIP_GMAC_256: TODO(); - seq->tkip.iv32 = 0xfa; /* XXX TODO */ - seq->tkip.iv16 = 0xfa; /* XXX TODO */ + memset(seq->aes_gmac.pn, 0xfa, sizeof(seq->aes_gmac.pn)); /* XXX TODO */ break; default: pr_debug("%s: unsupported cipher suite %d\n", __func__, keyconf->cipher);