feat(wpa_supplicant): Add WIFI_EVENT_AP_WRONG_PASSWORD in SoftAP

This event is triggered when external station tries connecting to softAP
with wrong password.

Currently supported softAP AUTH modes: WPA-PSK, WPA2-PSK and WPA3-PSK (SAE-auth)
This commit is contained in:
Sarvesh Bodakhe 2024-12-14 18:13:18 +05:30 committed by Kapil Gupta
parent 3fca3a1223
commit 716c5731ec
4 changed files with 16 additions and 1 deletions

View File

@ -1019,6 +1019,8 @@ typedef enum {
WIFI_EVENT_STA_NEIGHBOR_REP, /**< Received Neighbor Report response */
WIFI_EVENT_AP_WRONG_PASSWORD, /**< a station tried to connect with wrong password */
WIFI_EVENT_MAX, /**< Invalid Wi-Fi event ID */
} wifi_event_t;
@ -1313,6 +1315,11 @@ typedef struct {
uint16_t report_len; /**< Length of the report*/
} wifi_event_neighbor_report_t;
/** Argument structure for WIFI_EVENT_AP_WRONG_PASSWORD event */
typedef struct {
uint8_t mac[6]; /**< MAC address of the station trying to connect to Soft-AP */
} wifi_event_ap_wrong_password_t;
/**
* @brief Argument structure for wifi_tx_rate_config
*/

@ -1 +1 @@
Subproject commit df42b857ede33d672362fdc5e0178f5d2bd91595
Subproject commit 4cc66f055399501950062ad1a4a1349fe02304c9

View File

@ -625,6 +625,10 @@ int handle_auth_sae(struct hostapd_data *hapd, struct sta_info *sta,
if (sae_check_confirm(sta->sae, buf, len) < 0) {
resp = WLAN_STATUS_CHALLENGE_FAIL;
wifi_event_ap_wrong_password_t evt = {0};
os_memcpy(evt.mac, bssid, ETH_ALEN);
esp_event_post(WIFI_EVENT, WIFI_EVENT_AP_WRONG_PASSWORD, &evt,
sizeof(evt), 0);
goto reply;
}
sta->sae->rc = peer_send_confirm;

View File

@ -1668,6 +1668,10 @@ SM_STATE(WPA_PTK, PTKCALCNEGOTIATING)
if (!ok) {
wpa_printf(MSG_INFO, "invalid MIC in msg 2/4 of 4-Way Handshake");
wifi_event_ap_wrong_password_t evt = {0};
os_memcpy(evt.mac, sm->addr, ETH_ALEN);
esp_event_post(WIFI_EVENT, WIFI_EVENT_AP_WRONG_PASSWORD, &evt,
sizeof(evt), 0);
return;
}