Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 11 Jun 2025 09:14:33 GMT
From:      "Bjoern A. Zeeb" <bz@FreeBSD.org>
To:        src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org
Subject:   git: eca9d8e7fa08 - stable/14 - ifconfig: 802.11: factor out keyix printing
Message-ID:  <202506110914.55B9EXjA062537@gitrepo.freebsd.org>

next in thread | raw e-mail | index | archive | help
The branch stable/14 has been updated by bz:

URL: https://cgit.FreeBSD.org/src/commit/?id=eca9d8e7fa0839015106595911d6624997191e17

commit eca9d8e7fa0839015106595911d6624997191e17
Author:     Bjoern A. Zeeb <bz@FreeBSD.org>
AuthorDate: 2025-05-27 19:51:38 +0000
Commit:     Bjoern A. Zeeb <bz@FreeBSD.org>
CommitDate: 2025-06-10 23:41:10 +0000

    ifconfig: 802.11: factor out keyix printing
    
    The node unicast key (PTK) uses a key index of (-1) and printing
    a 64k number does not look great.  Factor out printing the key
    number into a buffer and use 'ucast' for the node unicast key.
    Hope is that this will be useful for the future as well when we
    will have more/different keys possibly.
    
    Looks like (with -vk):
            AES-CCM 2:128-bit <xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx> rsc 0 tsc 0 rx
            AES-CCM 3:128-bit <xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx> rsc 0 tsc 0 rx
            AES-GCM ucast:128-bit <xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx> rsc 0 tsc 0 tx+rx
    
    Sponsored by:   The FreeBSD Foundation
    Reviewed by:    adrian
    Differential Revision: https://reviews.freebsd.org/D50555
    
    (cherry picked from commit 164bf9ffbe1a9fc8768b2f597fd4b32b3e406ac1)
---
 sbin/ifconfig/ifieee80211.c | 31 ++++++++++++++++++++++---------
 1 file changed, 22 insertions(+), 9 deletions(-)

diff --git a/sbin/ifconfig/ifieee80211.c b/sbin/ifconfig/ifieee80211.c
index c2aa51f250a6..9c753f865bc0 100644
--- a/sbin/ifconfig/ifieee80211.c
+++ b/sbin/ifconfig/ifieee80211.c
@@ -4763,6 +4763,17 @@ printcipher(int s, struct ieee80211req *ireq, int keylenop)
 }
 #endif
 
+static void
+printkey_index(uint16_t keyix, char *buf, size_t buflen)
+{
+	buf[0] = '\0';
+	if (keyix == IEEE80211_KEYIX_NONE) {
+		snprintf(buf, buflen, "ucast");
+	} else {
+		snprintf(buf, buflen, "%u", keyix+1);
+	}
+}
+
 static void
 printkey(if_ctx *ctx, const struct ieee80211req_key *ik)
 {
@@ -4771,41 +4782,43 @@ printkey(if_ctx *ctx, const struct ieee80211req_key *ik)
 	int printcontents;
 	const int verbose = ctx->args->verbose;
 	const bool printkeys = ctx->args->printkeys;
+	char keyix[16];
 
 	printcontents = printkeys &&
 		(memcmp(ik->ik_keydata, zerodata, keylen) != 0 || verbose);
 	if (printcontents)
 		LINE_BREAK();
+	printkey_index(ik->ik_keyix, keyix, sizeof(keyix));
 	switch (ik->ik_type) {
 	case IEEE80211_CIPHER_WEP:
 		/* compatibility */
-		LINE_CHECK("wepkey %u:%s", ik->ik_keyix+1,
+		LINE_CHECK("wepkey %s:%s", keyix,
 		    keylen <= 5 ? "40-bit" :
 		    keylen <= 13 ? "104-bit" : "128-bit");
 		break;
 	case IEEE80211_CIPHER_TKIP:
 		if (keylen > 128/8)
 			keylen -= 128/8;	/* ignore MIC for now */
-		LINE_CHECK("TKIP %u:%u-bit", ik->ik_keyix+1, 8*keylen);
+		LINE_CHECK("TKIP %s:%u-bit", keyix, 8*keylen);
 		break;
 	case IEEE80211_CIPHER_AES_OCB:
-		LINE_CHECK("AES-OCB %u:%u-bit", ik->ik_keyix+1, 8*keylen);
+		LINE_CHECK("AES-OCB %s:%u-bit", keyix, 8*keylen);
 		break;
 	case IEEE80211_CIPHER_AES_CCM:
-		LINE_CHECK("AES-CCM %u:%u-bit", ik->ik_keyix+1, 8*keylen);
+		LINE_CHECK("AES-CCM %s:%u-bit", keyix, 8*keylen);
 		break;
 	case IEEE80211_CIPHER_AES_GCM_128:
-		LINE_CHECK("AES-GCM %u:%u-bit", ik->ik_keyix+1, 8*keylen);
+		LINE_CHECK("AES-GCM %s:%u-bit", keyix, 8*keylen);
 		break;
 	case IEEE80211_CIPHER_CKIP:
-		LINE_CHECK("CKIP %u:%u-bit", ik->ik_keyix+1, 8*keylen);
+		LINE_CHECK("CKIP %s:%u-bit", keyix, 8*keylen);
 		break;
 	case IEEE80211_CIPHER_NONE:
-		LINE_CHECK("NULL %u:%u-bit", ik->ik_keyix+1, 8*keylen);
+		LINE_CHECK("NULL %s:%u-bit", keyix, 8*keylen);
 		break;
 	default:
-		LINE_CHECK("UNKNOWN (0x%x) %u:%u-bit",
-			ik->ik_type, ik->ik_keyix+1, 8*keylen);
+		LINE_CHECK("UNKNOWN (0x%x) %s:%u-bit",
+			ik->ik_type, keyix, 8*keylen);
 		break;
 	}
 	if (printcontents) {



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?202506110914.55B9EXjA062537>