PASN: Remove wpa_s dependency for SAE wrapped data functions
Use struct wpas_pasn (i.e., &wpa_s->pasn) as the function argument for the SAE functionality that does not need the full struct wpa_supplicant context. This is a step towards allowing PASN to be used outside the context of wpa_supplicant. Signed-off-by: Jouni Malinen <quic_jouni@quicinc.com>
This commit is contained in:
parent
5535fbcfac
commit
f636cbd048
1 changed files with 6 additions and 9 deletions
|
@ -102,9 +102,8 @@ static void wpas_pasn_auth_status(struct wpa_supplicant *wpa_s, const u8 *bssid,
|
||||||
|
|
||||||
#ifdef CONFIG_SAE
|
#ifdef CONFIG_SAE
|
||||||
|
|
||||||
static struct wpabuf * wpas_pasn_wd_sae_commit(struct wpa_supplicant *wpa_s)
|
static struct wpabuf * wpas_pasn_wd_sae_commit(struct wpas_pasn *pasn)
|
||||||
{
|
{
|
||||||
struct wpas_pasn *pasn = &wpa_s->pasn;
|
|
||||||
struct wpabuf *buf = NULL;
|
struct wpabuf *buf = NULL;
|
||||||
int ret;
|
int ret;
|
||||||
|
|
||||||
|
@ -140,9 +139,8 @@ static struct wpabuf * wpas_pasn_wd_sae_commit(struct wpa_supplicant *wpa_s)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
static int wpas_pasn_wd_sae_rx(struct wpa_supplicant *wpa_s, struct wpabuf *wd)
|
static int wpas_pasn_wd_sae_rx(struct wpas_pasn *pasn, struct wpabuf *wd)
|
||||||
{
|
{
|
||||||
struct wpas_pasn *pasn = &wpa_s->pasn;
|
|
||||||
const u8 *data;
|
const u8 *data;
|
||||||
size_t buf_len;
|
size_t buf_len;
|
||||||
u16 len, res, alg, seq, status;
|
u16 len, res, alg, seq, status;
|
||||||
|
@ -240,9 +238,8 @@ static int wpas_pasn_wd_sae_rx(struct wpa_supplicant *wpa_s, struct wpabuf *wd)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
static struct wpabuf * wpas_pasn_wd_sae_confirm(struct wpa_supplicant *wpa_s)
|
static struct wpabuf * wpas_pasn_wd_sae_confirm(struct wpas_pasn *pasn)
|
||||||
{
|
{
|
||||||
struct wpas_pasn *pasn = &wpa_s->pasn;
|
|
||||||
struct wpabuf *buf = NULL;
|
struct wpabuf *buf = NULL;
|
||||||
|
|
||||||
/* Need to add the entire authentication frame body */
|
/* Need to add the entire authentication frame body */
|
||||||
|
@ -876,9 +873,9 @@ static struct wpabuf * wpas_pasn_get_wrapped_data(struct wpa_supplicant *wpa_s)
|
||||||
case WPA_KEY_MGMT_SAE:
|
case WPA_KEY_MGMT_SAE:
|
||||||
#ifdef CONFIG_SAE
|
#ifdef CONFIG_SAE
|
||||||
if (pasn->trans_seq == 0)
|
if (pasn->trans_seq == 0)
|
||||||
return wpas_pasn_wd_sae_commit(wpa_s);
|
return wpas_pasn_wd_sae_commit(pasn);
|
||||||
if (pasn->trans_seq == 2)
|
if (pasn->trans_seq == 2)
|
||||||
return wpas_pasn_wd_sae_confirm(wpa_s);
|
return wpas_pasn_wd_sae_confirm(pasn);
|
||||||
#endif /* CONFIG_SAE */
|
#endif /* CONFIG_SAE */
|
||||||
wpa_printf(MSG_ERROR,
|
wpa_printf(MSG_ERROR,
|
||||||
"PASN: SAE: Cannot derive wrapped data");
|
"PASN: SAE: Cannot derive wrapped data");
|
||||||
|
@ -1236,7 +1233,7 @@ static int wpas_pasn_set_pmk(struct wpa_supplicant *wpa_s,
|
||||||
if (pasn->akmp == WPA_KEY_MGMT_SAE) {
|
if (pasn->akmp == WPA_KEY_MGMT_SAE) {
|
||||||
int ret;
|
int ret;
|
||||||
|
|
||||||
ret = wpas_pasn_wd_sae_rx(wpa_s, wrapped_data);
|
ret = wpas_pasn_wd_sae_rx(pasn, wrapped_data);
|
||||||
if (ret) {
|
if (ret) {
|
||||||
wpa_printf(MSG_DEBUG,
|
wpa_printf(MSG_DEBUG,
|
||||||
"PASN: Failed processing SAE wrapped data");
|
"PASN: Failed processing SAE wrapped data");
|
||||||
|
|
Loading…
Reference in a new issue