mirror of
https://github.com/espressif/esp-idf.git
synced 2025-08-03 12:44:33 +02:00
Merge branch 'feature/sae_pk_transition_disable' into 'master'
Add support for SAE-PK, WPA3-Enterprise and OWE transition disable indication Closes WIFIBUG-287 See merge request espressif/esp-idf!27783
This commit is contained in:
Submodule components/esp_wifi/lib updated: 47abfa88c7...4982b16b1e
@@ -291,6 +291,7 @@ bool esp_wifi_is_ft_enabled_internal(uint8_t if_index);
|
|||||||
uint8_t esp_wifi_sta_get_config_sae_pk_internal(void);
|
uint8_t esp_wifi_sta_get_config_sae_pk_internal(void);
|
||||||
void esp_wifi_sta_disable_sae_pk_internal(void);
|
void esp_wifi_sta_disable_sae_pk_internal(void);
|
||||||
void esp_wifi_sta_disable_wpa2_authmode_internal(void);
|
void esp_wifi_sta_disable_wpa2_authmode_internal(void);
|
||||||
|
void esp_wifi_sta_disable_owe_trans_internal(void);
|
||||||
uint8_t esp_wifi_ap_get_max_sta_conn(void);
|
uint8_t esp_wifi_ap_get_max_sta_conn(void);
|
||||||
uint8_t esp_wifi_get_config_sae_pwe_h2e_internal(uint8_t ifx);
|
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_notify_node_sae_auth_done(uint8_t *mac);
|
||||||
@@ -299,5 +300,6 @@ uint8_t* esp_wifi_sta_get_sae_identifier_internal(void);
|
|||||||
bool esp_wifi_eb_tx_status_success_internal(void *eb);
|
bool esp_wifi_eb_tx_status_success_internal(void *eb);
|
||||||
uint8_t* esp_wifi_sta_get_rsnxe(u8 *bssid);
|
uint8_t* esp_wifi_sta_get_rsnxe(u8 *bssid);
|
||||||
esp_err_t esp_wifi_sta_connect_internal(const uint8_t *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_ */
|
#endif /* _ESP_WIFI_DRIVER_H_ */
|
||||||
|
@@ -93,13 +93,36 @@ int hostapd_send_eapol(const u8 *source, const u8 *sta_addr,
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void disable_wpa_wpa2(void)
|
||||||
|
{
|
||||||
|
esp_wifi_sta_disable_wpa2_authmode_internal();
|
||||||
|
}
|
||||||
|
|
||||||
void wpa_supplicant_transition_disable(struct wpa_sm *sm, u8 bitmap)
|
void wpa_supplicant_transition_disable(struct wpa_sm *sm, u8 bitmap)
|
||||||
{
|
{
|
||||||
wpa_printf(MSG_DEBUG, "TRANSITION_DISABLE %02x", bitmap);
|
wpa_printf(MSG_DEBUG, "TRANSITION_DISABLE %02x", bitmap);
|
||||||
|
|
||||||
if ((bitmap & TRANSITION_DISABLE_WPA3_PERSONAL) &&
|
if ((bitmap & TRANSITION_DISABLE_WPA3_PERSONAL) &&
|
||||||
wpa_key_mgmt_sae(sm->key_mgmt)) {
|
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();
|
||||||
|
}
|
||||||
|
|
||||||
|
if ((bitmap & TRANSITION_DISABLE_ENHANCED_OPEN) &&
|
||||||
|
wpa_key_mgmt_owe(sm->key_mgmt)) {
|
||||||
|
esp_wifi_sta_disable_owe_trans_internal();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -327,6 +327,9 @@ struct rsn_rdie {
|
|||||||
/* WFA Transition Disable KDE (using OUI_WFA) */
|
/* WFA Transition Disable KDE (using OUI_WFA) */
|
||||||
/* Transition Disable Bitmap bits */
|
/* Transition Disable Bitmap bits */
|
||||||
#define TRANSITION_DISABLE_WPA3_PERSONAL BIT(0)
|
#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
|
#ifdef CONFIG_IEEE80211R
|
||||||
int wpa_ft_mic(const u8 *kck, size_t kck_len, const u8 *sta_addr,
|
int wpa_ft_mic(const u8 *kck, size_t kck_len, const u8 *sta_addr,
|
||||||
|
Reference in New Issue
Block a user