Merge branch 'bugfix/incorrect_sae_pk_flag_v5.5' into 'release/v5.5'

Disable SAE-PK indication in Assoc Request when not configured (Backport v5.5)

See merge request espressif/esp-idf!39074
This commit is contained in:
Jiang Jiang Jian
2025-05-20 17:30:26 +08:00
2 changed files with 10 additions and 6 deletions

View File

@ -295,6 +295,8 @@ static void wpa_sta_connected_cb(uint8_t *bssid)
static void wpa_sta_disconnected_cb(uint8_t reason_code)
{
struct wpa_sm *sm = &gWpaSm;
switch (reason_code) {
case WIFI_REASON_AUTH_EXPIRE:
case WIFI_REASON_CLASS2_FRAME_FROM_NONAUTH_STA:
@ -308,7 +310,7 @@ static void wpa_sta_disconnected_cb(uint8_t reason_code)
case WIFI_REASON_INVALID_MDE:
case WIFI_REASON_INVALID_FTE:
wpa_sta_clear_curr_pmksa();
wpa_sm_notify_disassoc(&gWpaSm);
wpa_sm_notify_disassoc(sm);
#if defined(CONFIG_IEEE80211R)
/* clear all ft auth related IEs so that next will be open auth */
wpa_sta_clear_ft_auth_ie();
@ -321,6 +323,13 @@ static void wpa_sta_disconnected_cb(uint8_t reason_code)
break;
}
sm->rx_replay_counter_set = 0; //init state not intall replay counter value
memset(sm->rx_replay_counter, 0, WPA_REPLAY_COUNTER_LEN);
sm->wpa_ptk_rekey = 0;
pmksa_cache_clear_current(sm);
sm->sae_pk = false;
sm->eapol1_count = 0;
struct wps_sm_funcs *wps_sm_cb = wps_get_wps_sm_cb();
if (wps_sm_cb && wps_sm_cb->wps_sm_notify_deauth) {
wps_sm_cb->wps_sm_notify_deauth();

View File

@ -2340,15 +2340,11 @@ int wpa_set_bss(char *macddr, char * bssid, u8 pairwise_cipher, u8 group_cipher,
sm->pairwise_cipher = BIT(pairwise_cipher);
sm->group_cipher = BIT(group_cipher);
sm->rx_replay_counter_set = 0; //init state not intall replay counter value
memset(sm->rx_replay_counter, 0, WPA_REPLAY_COUNTER_LEN);
sm->wpa_ptk_rekey = 0;
sm->renew_snonce = 1;
memcpy(sm->own_addr, macddr, ETH_ALEN);
memcpy(sm->bssid, bssid, ETH_ALEN);
sm->ap_notify_completed_rsne = esp_wifi_sta_is_ap_notify_completed_rsne_internal();
sm->use_ext_key_id = (sm->proto == WPA_PROTO_WPA);
pmksa_cache_clear_current(sm);
sm->sae_pwe = esp_wifi_get_config_sae_pwe_h2e_internal(WIFI_IF_STA);
struct rsn_pmksa_cache_entry *pmksa = NULL;
@ -2371,7 +2367,6 @@ int wpa_set_bss(char *macddr, char * bssid, u8 pairwise_cipher, u8 group_cipher,
}
}
sm->eapol1_count = 0;
#ifdef CONFIG_IEEE80211W
if (esp_wifi_sta_pmf_enabled()) {
wifi_config_t wifi_cfg;