static int send_auth_reply(struct hostapd_data *hapd, struct sta_info *sta,
- const u8 *dst, const u8 *bssid,
+ const u8 *dst,
u16 auth_alg, u16 auth_transaction, u16 resp,
const u8 *ies, size_t ies_len, const char *dbg)
{
#ifdef CONFIG_IEEE80211R_AP
-static void handle_auth_ft_finish(void *ctx, const u8 *dst, const u8 *bssid,
+static void handle_auth_ft_finish(void *ctx, const u8 *dst,
u16 auth_transaction, u16 status,
const u8 *ies, size_t ies_len)
{
struct sta_info *sta;
int reply_res;
- reply_res = send_auth_reply(hapd, NULL, dst, bssid, WLAN_AUTH_FT,
+ reply_res = send_auth_reply(hapd, NULL, dst, WLAN_AUTH_FT,
auth_transaction, status, ies, ies_len,
"auth-ft-finish");
static int auth_sae_send_commit(struct hostapd_data *hapd,
struct sta_info *sta,
- const u8 *bssid, int update, int status_code)
+ int update, int status_code)
{
struct wpabuf *data;
int reply_res;
status = hapd->conf->sae_commit_status;
}
#endif /* CONFIG_TESTING_OPTIONS */
- reply_res = send_auth_reply(hapd, sta, sta->addr, bssid,
+ reply_res = send_auth_reply(hapd, sta, sta->addr,
WLAN_AUTH_SAE, 1,
status, wpabuf_head(data),
wpabuf_len(data), "sae-send-commit");
static int auth_sae_send_confirm(struct hostapd_data *hapd,
- struct sta_info *sta,
- const u8 *bssid)
+ struct sta_info *sta)
{
struct wpabuf *data;
int reply_res;
if (data == NULL)
return WLAN_STATUS_UNSPECIFIED_FAILURE;
- reply_res = send_auth_reply(hapd, sta, sta->addr, bssid,
+ reply_res = send_auth_reply(hapd, sta, sta->addr,
WLAN_AUTH_SAE, 2,
WLAN_STATUS_SUCCESS, wpabuf_head(data),
wpabuf_len(data), "sae-send-confirm");
switch (sta->sae->state) {
case SAE_COMMITTED:
- ret = auth_sae_send_commit(hapd, sta, hapd->own_addr, 0, -1);
+ ret = auth_sae_send_commit(hapd, sta, 0, -1);
eloop_register_timeout(0,
hapd->dot11RSNASAERetransPeriod * 1000,
auth_sae_retransmit_timer, hapd, sta);
break;
case SAE_CONFIRMED:
- ret = auth_sae_send_confirm(hapd, sta, hapd->own_addr);
+ ret = auth_sae_send_confirm(hapd, sta);
eloop_register_timeout(0,
hapd->dot11RSNASAERetransPeriod * 1000,
auth_sae_retransmit_timer, hapd, sta);
static int sae_sm_step(struct hostapd_data *hapd, struct sta_info *sta,
- const u8 *bssid, u16 auth_transaction, u16 status_code,
+ u16 auth_transaction, u16 status_code,
int allow_reuse, int *sta_removed)
{
int ret;
sta->sae->pk =
status_code == WLAN_STATUS_SAE_PK;
}
- ret = auth_sae_send_commit(hapd, sta, bssid,
+ ret = auth_sae_send_commit(hapd, sta,
!allow_reuse, status_code);
if (ret)
return ret;
* based on SAE finite state machine
* Nothing -> Confirm transition.
*/
- ret = auth_sae_send_confirm(hapd, sta, bssid);
+ ret = auth_sae_send_confirm(hapd, sta);
if (ret)
return ret;
sae_set_state(sta, SAE_CONFIRMED,
if (sae_process_commit(sta->sae) < 0)
return WLAN_STATUS_UNSPECIFIED_FAILURE;
- ret = auth_sae_send_confirm(hapd, sta, bssid);
+ ret = auth_sae_send_confirm(hapd, sta);
if (ret)
return ret;
sae_set_state(sta, SAE_CONFIRMED, "Sent Confirm");
return WLAN_STATUS_SUCCESS;
sta->sae->sync++;
- ret = auth_sae_send_commit(hapd, sta, bssid, 0,
- status_code);
+ ret = auth_sae_send_commit(hapd, sta, 0, status_code);
if (ret)
return ret;
* Nothing -> Confirmed transition that was reduced to
* Nothing -> Committed above.
*/
- ret = auth_sae_send_confirm(hapd, sta, bssid);
+ ret = auth_sae_send_confirm(hapd, sta);
if (ret)
return ret;
* step to get to Accepted without waiting for
* additional events.
*/
- return sae_sm_step(hapd, sta, bssid, auth_transaction,
+ return sae_sm_step(hapd, sta, auth_transaction,
WLAN_STATUS_SUCCESS, 0, sta_removed);
}
break;
return WLAN_STATUS_SUCCESS;
sta->sae->sync++;
- ret = auth_sae_send_commit(hapd, sta, bssid, 1,
- status_code);
+ ret = auth_sae_send_commit(hapd, sta, 1, status_code);
if (ret)
return ret;
if (sae_process_commit(sta->sae) < 0)
return WLAN_STATUS_UNSPECIFIED_FAILURE;
- ret = auth_sae_send_confirm(hapd, sta, bssid);
+ ret = auth_sae_send_confirm(hapd, sta);
if (ret)
return ret;
*sta_removed = 1;
} else if (auth_transaction == 1) {
wpa_printf(MSG_DEBUG, "SAE: Start reauthentication");
- ret = auth_sae_send_commit(hapd, sta, bssid, 1,
- status_code);
+ ret = auth_sae_send_commit(hapd, sta, 1, status_code);
if (ret)
return ret;
sae_set_state(sta, SAE_COMMITTED, "Sent Commit");
return WLAN_STATUS_SUCCESS;
sta->sae->sync++;
- ret = auth_sae_send_confirm(hapd, sta, bssid);
+ ret = auth_sae_send_confirm(hapd, sta);
sae_clear_temp_data(sta->sae);
if (ret)
return ret;
pos = mgmt->u.auth.variable;
end = ((const u8 *) mgmt) + len;
resp = status_code;
- send_auth_reply(hapd, sta, sta->addr, mgmt->bssid,
+ send_auth_reply(hapd, sta, sta->addr,
WLAN_AUTH_SAE,
auth_transaction, resp, pos, end - pos,
"auth-sae-reflection-attack");
if (hapd->conf->sae_commit_override && auth_transaction == 1) {
wpa_printf(MSG_DEBUG, "SAE: TESTING - commit override");
- send_auth_reply(hapd, sta, sta->addr, mgmt->bssid,
+ send_auth_reply(hapd, sta, sta->addr,
WLAN_AUTH_SAE,
auth_transaction, resp,
wpabuf_head(hapd->conf->sae_commit_override),
* Authentication frame, and the commit-scalar and
* COMMIT-ELEMENT previously sent.
*/
- resp = auth_sae_send_commit(hapd, sta, mgmt->bssid, 0,
- status_code);
+ resp = auth_sae_send_commit(hapd, sta, 0, status_code);
if (resp != WLAN_STATUS_SUCCESS) {
wpa_printf(MSG_ERROR,
"SAE: Failed to send commit message");
goto reply;
}
- resp = sae_sm_step(hapd, sta, mgmt->bssid, auth_transaction,
+ resp = sae_sm_step(hapd, sta, auth_transaction,
status_code, allow_reuse, &sta_removed);
} else if (auth_transaction == 2) {
hostapd_logger(hapd, sta->addr, HOSTAPD_MODULE_IEEE80211,
}
sta->sae->rc = peer_send_confirm;
}
- resp = sae_sm_step(hapd, sta, mgmt->bssid, auth_transaction,
+ resp = sae_sm_step(hapd, sta, auth_transaction,
status_code, 0, &sta_removed);
} else {
hostapd_logger(hapd, sta->addr, HOSTAPD_MODULE_IEEE80211,
data = wpabuf_alloc_copy(pos, 2);
sae_sme_send_external_auth_status(hapd, sta, resp);
- send_auth_reply(hapd, sta, sta->addr, mgmt->bssid,
+ send_auth_reply(hapd, sta, sta->addr,
WLAN_AUTH_SAE,
auth_transaction, resp,
data ? wpabuf_head(data) : (u8 *) "",
if (sta->sae->state != SAE_NOTHING)
return -1;
- ret = auth_sae_send_commit(hapd, sta, hapd->own_addr, 0, -1);
+ ret = auth_sae_send_commit(hapd, sta, 0, -1);
if (ret)
return -1;
auth_alg = (pub ||
resp == WLAN_STATUS_FINITE_CYCLIC_GROUP_NOT_SUPPORTED) ?
WLAN_AUTH_FILS_SK_PFS : WLAN_AUTH_FILS_SK;
- send_auth_reply(hapd, sta, sta->addr, hapd->own_addr, auth_alg, 2, resp,
+ send_auth_reply(hapd, sta, sta->addr, auth_alg, 2, resp,
data ? wpabuf_head(data) : (u8 *) "",
data ? wpabuf_len(data) : 0, "auth-fils-finish");
wpabuf_free(data);
size_t resp_ies_len = 0;
u16 seq_ctrl;
struct radius_sta rad_info;
- const u8 *dst, *sa, *bssid;
+ const u8 *dst, *sa;
#ifdef CONFIG_IEEE80211BE
bool mld_sta = false;
#endif /* CONFIG_IEEE80211BE */
resp = WLAN_STATUS_UNSPECIFIED_FAILURE;
goto fail;
}
- wpa_ft_process_auth(sta->wpa_sm, mgmt->bssid,
+ wpa_ft_process_auth(sta->wpa_sm,
auth_transaction, mgmt->u.auth.variable,
len - IEEE80211_HDRLEN -
sizeof(mgmt->u.auth),
fail:
dst = mgmt->sa;
- bssid = mgmt->bssid;
#ifdef CONFIG_IEEE80211BE
- if (ap_sta_is_mld(hapd, sta)) {
+ if (ap_sta_is_mld(hapd, sta))
dst = sta->addr;
- bssid = hapd->own_addr;
- }
#endif /* CONFIG_IEEE80211BE */
- reply_res = send_auth_reply(hapd, sta, dst, bssid, auth_alg,
+ reply_res = send_auth_reply(hapd, sta, dst, auth_alg,
auth_alg == WLAN_AUTH_SAE ?
auth_transaction : auth_transaction + 1,
resp, resp_ies, resp_ies_len,
struct ieee80211_mgmt *reply;
u8 *p;
u16 res = WLAN_STATUS_SUCCESS;
- const u8 *sa = hapd->own_addr;
buflen = sizeof(struct ieee80211_mgmt) + 1024;
#ifdef CONFIG_FILS
WLAN_FC_STYPE_ASSOC_RESP));
os_memcpy(reply->da, addr, ETH_ALEN);
- os_memcpy(reply->sa, sa, ETH_ALEN);
- os_memcpy(reply->bssid, sa, ETH_ALEN);
+ os_memcpy(reply->sa, hapd->own_addr, ETH_ALEN);
+ os_memcpy(reply->bssid, hapd->own_addr, ETH_ALEN);
send_len = IEEE80211_HDRLEN;
send_len += sizeof(reply->u.assoc_resp);