mirror of
https://github.com/espressif/esp-idf.git
synced 2026-10-01 10:40:47 +03:00
Merge branch 'refactor/owe_scan' into 'master'
refactor(wifi): Improve owe scan time and refactor code Closes WIFI-7460 See merge request espressif/esp-idf!39119
This commit is contained in:
@@ -693,7 +693,7 @@ hal_agreement_del_rx_ba = 0x40001e14;
|
||||
/*hal_crypto_set_key_entry = 0x40001e18;*/
|
||||
hal_crypto_get_key_entry = 0x40001e1c;
|
||||
hal_crypto_clr_key_entry = 0x40001e20;
|
||||
config_get_wifi_task_stack_size = 0x40001e24;
|
||||
/*config_get_wifi_task_stack_size = 0x40001e24;*/
|
||||
pp_create_task = 0x40001e28;
|
||||
hal_set_sta_tsf_wakeup = 0x40001e2c;
|
||||
hal_set_rx_beacon_pti = 0x40001e30;
|
||||
|
||||
@@ -122,6 +122,7 @@ typedef struct {
|
||||
bool dump_hesigb_enable; /**< enable dump sigb field */
|
||||
bool privacy_enhancements; /**< WiFi privacy enhancements (enables random mac, seq number, dialogue token number, vendor seq number cnt). Supported on station interface only; softAP may be added in future */
|
||||
uint8_t rmac_auto_reset_int; /**< Random MAC auto-reset interval in hours (1-24) while not connected */
|
||||
int wifi_task_stack_size; /**< WIFI task stack size */
|
||||
int magic; /**< WiFi init magic number, it should be the last field */
|
||||
} wifi_init_config_t;
|
||||
|
||||
@@ -298,6 +299,24 @@ extern wifi_osi_funcs_t g_wifi_osi_funcs;
|
||||
#define WIFI_ENABLE_OWE_SOFTAP 0
|
||||
#endif
|
||||
|
||||
#if CONFIG_ESP_WIFI_ENABLE_WPA3_OWE_STA
|
||||
#define WIFI_ENABLE_WPA3_OWE_STA (1<<11)
|
||||
#else
|
||||
#define WIFI_ENABLE_WPA3_OWE_STA 0
|
||||
#endif
|
||||
|
||||
#if CONFIG_ESP_WIFI_ENABLE_WPA3_OWE_STA || CONFIG_ESP_WIFI_ENABLE_WPA3_SAE
|
||||
#define WIFI_TASK_STACK_SIZE_BASE 6144
|
||||
#else
|
||||
#define WIFI_TASK_STACK_SIZE_BASE 3072
|
||||
#endif
|
||||
|
||||
#if !WIFI_NANO_FORMAT_ENABLED
|
||||
#define WIFI_TASK_STACK_SIZE (WIFI_TASK_STACK_SIZE_BASE + 512)
|
||||
#else
|
||||
#define WIFI_TASK_STACK_SIZE WIFI_TASK_STACK_SIZE_BASE
|
||||
#endif
|
||||
|
||||
#define CONFIG_FEATURE_WPA3_SAE_BIT (1<<0)
|
||||
#define CONFIG_FEATURE_CACHE_TX_BUF_BIT (1<<1)
|
||||
#define CONFIG_FEATURE_FTM_INITIATOR_BIT (1<<2)
|
||||
@@ -309,6 +328,7 @@ extern wifi_osi_funcs_t g_wifi_osi_funcs;
|
||||
#define CONFIG_FEATURE_BSS_MAX_IDLE_BIT (1<<8)
|
||||
#define CONFIG_FEATURE_WIFI_PASSIVE_HIDDEN_AP_BIT (1<<9)
|
||||
#define CONFIG_FEATURE_OWE_SOFTAP_BIT (1<<10)
|
||||
#define CONFIG_FEATURE_WPA3_OWE_STA_BIT (1<<11)
|
||||
|
||||
/* Set additional WiFi features and capabilities */
|
||||
#define WIFI_FEATURE_CAPS (WIFI_ENABLE_WPA3_SAE | \
|
||||
@@ -321,7 +341,8 @@ extern wifi_osi_funcs_t g_wifi_osi_funcs;
|
||||
WIFI_ENABLE_ENTERPRISE | \
|
||||
WIFI_ENABLE_BSS_MAX_IDLE | \
|
||||
WIFI_ENABLE_PASSIVE_HIDDEN_AP | \
|
||||
WIFI_ENABLE_OWE_SOFTAP)
|
||||
WIFI_ENABLE_OWE_SOFTAP | \
|
||||
WIFI_ENABLE_WPA3_OWE_STA)
|
||||
|
||||
#if CONFIG_ESP_WIFI_PRIVACY_ENHANCEMENTS_ENABLED
|
||||
#define WIFI_PRIVACY_ENHANCEMENTS_ENABLED true
|
||||
@@ -363,6 +384,7 @@ extern wifi_osi_funcs_t g_wifi_osi_funcs;
|
||||
.dump_hesigb_enable = WIFI_DUMP_HESIGB_ENABLED, \
|
||||
.privacy_enhancements = WIFI_PRIVACY_ENHANCEMENTS_ENABLED, \
|
||||
.rmac_auto_reset_int = WIFI_RMAC_AUTO_RESET_INTERVAL, \
|
||||
.wifi_task_stack_size = WIFI_TASK_STACK_SIZE, \
|
||||
.magic = WIFI_INIT_CONFIG_MAGIC\
|
||||
}
|
||||
|
||||
|
||||
+1
-1
Submodule components/esp_wifi/lib updated: 5bf80801f7...de151f5eb9
@@ -122,6 +122,7 @@ typedef struct {
|
||||
bool dump_hesigb_enable; /**< enable dump sigb field */
|
||||
bool privacy_enhancements; /**< WiFi privacy enhancements (enables random mac, seq number, dialogue token number, vendor seq number cnt). Supported on station interface only; softAP may be added in future */
|
||||
uint8_t rmac_auto_reset_int; /**< Random MAC auto-reset interval in hours (1-24) while not connected */
|
||||
int wifi_task_stack_size; /**< WIFI task stack size */
|
||||
int magic; /**< WiFi init magic number, it should be the last field */
|
||||
} wifi_init_config_t;
|
||||
|
||||
@@ -298,6 +299,24 @@ extern wifi_osi_funcs_t g_wifi_osi_funcs;
|
||||
#define WIFI_ENABLE_OWE_SOFTAP 0
|
||||
#endif
|
||||
|
||||
#if CONFIG_WIFI_RMT_ENABLE_WPA3_OWE_STA
|
||||
#define WIFI_ENABLE_WPA3_OWE_STA (1<<11)
|
||||
#else
|
||||
#define WIFI_ENABLE_WPA3_OWE_STA 0
|
||||
#endif
|
||||
|
||||
#if CONFIG_WIFI_RMT_ENABLE_WPA3_OWE_STA || CONFIG_WIFI_RMT_ENABLE_WPA3_SAE
|
||||
#define WIFI_TASK_STACK_SIZE_BASE 6144
|
||||
#else
|
||||
#define WIFI_TASK_STACK_SIZE_BASE 3072
|
||||
#endif
|
||||
|
||||
#if !WIFI_NANO_FORMAT_ENABLED
|
||||
#define WIFI_TASK_STACK_SIZE (WIFI_TASK_STACK_SIZE_BASE + 512)
|
||||
#else
|
||||
#define WIFI_TASK_STACK_SIZE WIFI_TASK_STACK_SIZE_BASE
|
||||
#endif
|
||||
|
||||
#define CONFIG_FEATURE_WPA3_SAE_BIT (1<<0)
|
||||
#define CONFIG_FEATURE_CACHE_TX_BUF_BIT (1<<1)
|
||||
#define CONFIG_FEATURE_FTM_INITIATOR_BIT (1<<2)
|
||||
@@ -309,6 +328,7 @@ extern wifi_osi_funcs_t g_wifi_osi_funcs;
|
||||
#define CONFIG_FEATURE_BSS_MAX_IDLE_BIT (1<<8)
|
||||
#define CONFIG_FEATURE_WIFI_PASSIVE_HIDDEN_AP_BIT (1<<9)
|
||||
#define CONFIG_FEATURE_OWE_SOFTAP_BIT (1<<10)
|
||||
#define CONFIG_FEATURE_WPA3_OWE_STA_BIT (1<<11)
|
||||
|
||||
/* Set additional WiFi features and capabilities */
|
||||
#define WIFI_FEATURE_CAPS (WIFI_ENABLE_WPA3_SAE | \
|
||||
@@ -321,7 +341,8 @@ extern wifi_osi_funcs_t g_wifi_osi_funcs;
|
||||
WIFI_ENABLE_ENTERPRISE | \
|
||||
WIFI_ENABLE_BSS_MAX_IDLE | \
|
||||
WIFI_ENABLE_PASSIVE_HIDDEN_AP | \
|
||||
WIFI_ENABLE_OWE_SOFTAP)
|
||||
WIFI_ENABLE_OWE_SOFTAP | \
|
||||
WIFI_ENABLE_WPA3_OWE_STA)
|
||||
|
||||
#if CONFIG_WIFI_RMT_PRIVACY_ENHANCEMENTS_ENABLED
|
||||
#define WIFI_PRIVACY_ENHANCEMENTS_ENABLED true
|
||||
@@ -363,6 +384,7 @@ extern wifi_osi_funcs_t g_wifi_osi_funcs;
|
||||
.dump_hesigb_enable = WIFI_DUMP_HESIGB_ENABLED, \
|
||||
.privacy_enhancements = WIFI_PRIVACY_ENHANCEMENTS_ENABLED, \
|
||||
.rmac_auto_reset_int = WIFI_RMAC_AUTO_RESET_INTERVAL, \
|
||||
.wifi_task_stack_size = WIFI_TASK_STACK_SIZE, \
|
||||
.magic = WIFI_INIT_CONFIG_MAGIC\
|
||||
}
|
||||
|
||||
|
||||
@@ -3378,8 +3378,10 @@ int owe_process_assoc_resp(const u8 *rsn_ie, size_t rsn_len, const uint8_t *dh_i
|
||||
wpa_sm_set_pmk_from_pmksa(sm);
|
||||
goto done;
|
||||
} else {
|
||||
/* If PMKID mismatches, derive keys again */
|
||||
/* If PMKID mismatches, abort assoc due to invalid pmkid*/
|
||||
wpa_printf(MSG_DEBUG, "OWE : Invalid PMKID in response");
|
||||
os_free(parsed_rsn_data);
|
||||
return 1;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -3392,11 +3394,8 @@ int owe_process_assoc_resp(const u8 *rsn_ie, size_t rsn_len, const uint8_t *dh_i
|
||||
goto fail;
|
||||
}
|
||||
|
||||
/* If STA or AP does not have PMKID, or PMKID mismatches, proceed with normal association */
|
||||
dh_len += 2;
|
||||
|
||||
dh_len -=1;
|
||||
dh_ie += 3;
|
||||
dh_len -=3;
|
||||
group = WPA_GET_LE16(dh_ie);
|
||||
|
||||
/* Only group 19 is supported */
|
||||
|
||||
Reference in New Issue
Block a user