From nobody Wed Apr 23 16:25:15 2025 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 4ZjPbJ4lnSz5tbbc; Wed, 23 Apr 2025 16:25:16 +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 4ZjPbH5pQnz49Nj; Wed, 23 Apr 2025 16:25:15 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1745425515; 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=Q3fM9flqM8d/q7u2oIZsHgMCkAfUpgDcR988JysnniQ=; b=HCFh/UL/bTo9gDuxcwyTiMNrxHNtfZeF4fohoUpQZ7+d3Ule+v1FIdGjuL9EmvzU+/Pr4j 9jkvNtYLWz15oGf0jovANEtTeOernsEnEk4fWzSXmcygk0v8muCqp/m8aj+c9JwOiVj1e/ 5LaNaLykHfhb/ZzFgiS0LtA0T1n5SPZK90sNwtTY+uF0AUlYSkYf+jyNzQLl85u631sszI 3rKFAxIJ8LW7o8vs9NqsLQPxHj43Bw2suDhPexS0GE2LQj7tKhU8+7T8mgPXVgvhp0c5lX 86hq4M2LtxI8Z4TW+fFDBFBjvxentAISrDLDJ0gU3TMnGt0sscDOfFDPbS6yLw== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1745425515; a=rsa-sha256; cv=none; b=h/kG+Eq61ZgnsJ7Garm3LPiMAAvQOL+eqAz3cNKvk14U0uOiSySXdE9XKjusq6ITm2MBoO Eq8+VeoRzyFyxRWncX5FQSD0h3T40k2mKoqjWWOOMU9IvZDKvs0IRma2ku8US7wzUcWHrq 1p+esU0egq8dB0oguSxe3ptSbw3J4H1mR0e17Srg97gCD7NQ92FbOacvYTh7P0+bDXXPbK GKNYWiMxso6rqFtCfJxOc70YOMokC8M1lyKIxsTUt/6nwCp3UlnvnrwtvT0RXMepDzUqKV J2nJJ9PGVBvLy+s3aF2gFM4caBDs1dNxOcJ7A8CHzrKdweU3nAQpgg8KudYpCA== 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=1745425515; 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=Q3fM9flqM8d/q7u2oIZsHgMCkAfUpgDcR988JysnniQ=; b=tBaZvF8h6RJNPv/1ZEK0D7airdQoNyqGG3TSJjMPFHRXazCeM0CWQSulYaZg3zy1IKWbQz 9KiRLfiZ3ndAR/8gxWmkOzLVApTRv6/Qusr9FtY5XnRzpUObvLdBx6KmmmhCb5JopBJX4j 4KLzwDj7K+RDRmlf9dlCLoY3hLzjtGWSQnv8X7S1EWx/5mVjaIWRjkIHUKqFRccehgtxi3 t4fAM3A+5TOGU5dwKC/IBT30y/PHtkd5UBU9Aw8gtvxmgbRgINiV+YUyTu5BbD54RGWCY+ ycwCAV7LRgjOuSQZgtAnNL4QvsJ9ZcphS2DD+KRu5rcteAxdJbIWRZxG/n7uWQ== 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 4ZjPbH5GB9z1B5j; Wed, 23 Apr 2025 16:25:15 +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 53NGPFj5081767; Wed, 23 Apr 2025 16:25:15 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 53NGPFEL081764; Wed, 23 Apr 2025 16:25:15 GMT (envelope-from git) Date: Wed, 23 Apr 2025 16:25:15 GMT Message-Id: <202504231625.53NGPFEL081764@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: "Bjoern A. Zeeb" Subject: git: a7131a748483 - main - LinuxKPI: 802.11: fill ieee80211_get_key_rx_seq() also for TKIP/GCMP 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: bz X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: a7131a748483adf783ff7ac2a8ab71d5c17eb925 Auto-Submitted: auto-generated The branch main has been updated by bz: URL: https://cgit.FreeBSD.org/src/commit/?id=a7131a748483adf783ff7ac2a8ab71d5c17eb925 commit a7131a748483adf783ff7ac2a8ab71d5c17eb925 Author: Bjoern A. Zeeb AuthorDate: 2025-04-15 19:36:53 +0000 Commit: Bjoern A. Zeeb CommitDate: 2025-04-23 16:24:20 +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 MFC after: 3 days --- 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 568695dc2a45..b79a6056684d 100644 --- a/sys/compat/linuxkpi/common/include/net/mac80211.h +++ b/sys/compat/linuxkpi/common/include/net/mac80211.h @@ -2446,28 +2446,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);