PASN: Add support to reject PASN auth 1 based on user input
When the PASN implementation is used as a library for Wi-Fi Aware applications there is need to reject the PASN auth 1 frame based on the user input. Add support to send PASN auth 2 with failure status for auth 1 frame received to address this need. Signed-off-by: Jouni Malinen <quic_jouni@quicinc.com>
This commit is contained in:
parent
18116e38a2
commit
8f21cdf9d7
3 changed files with 11 additions and 3 deletions
|
@ -2850,7 +2850,7 @@ static void handle_auth_pasn(struct hostapd_data *hapd, struct sta_info *sta,
|
|||
|
||||
hapd_pasn_update_params(hapd, sta, mgmt, len);
|
||||
if (handle_auth_pasn_1(sta->pasn, hapd->own_addr,
|
||||
sta->addr, mgmt, len) < 0)
|
||||
sta->addr, mgmt, len, false) < 0)
|
||||
ap_free_sta(hapd, sta);
|
||||
} else if (trans_seq == 3) {
|
||||
if (!sta->pasn) {
|
||||
|
|
|
@ -174,7 +174,8 @@ int wpa_pasn_auth_tx_status(struct pasn_data *pasn,
|
|||
/* Responder */
|
||||
int handle_auth_pasn_1(struct pasn_data *pasn,
|
||||
const u8 *own_addr, const u8 *peer_addr,
|
||||
const struct ieee80211_mgmt *mgmt, size_t len);
|
||||
const struct ieee80211_mgmt *mgmt, size_t len,
|
||||
bool reject);
|
||||
int handle_auth_pasn_3(struct pasn_data *pasn, const u8 *own_addr,
|
||||
const u8 *peer_addr,
|
||||
const struct ieee80211_mgmt *mgmt, size_t len);
|
||||
|
|
|
@ -597,7 +597,8 @@ fail:
|
|||
|
||||
int handle_auth_pasn_1(struct pasn_data *pasn,
|
||||
const u8 *own_addr, const u8 *peer_addr,
|
||||
const struct ieee80211_mgmt *mgmt, size_t len)
|
||||
const struct ieee80211_mgmt *mgmt, size_t len,
|
||||
bool reject)
|
||||
{
|
||||
struct ieee802_11_elems elems;
|
||||
struct wpa_ie_data rsn_data;
|
||||
|
@ -616,6 +617,12 @@ int handle_auth_pasn_1(struct pasn_data *pasn,
|
|||
if (!groups)
|
||||
groups = default_groups;
|
||||
|
||||
if (reject) {
|
||||
wpa_printf(MSG_DEBUG, "PASN: Received Rejection");
|
||||
status = WLAN_STATUS_UNSPECIFIED_FAILURE;
|
||||
goto send_resp;
|
||||
}
|
||||
|
||||
if (ieee802_11_parse_elems(mgmt->u.auth.variable,
|
||||
len - offsetof(struct ieee80211_mgmt,
|
||||
u.auth.variable),
|
||||
|
|
Loading…
Reference in a new issue