From fba3b90c113810e277dfefaa5ccea79b199eebc7 Mon Sep 17 00:00:00 2001 From: James Prestwood Date: Thu, 7 Oct 2021 13:49:46 -0700 Subject: [PATCH] handshake: add flags/key index for extended key IDs ext_key_id_capable indicates the handshake has set the capability bit in the RSN info. This will only be set if the AP also has the capability set. active_tk_index is the key index the AP chose in message 3. This is now used for both legacy (always zero) and extended key IDs. --- src/handshake.c | 1 + src/handshake.h | 2 ++ 2 files changed, 3 insertions(+) diff --git a/src/handshake.c b/src/handshake.c index 642a25a7..2ff0ae15 100644 --- a/src/handshake.c +++ b/src/handshake.c @@ -234,6 +234,7 @@ valid_ie: s->group_management_cipher = info.group_management_cipher; s->akm_suite = info.akm_suites; s->supplicant_ocvc = info.ocvc; + s->ext_key_id_capable = info.extended_key_id; /* * Don't set MFP for OSEN otherwise EAPoL will attempt to negotiate a diff --git a/src/handshake.h b/src/handshake.h index 36ccc3a2..d57a3794 100644 --- a/src/handshake.h +++ b/src/handshake.h @@ -128,6 +128,7 @@ struct handshake_state { bool support_fils : 1; bool authenticator_ocvc : 1; bool supplicant_ocvc : 1; + bool ext_key_id_capable : 1; uint8_t ssid[32]; size_t ssid_len; char *passphrase; @@ -138,6 +139,7 @@ struct handshake_state { uint8_t gtk_rsc[6]; uint8_t proto_version : 2; unsigned int gtk_index; + uint8_t active_tk_index; struct erp_cache_entry *erp_cache; bool support_ip_allocation : 1; uint32_t client_ip_addr;