From nobody Wed Jun 11 09:14:31 2025 X-Original-To: dev-commits-src-branches@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 4bHKjh4br8z6001G; Wed, 11 Jun 2025 09:14:32 +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 4bHKjh12Qhz3mHj; Wed, 11 Jun 2025 09:14:32 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1749633272; 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=LKEzsQ7l+SqVBSsDKJyAgdJrjPeki1VanK5YREzkr78=; b=dzFL/BtO4nPIVibel3HZ5ffLJuDu4WOcGsPOmXCrRxXQdSFKjDkSxJARmy6QP8jD5/eXv/ TrOjXnhJ6jEhlYUsNjxzSajBXlEe2Zrw0marVjMKbxVGPA4ipDhHketLwaEUGBIzvSBxHY H1gOikrdLcHhoh+RzfjmZMOXQWcHuf/oJRxmHY3k+sd4v0WzXRPShJy294xy2lbixOhJgq xpM2yJ/A4UaAIqzrEbqjNVkwIDOzWVRRyGDJoX0R9Vwvj1eh7RxvzGaOHYLd1GSNOSb2T3 X9cCBjH1Gcvqznp+dd8ENdhw2uDMDkFmv782rpvUlvFyR2gQz/lnQymWEdgaGw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1749633272; 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=LKEzsQ7l+SqVBSsDKJyAgdJrjPeki1VanK5YREzkr78=; b=U9xbJOydOU8dLu8GfLx/fpNKtfiA0qzX1eCiSWG48LHwgWhX17VnCNaLuTHEZFzVrskUUi ZMS9NSLplPyabsuhko3uwwk+vRh/fTBMFgbmxSV6eQkrc1oMFfy3IkcxHyVk3a8sXEStiM Ryc8pxYy0ylO4klhkJpaLm2sxp9irjpnBmUmrnJ78XU1oywcvGBwY8kddtlzn8WJK3gg7x tPRZnS4RksOagqMlCiljOxDFri110ldR38vt9x89mQEtBv3e75YoVhzXWt60Y4nRVWweIs k6Mlnzl9WnwAdTgPwW1UOb+hYuBSce59HgQ8UOdGY1L+K+4FFUR6r49x3kP3MQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1749633272; a=rsa-sha256; cv=none; b=qaeehm1KqGOOPNCb4JKOYdZgmivJMblUneIMVKIcp8504aYvV1i9MeZCLj3Jobfn4s8JSu QGh8rBxlEBmwMRbk5JRs20z8eUpy2H5Jpp1fjAwYTjkbyRuOEIR+Mv7S9nRfw90YAUAadN nZg0NIMKxHvL/XJAF0+enLzQl9j6uN8nQ0bXAQLmwglIhX0mb+u0GO5tye22f4h6E3FyO9 oSE/ev/JCrT+jBTJI/Q0GrbwTB+eGB8Qfmu/Tt7owOWJ11wE12vGd+BR3/ELLIsOkGwHw5 VJ5kAbKyD4qnQcr9FPIQLaB02gnYEyYlUKhij9zWsMF8DK2w0sTdoGUdLXV8JA== 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 4bHKjh073jz5hH; Wed, 11 Jun 2025 09:14:32 +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 55B9EVtG062503; Wed, 11 Jun 2025 09:14:31 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 55B9EVUO062500; Wed, 11 Jun 2025 09:14:31 GMT (envelope-from git) Date: Wed, 11 Jun 2025 09:14:31 GMT Message-Id: <202506110914.55B9EVUO062500@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: b0963bfc69b3 - stable/14 - ifconfig: 802.11: print node unicast key (PTK) if available in STA mode List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@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: b0963bfc69b3975507143bda20df3ba13e6c230f Auto-Submitted: auto-generated The branch stable/14 has been updated by bz: URL: https://cgit.FreeBSD.org/src/commit/?id=b0963bfc69b3975507143bda20df3ba13e6c230f commit b0963bfc69b3975507143bda20df3ba13e6c230f Author: Bjoern A. Zeeb AuthorDate: 2025-05-27 19:44:42 +0000 Commit: Bjoern A. Zeeb CommitDate: 2025-06-10 23:41:06 +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 Reviewed by: adrian Differential Revision: https://reviews.freebsd.org/D50554 (cherry picked from commit e277735ce05911aaee336cd61ec3a12435f46d8d) --- 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 6964a68b6ba6..c2aa51f250a6 100644 --- a/sbin/ifconfig/ifieee80211.c +++ b/sbin/ifconfig/ifieee80211.c @@ -4888,6 +4888,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]; @@ -4938,10 +4939,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) { @@ -5097,6 +5098,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: