From 70e3d8f511373527208af5d4c49915ddefa816de Mon Sep 17 00:00:00 2001 From: Shreyas Sheth Date: Thu, 6 Apr 2023 18:43:06 +0530 Subject: [PATCH] esp_wifi: Install keys after successful transmission of EAPOL 4/4 Message --- .../wpa_supplicant/esp_supplicant/src/esp_wifi_driver.h | 1 + components/wpa_supplicant/src/rsn_supp/wpa.c | 6 ++++++ 2 files changed, 7 insertions(+) diff --git a/components/wpa_supplicant/esp_supplicant/src/esp_wifi_driver.h b/components/wpa_supplicant/esp_supplicant/src/esp_wifi_driver.h index 8f991e9716..892a399727 100644 --- a/components/wpa_supplicant/esp_supplicant/src/esp_wifi_driver.h +++ b/components/wpa_supplicant/esp_supplicant/src/esp_wifi_driver.h @@ -283,5 +283,6 @@ uint8_t esp_wifi_sta_get_config_sae_pwe_h2e_internal(void); uint8_t esp_wifi_sta_get_use_h2e_internal(void); void esp_wifi_sta_disable_wpa2_authmode_internal(void); uint8_t esp_wifi_ap_get_max_sta_conn(void); +bool esp_wifi_eb_tx_status_success_internal(void *eb); #endif /* _ESP_WIFI_DRIVER_H_ */ diff --git a/components/wpa_supplicant/src/rsn_supp/wpa.c b/components/wpa_supplicant/src/rsn_supp/wpa.c index 4cf7955c62..6235991b70 100644 --- a/components/wpa_supplicant/src/rsn_supp/wpa.c +++ b/components/wpa_supplicant/src/rsn_supp/wpa.c @@ -2750,6 +2750,12 @@ void eapol_txcb(void *eb) case WPA_FIRST_HALF_4WAY_HANDSHAKE: break; case WPA_LAST_HALF_4WAY_HANDSHAKE: + + if (esp_wifi_eb_tx_status_success_internal(eb) != true) { + wpa_printf(MSG_ERROR, "Eapol message 4/4 tx failure, not installing keys"); + return; + } + if (sm->txcb_flags & WPA_4_4_HANDSHAKE_BIT) { sm->txcb_flags &= ~WPA_4_4_HANDSHAKE_BIT; isdeauth = wpa_supplicant_send_4_of_4_txcallback(sm);