Browse Source

esp_wifi: Install keys after successful transmission of EAPOL 4/4 Message

Shreyas Sheth 2 years ago
parent
commit
dce0920329

+ 1 - 1
components/esp_wifi/lib

@@ -1 +1 @@
-Subproject commit ce8f0a4e7b2fc7840f54322b9216cc1f1329081a
+Subproject commit 056981590639e05947f0f3a2db5c79ac05683a01

+ 1 - 0
components/wpa_supplicant/esp_supplicant/src/esp_wifi_driver.h

@@ -294,5 +294,6 @@ uint8_t esp_wifi_get_config_sae_pwe_h2e_internal(uint8_t ifx);
 bool esp_wifi_ap_notify_node_sae_auth_done(uint8_t *mac);
 bool esp_wifi_ap_is_sta_sae_reauth_node(uint8_t *mac);
 uint8_t* esp_wifi_sta_get_sae_identifier_internal(void);
+bool esp_wifi_eb_tx_status_success_internal(void *eb);
 
 #endif /* _ESP_WIFI_DRIVER_H_ */

+ 6 - 0
components/wpa_supplicant/src/rsn_supp/wpa.c

@@ -2621,6 +2621,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);