eapol: Add support for Transition Disable

If this indication is received in message 3/4, forward the contents as
a HANDSHAKE_EVENT_TRANSITION_DISABLE
This commit is contained in:
Denis Kenzior 2021-07-15 17:08:58 -05:00
parent 47ba837e98
commit 51b437bbfe
2 changed files with 13 additions and 0 deletions

View File

@ -1607,6 +1607,8 @@ static void eapol_handle_ptk_3_of_4(struct eapol_sm *sm,
size_t igtk_len;
const uint8_t *rsne;
const uint8_t *optional_rsne = NULL;
const uint8_t *transition_disable;
size_t transition_disable_len;
uint8_t gtk_key_index;
uint16_t igtk_key_index;
@ -1815,6 +1817,15 @@ static void eapol_handle_ptk_3_of_4(struct eapol_sm *sm,
l_debug("Authenticator ignored our IP Address Request");
}
transition_disable =
handshake_util_find_kde(HANDSHAKE_KDE_TRANSITION_DISABLE,
decrypted_key_data,
decrypted_key_data_size,
&transition_disable_len);
if (transition_disable)
handshake_event(hs, HANDSHAKE_EVENT_TRANSITION_DISABLE,
transition_disable, transition_disable_len);
retransmit:
/*
* 802.11-2016, Section 12.7.6.4:

View File

@ -44,6 +44,8 @@ enum handshake_kde {
/* Wi-Fi P2P Technical Specification v1.7 4.2.8 */
HANDSHAKE_KDE_IP_ADDRESS_REQ = 0x506f9a04,
HANDSHAKE_KDE_IP_ADDRESS_ALLOC = 0x506f9a05,
/* Wi-Fi WPA3 Specification v3.0 Table 4 */
HANDSHAKE_KDE_TRANSITION_DISABLE = 0x506f9a20,
};
enum handshake_event {