From nobody Mon Jun 9 21:45:00 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 4bGQSY3lDdz5yXZN; Mon, 09 Jun 2025 21:45:01 +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 4bGQSY11Ydz4H3T; Mon, 09 Jun 2025 21:45:01 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1749505501; 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=HZ3JA08SPkdPl1yRLM9MaV3WLpW5G+RWt3IcG0LCo3A=; b=kJ46JcQBdjrd41Iieak4i7gW6EnnGafiz2ACksyIWWPTA9BtoV/4o6w5CTadRXo+MXvvWZ IjPPCxxzQ4pbIXJP1nAqEU1Vn6/0h5gCXyl7U9Z2M/6CFwawYhS/wabCHsFBa0PlNqmM9L ZvvDyGlPpU4WwHqteQ74bLjKpHbkGHZK0H0gIEOaDSD97gKHmIUz33L+0X5dQ86b2O0Pih W2Gym2GcZN2YyGe2ztTI2qeG+UXHpRSo0b2EDZdqIgRsOI+8Im+Rsp3dB6chGbKS7B2JU3 eYnfSt2egBFAYIlhLkH4R1k4RkQKZff7mCBnmvXHkpNTeSocI60payF6GNhC7Q== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1749505501; 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=HZ3JA08SPkdPl1yRLM9MaV3WLpW5G+RWt3IcG0LCo3A=; b=CaByobFMBB039OuhdChPiW9jwBfAsoUD5yfAzkwCiiJ0klm5ipDfJYeqCEWKpncrrwclbE tG98S6nYhNVSlTkLy39MljCR1WvJUpqBjQL3EwT7VTncjPRAI6UZWGcxKoSEa5iBzEpX4V +J3cp62aVmXDJU+YPo5qqx+Z3Cq0hZGLxaMNh/iYx0TP4HYjeCtKs6g6mQNd/FaJLWXvZ+ 16DQuGIpPRLwQYw0KoMHuvE8GvmJXErVoJXUCP8FFFlZM50rncemBF9VZtduHqVAfjMgeY JqBhZ1VvPKBZ6Iz5eC12rvOel9sd2f60yYRgULHq7f+D80HjPuUuDyoaFOLYEw== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1749505501; a=rsa-sha256; cv=none; b=FzQY207OCWs73UjPC0SWNwY813flX3SSPyarPxDG01h+TT8gTSdyrxs8IhCctosXeH2V27 VM9LfXgZ95hHFH0ceDctYxSKDFBRKirkVgC/kgDRbqMVZcXT34wFgJZs3lOJuQFl+v3kpY 3Q+khbdKyEUtZySVCL4hx4TjQGBZmA+SpUYEVgICyHsWScWRRw7Jz1tNtGqY+5M38iJqrd P2AvALe4S80LsMnI/VTlRJYYOHTG873XD1StGytdK7Z2OGHwJzH9PNtwZ0h0D1cqUsKAvs YMXycvCZyC8NEFHHsZDVjXE1li6apRS2O4KfFY61CyIMi+DgFeGf/DnBqIv+uw== 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 4bGQSY01Gtz1Bq5; Mon, 09 Jun 2025 21:45:01 +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 559Lj0mD062877; Mon, 9 Jun 2025 21:45:00 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 559Lj00K062874; Mon, 9 Jun 2025 21:45:00 GMT (envelope-from git) Date: Mon, 9 Jun 2025 21:45:00 GMT Message-Id: <202506092145.559Lj00K062874@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: e277735ce059 - main - ifconfig: 802.11: print node unicast key (PTK) if available in STA mode 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/main X-Git-Reftype: branch X-Git-Commit: e277735ce05911aaee336cd61ec3a12435f46d8d Auto-Submitted: auto-generated The branch main has been updated by bz: URL: https://cgit.FreeBSD.org/src/commit/?id=e277735ce05911aaee336cd61ec3a12435f46d8d commit e277735ce05911aaee336cd61ec3a12435f46d8d Author: Bjoern A. Zeeb AuthorDate: 2025-05-27 19:44:42 +0000 Commit: Bjoern A. Zeeb CommitDate: 2025-06-09 21:44:25 +0000 ifconfig: 802.11: print node unicast key (PTK) if available in STA mode Add a variable when querying the BSSID so we can later use it rather than losing the "data" buffer. When printing key information also query the node unicast key if in STA mode (the key for the BSSID). Do not error in case we fail. This is helpful for debugging mostly; was also useful when testing GCMP support. Sponsored by: The FreeBSD Foundation MFC after; 3 days Reviewed by: adrian Differential Revision: https://reviews.freebsd.org/D50554 --- sbin/ifconfig/ifieee80211.c | 24 ++++++++++++++++++++---- 1 file changed, 20 insertions(+), 4 deletions(-) diff --git a/sbin/ifconfig/ifieee80211.c b/sbin/ifconfig/ifieee80211.c index 0236bb5802e7..9ece44960378 100644 --- a/sbin/ifconfig/ifieee80211.c +++ b/sbin/ifconfig/ifieee80211.c @@ -4898,6 +4898,7 @@ ieee80211_status(if_ctx *ctx) { int s = ctx->io_s; static const uint8_t zerobssid[IEEE80211_ADDR_LEN]; + uint8_t bssid[IEEE80211_ADDR_LEN]; enum ieee80211_opmode opmode = get80211opmode(ctx); int i, num, wpa, wme, bgscan, bgscaninterval, val, len, wepmode; uint8_t data[32]; @@ -4948,10 +4949,10 @@ ieee80211_status(if_ctx *ctx) } else if (verbose) printf(" channel UNDEF"); - if (get80211(ctx, IEEE80211_IOC_BSSID, data, IEEE80211_ADDR_LEN) >= 0 && - (memcmp(data, zerobssid, sizeof(zerobssid)) != 0 || verbose)) { - printf(" bssid %s", ether_ntoa((struct ether_addr *)data)); - printbssidname((struct ether_addr *)data); + if (get80211(ctx, IEEE80211_IOC_BSSID, bssid, IEEE80211_ADDR_LEN) >= 0 && + (memcmp(bssid, zerobssid, sizeof(zerobssid)) != 0 || verbose)) { + printf(" bssid %s", ether_ntoa((struct ether_addr *)bssid)); + printbssidname((struct ether_addr *)bssid); } if (get80211len(ctx, IEEE80211_IOC_STATIONNAME, data, sizeof(data), &len) != -1) { @@ -5107,6 +5108,21 @@ ieee80211_status(if_ctx *ctx) printkey(ctx, &ik); } } + if (opmode == IEEE80211_M_STA && wpa >= 2) { + struct ieee80211req_key ik; + int error; + + memset(&ik, 0, sizeof(ik)); + ik.ik_keyix = IEEE80211_KEYIX_NONE; + memcpy(ik.ik_macaddr, bssid, sizeof(ik.ik_macaddr)); + error = get80211(ctx, IEEE80211_IOC_WPAKEY, &ik, sizeof(ik)); + if (error == 0 && ik.ik_keylen != 0) { + if (verbose) + LINE_BREAK(); + printkey(ctx, &ik); + i++; + } + } if (i > 0 && verbose) LINE_BREAK(); end: