SAE: Rename state variables to match IEEE 802.11 standard
The enum values for struct sae_data::state now match the protocol instance states as defined in IEEE Std 802.11-2012, 11.3.8.2.2 Signed-hostap: Jouni Malinen <j@w1.fi>
This commit is contained in:
parent
47b55a3ef5
commit
dd43026a19
3 changed files with 12 additions and 7 deletions
|
@ -376,6 +376,7 @@ static void handle_auth_sae(struct hostapd_data *hapd, struct sta_info *sta,
|
||||||
sta->sae = os_zalloc(sizeof(*sta->sae));
|
sta->sae = os_zalloc(sizeof(*sta->sae));
|
||||||
if (sta->sae == NULL)
|
if (sta->sae == NULL)
|
||||||
return;
|
return;
|
||||||
|
sta->sae->state = SAE_NOTHING;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (auth_transaction == 1) {
|
if (auth_transaction == 1) {
|
||||||
|
@ -386,13 +387,14 @@ static void handle_auth_sae(struct hostapd_data *hapd, struct sta_info *sta,
|
||||||
((const u8 *) mgmt) + len -
|
((const u8 *) mgmt) + len -
|
||||||
mgmt->u.auth.variable);
|
mgmt->u.auth.variable);
|
||||||
if (resp == WLAN_STATUS_SUCCESS) {
|
if (resp == WLAN_STATUS_SUCCESS) {
|
||||||
sta->sae->state = SAE_COMMIT;
|
|
||||||
data = auth_process_sae_commit(hapd, sta);
|
data = auth_process_sae_commit(hapd, sta);
|
||||||
if (data == NULL)
|
if (data == NULL)
|
||||||
resp = WLAN_STATUS_UNSPECIFIED_FAILURE;
|
resp = WLAN_STATUS_UNSPECIFIED_FAILURE;
|
||||||
|
else
|
||||||
|
sta->sae->state = SAE_COMMITTED;
|
||||||
}
|
}
|
||||||
} else if (auth_transaction == 2) {
|
} else if (auth_transaction == 2) {
|
||||||
if (sta->sae->state != SAE_COMMIT) {
|
if (sta->sae->state != SAE_COMMITTED) {
|
||||||
hostapd_logger(hapd, sta->addr,
|
hostapd_logger(hapd, sta->addr,
|
||||||
HOSTAPD_MODULE_IEEE80211,
|
HOSTAPD_MODULE_IEEE80211,
|
||||||
HOSTAPD_LEVEL_DEBUG,
|
HOSTAPD_LEVEL_DEBUG,
|
||||||
|
@ -416,6 +418,8 @@ static void handle_auth_sae(struct hostapd_data *hapd, struct sta_info *sta,
|
||||||
data = auth_build_sae_confirm(hapd, sta);
|
data = auth_build_sae_confirm(hapd, sta);
|
||||||
if (data == NULL)
|
if (data == NULL)
|
||||||
resp = WLAN_STATUS_UNSPECIFIED_FAILURE;
|
resp = WLAN_STATUS_UNSPECIFIED_FAILURE;
|
||||||
|
else
|
||||||
|
sta->sae->state = SAE_ACCEPTED;
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
hostapd_logger(hapd, sta->addr, HOSTAPD_MODULE_IEEE80211,
|
hostapd_logger(hapd, sta->addr, HOSTAPD_MODULE_IEEE80211,
|
||||||
|
|
|
@ -13,7 +13,7 @@
|
||||||
#define SAE_CONFIRM_MAX_LEN (2 + 32)
|
#define SAE_CONFIRM_MAX_LEN (2 + 32)
|
||||||
|
|
||||||
struct sae_data {
|
struct sae_data {
|
||||||
enum { SAE_INIT, SAE_COMMIT, SAE_CONFIRM } state;
|
enum { SAE_NOTHING, SAE_COMMITTED, SAE_CONFIRMED, SAE_ACCEPTED } state;
|
||||||
u16 send_confirm;
|
u16 send_confirm;
|
||||||
u8 kck[32];
|
u8 kck[32];
|
||||||
u8 pmk[32];
|
u8 pmk[32];
|
||||||
|
|
|
@ -344,7 +344,7 @@ static void sme_send_authentication(struct wpa_supplicant *wpa_s,
|
||||||
return;
|
return;
|
||||||
params.sae_data = wpabuf_head(resp);
|
params.sae_data = wpabuf_head(resp);
|
||||||
params.sae_data_len = wpabuf_len(resp);
|
params.sae_data_len = wpabuf_len(resp);
|
||||||
wpa_s->sme.sae.state = start ? SAE_COMMIT : SAE_CONFIRM;
|
wpa_s->sme.sae.state = start ? SAE_COMMITTED : SAE_CONFIRMED;
|
||||||
}
|
}
|
||||||
#endif /* CONFIG_SAE */
|
#endif /* CONFIG_SAE */
|
||||||
|
|
||||||
|
@ -390,7 +390,7 @@ void sme_authenticate(struct wpa_supplicant *wpa_s,
|
||||||
struct wpa_bss *bss, struct wpa_ssid *ssid)
|
struct wpa_bss *bss, struct wpa_ssid *ssid)
|
||||||
{
|
{
|
||||||
#ifdef CONFIG_SAE
|
#ifdef CONFIG_SAE
|
||||||
wpa_s->sme.sae.state = SAE_INIT;
|
wpa_s->sme.sae.state = SAE_NOTHING;
|
||||||
wpa_s->sme.sae.send_confirm = 0;
|
wpa_s->sme.sae.send_confirm = 0;
|
||||||
#endif /* CONFIG_SAE */
|
#endif /* CONFIG_SAE */
|
||||||
sme_send_authentication(wpa_s, bss, ssid, 1);
|
sme_send_authentication(wpa_s, bss, ssid, 1);
|
||||||
|
@ -414,7 +414,7 @@ static int sme_sae_auth(struct wpa_supplicant *wpa_s, u16 auth_transaction,
|
||||||
if (wpa_s->current_bss == NULL ||
|
if (wpa_s->current_bss == NULL ||
|
||||||
wpa_s->current_ssid == NULL)
|
wpa_s->current_ssid == NULL)
|
||||||
return -1;
|
return -1;
|
||||||
if (wpa_s->sme.sae.state != SAE_COMMIT)
|
if (wpa_s->sme.sae.state != SAE_COMMITTED)
|
||||||
return -1;
|
return -1;
|
||||||
if (sae_parse_commit(&wpa_s->sme.sae, data, len) !=
|
if (sae_parse_commit(&wpa_s->sme.sae, data, len) !=
|
||||||
WLAN_STATUS_SUCCESS)
|
WLAN_STATUS_SUCCESS)
|
||||||
|
@ -431,10 +431,11 @@ static int sme_sae_auth(struct wpa_supplicant *wpa_s, u16 auth_transaction,
|
||||||
return 0;
|
return 0;
|
||||||
} else if (auth_transaction == 2) {
|
} else if (auth_transaction == 2) {
|
||||||
wpa_dbg(wpa_s, MSG_DEBUG, "SME SAE confirm");
|
wpa_dbg(wpa_s, MSG_DEBUG, "SME SAE confirm");
|
||||||
if (wpa_s->sme.sae.state != SAE_CONFIRM)
|
if (wpa_s->sme.sae.state != SAE_CONFIRMED)
|
||||||
return -1;
|
return -1;
|
||||||
if (sae_check_confirm(&wpa_s->sme.sae, data, len) < 0)
|
if (sae_check_confirm(&wpa_s->sme.sae, data, len) < 0)
|
||||||
return -1;
|
return -1;
|
||||||
|
wpa_s->sme.sae.state = SAE_ACCEPTED;
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue