SAE: Collect list of rejected groups for H2E in STA
Signed-off-by: Jouni Malinen <jouni@codeaurora.org>
This commit is contained in:
parent
05a2fb0d11
commit
447cd5f2df
3 changed files with 15 additions and 0 deletions
|
@ -1109,6 +1109,8 @@ static int sme_sae_auth(struct wpa_supplicant *wpa_s, u16 auth_transaction,
|
||||||
wpa_s->sme.sae.state == SAE_COMMITTED &&
|
wpa_s->sme.sae.state == SAE_COMMITTED &&
|
||||||
(external || wpa_s->current_bss) && wpa_s->current_ssid) {
|
(external || wpa_s->current_bss) && wpa_s->current_ssid) {
|
||||||
wpa_dbg(wpa_s, MSG_DEBUG, "SME: SAE group not supported");
|
wpa_dbg(wpa_s, MSG_DEBUG, "SME: SAE group not supported");
|
||||||
|
int_array_add_unique(&wpa_s->sme.sae_rejected_groups,
|
||||||
|
wpa_s->sme.sae.group);
|
||||||
wpa_s->sme.sae_group_index++;
|
wpa_s->sme.sae_group_index++;
|
||||||
if (sme_set_sae_group(wpa_s) < 0)
|
if (sme_set_sae_group(wpa_s) < 0)
|
||||||
return -1; /* no other groups enabled */
|
return -1; /* no other groups enabled */
|
||||||
|
@ -2028,6 +2030,10 @@ void sme_clear_on_disassoc(struct wpa_supplicant *wpa_s)
|
||||||
void sme_deinit(struct wpa_supplicant *wpa_s)
|
void sme_deinit(struct wpa_supplicant *wpa_s)
|
||||||
{
|
{
|
||||||
sme_clear_on_disassoc(wpa_s);
|
sme_clear_on_disassoc(wpa_s);
|
||||||
|
#ifdef CONFIG_SAE
|
||||||
|
os_free(wpa_s->sme.sae_rejected_groups);
|
||||||
|
wpa_s->sme.sae_rejected_groups = NULL;
|
||||||
|
#endif /* CONFIG_SAE */
|
||||||
|
|
||||||
eloop_cancel_timeout(sme_assoc_timer, wpa_s, NULL);
|
eloop_cancel_timeout(sme_assoc_timer, wpa_s, NULL);
|
||||||
eloop_cancel_timeout(sme_auth_timer, wpa_s, NULL);
|
eloop_cancel_timeout(sme_auth_timer, wpa_s, NULL);
|
||||||
|
|
|
@ -2010,6 +2010,10 @@ void wpa_supplicant_associate(struct wpa_supplicant *wpa_s,
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
#ifdef CONFIG_SAE
|
#ifdef CONFIG_SAE
|
||||||
|
#ifdef CONFIG_SME
|
||||||
|
os_free(wpa_s->sme.sae_rejected_groups);
|
||||||
|
wpa_s->sme.sae_rejected_groups = NULL;
|
||||||
|
#endif /* CONFIG_SME */
|
||||||
wpa_s_setup_sae_pt(wpa_s->conf, ssid);
|
wpa_s_setup_sae_pt(wpa_s->conf, ssid);
|
||||||
#endif /* CONFIG_SAE */
|
#endif /* CONFIG_SAE */
|
||||||
}
|
}
|
||||||
|
@ -4017,6 +4021,10 @@ void wpa_supplicant_select_network(struct wpa_supplicant *wpa_s,
|
||||||
|
|
||||||
wpa_s->disconnected = 0;
|
wpa_s->disconnected = 0;
|
||||||
wpa_s->reassociate = 1;
|
wpa_s->reassociate = 1;
|
||||||
|
#if defined(CONFIG_SAE) && defined(CONFIG_SME)
|
||||||
|
os_free(wpa_s->sme.sae_rejected_groups);
|
||||||
|
wpa_s->sme.sae_rejected_groups = NULL;
|
||||||
|
#endif /* CONFIG_SAE && CONFIG_SME */
|
||||||
wpa_s->last_owe_group = 0;
|
wpa_s->last_owe_group = 0;
|
||||||
if (ssid) {
|
if (ssid) {
|
||||||
ssid->owe_transition_bss_select_count = 0;
|
ssid->owe_transition_bss_select_count = 0;
|
||||||
|
|
|
@ -810,6 +810,7 @@ struct wpa_supplicant {
|
||||||
u8 ext_auth_bssid[ETH_ALEN];
|
u8 ext_auth_bssid[ETH_ALEN];
|
||||||
u8 ext_auth_ssid[SSID_MAX_LEN];
|
u8 ext_auth_ssid[SSID_MAX_LEN];
|
||||||
size_t ext_auth_ssid_len;
|
size_t ext_auth_ssid_len;
|
||||||
|
int *sae_rejected_groups;
|
||||||
#endif /* CONFIG_SAE */
|
#endif /* CONFIG_SAE */
|
||||||
} sme;
|
} sme;
|
||||||
#endif /* CONFIG_SME */
|
#endif /* CONFIG_SME */
|
||||||
|
|
Loading…
Reference in a new issue