git: 164bf9ffbe1a - main - ifconfig: 802.11: factor out keyix printing
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Mon, 09 Jun 2025 21:45:01 UTC
The branch main has been updated by bz:
URL: https://cgit.FreeBSD.org/src/commit/?id=164bf9ffbe1a9fc8768b2f597fd4b32b3e406ac1
commit 164bf9ffbe1a9fc8768b2f597fd4b32b3e406ac1
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-09 21:44:25 +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
MFC after: 3 days
Reviewed by: adrian
Differential Revision: https://reviews.freebsd.org/D50555
---
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 9ece44960378..d08b5c861c76 100644
--- a/sbin/ifconfig/ifieee80211.c
+++ b/sbin/ifconfig/ifieee80211.c
@@ -4773,6 +4773,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)
{
@@ -4781,41 +4792,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) {