feat(wifi): Add support SAE-PK and WPA3-Enterprise transition disable

This commit is contained in:
Sarvesh Bodakhe
2023-12-08 16:14:51 +05:30
parent 3cd174ab09
commit 34725cdbfd
4 changed files with 24 additions and 2 deletions

View File

@@ -299,5 +299,6 @@ uint8_t* esp_wifi_sta_get_sae_identifier_internal(void);
bool esp_wifi_eb_tx_status_success_internal(void *eb);
uint8_t* esp_wifi_sta_get_rsnxe(u8 *bssid);
esp_err_t esp_wifi_sta_connect_internal(const uint8_t *bssid);
void esp_wifi_enable_sae_pk_only_mode_internal(void);
#endif /* _ESP_WIFI_DRIVER_H_ */

View File

@@ -93,14 +93,32 @@ int hostapd_send_eapol(const u8 *source, const u8 *sta_addr,
}
static void disable_wpa_wpa2() {
esp_wifi_sta_disable_wpa2_authmode_internal();
}
void wpa_supplicant_transition_disable(struct wpa_sm *sm, u8 bitmap)
{
wpa_printf(MSG_DEBUG, "TRANSITION_DISABLE %02x", bitmap);
if ((bitmap & TRANSITION_DISABLE_WPA3_PERSONAL) &&
wpa_key_mgmt_sae(sm->key_mgmt)) {
esp_wifi_sta_disable_wpa2_authmode_internal();
disable_wpa_wpa2();
}
if ((bitmap & TRANSITION_DISABLE_SAE_PK) &&
wpa_key_mgmt_sae(sm->key_mgmt)) {
wpa_printf(MSG_INFO,
"SAE-PK: SAE authentication without PK disabled based on AP notification");
disable_wpa_wpa2();
esp_wifi_enable_sae_pk_only_mode_internal();
}
if ((bitmap & TRANSITION_DISABLE_WPA3_ENTERPRISE) &&
wpa_key_mgmt_wpa_ieee8021x(sm->key_mgmt)) {
disable_wpa_wpa2();
}
}
u8 *wpa_sm_alloc_eapol(struct wpa_sm *sm, u8 type,

View File

@@ -327,6 +327,9 @@ struct rsn_rdie {
/* WFA Transition Disable KDE (using OUI_WFA) */
/* Transition Disable Bitmap bits */
#define TRANSITION_DISABLE_WPA3_PERSONAL BIT(0)
#define TRANSITION_DISABLE_SAE_PK BIT(1)
#define TRANSITION_DISABLE_WPA3_ENTERPRISE BIT(2)
#define TRANSITION_DISABLE_ENHANCED_OPEN BIT(3)
#ifdef CONFIG_IEEE80211R
int wpa_ft_mic(const u8 *kck, size_t kck_len, const u8 *sta_addr,