Allow RSNE in EAPOL-Key msg 2/4 to be overridden for testing purposes
The new wpa_supplicant control interface parameter rsne_override_eapol can be used similarly to the earlier rsnxe_override_eapol to override the RSNE value added into EAPOL-Key msg 2/4. Signed-off-by: Jouni Malinen <j@w1.fi>
This commit is contained in:
parent
2b8f8a4721
commit
f21fbfb977
4 changed files with 18 additions and 0 deletions
|
@ -745,6 +745,12 @@ static int wpa_supplicant_ctrl_iface_set(struct wpa_supplicant *wpa_s,
|
||||||
break;
|
break;
|
||||||
pos++;
|
pos++;
|
||||||
}
|
}
|
||||||
|
} else if (os_strcasecmp(cmd, "rsne_override_eapol") == 0) {
|
||||||
|
wpabuf_free(wpa_s->rsne_override_eapol);
|
||||||
|
if (os_strcmp(value, "NULL") == 0)
|
||||||
|
wpa_s->rsne_override_eapol = NULL;
|
||||||
|
else
|
||||||
|
wpa_s->rsne_override_eapol = wpabuf_parse_bin(value);
|
||||||
} else if (os_strcasecmp(cmd, "rsnxe_override_assoc") == 0) {
|
} else if (os_strcasecmp(cmd, "rsnxe_override_assoc") == 0) {
|
||||||
wpabuf_free(wpa_s->rsnxe_override_assoc);
|
wpabuf_free(wpa_s->rsnxe_override_assoc);
|
||||||
if (os_strcmp(value, "NULL") == 0)
|
if (os_strcmp(value, "NULL") == 0)
|
||||||
|
@ -8174,6 +8180,8 @@ static void wpa_supplicant_ctrl_iface_flush(struct wpa_supplicant *wpa_s)
|
||||||
wpa_s->sae_commit_override = NULL;
|
wpa_s->sae_commit_override = NULL;
|
||||||
os_free(wpa_s->extra_sae_rejected_groups);
|
os_free(wpa_s->extra_sae_rejected_groups);
|
||||||
wpa_s->extra_sae_rejected_groups = NULL;
|
wpa_s->extra_sae_rejected_groups = NULL;
|
||||||
|
wpabuf_free(wpa_s->rsne_override_eapol);
|
||||||
|
wpa_s->rsne_override_eapol = NULL;
|
||||||
wpabuf_free(wpa_s->rsnxe_override_assoc);
|
wpabuf_free(wpa_s->rsnxe_override_assoc);
|
||||||
wpa_s->rsnxe_override_assoc = NULL;
|
wpa_s->rsnxe_override_assoc = NULL;
|
||||||
wpabuf_free(wpa_s->rsnxe_override_eapol);
|
wpabuf_free(wpa_s->rsnxe_override_eapol);
|
||||||
|
|
|
@ -3107,6 +3107,13 @@ static void wpa_supplicant_event_assoc(struct wpa_supplicant *wpa_s,
|
||||||
wpa_s->last_eapol_matches_bssid = 0;
|
wpa_s->last_eapol_matches_bssid = 0;
|
||||||
|
|
||||||
#ifdef CONFIG_TESTING_OPTIONS
|
#ifdef CONFIG_TESTING_OPTIONS
|
||||||
|
if (wpa_s->rsne_override_eapol) {
|
||||||
|
wpa_printf(MSG_DEBUG,
|
||||||
|
"TESTING: RSNE EAPOL-Key msg 2/4 override");
|
||||||
|
wpa_sm_set_assoc_wpa_ie(wpa_s->wpa,
|
||||||
|
wpabuf_head(wpa_s->rsne_override_eapol),
|
||||||
|
wpabuf_len(wpa_s->rsne_override_eapol));
|
||||||
|
}
|
||||||
if (wpa_s->rsnxe_override_eapol) {
|
if (wpa_s->rsnxe_override_eapol) {
|
||||||
wpa_printf(MSG_DEBUG,
|
wpa_printf(MSG_DEBUG,
|
||||||
"TESTING: RSNXE EAPOL-Key msg 2/4 override");
|
"TESTING: RSNXE EAPOL-Key msg 2/4 override");
|
||||||
|
|
|
@ -536,6 +536,8 @@ static void wpa_supplicant_cleanup(struct wpa_supplicant *wpa_s)
|
||||||
wpa_s->last_assoc_req_wpa_ie = NULL;
|
wpa_s->last_assoc_req_wpa_ie = NULL;
|
||||||
os_free(wpa_s->extra_sae_rejected_groups);
|
os_free(wpa_s->extra_sae_rejected_groups);
|
||||||
wpa_s->extra_sae_rejected_groups = NULL;
|
wpa_s->extra_sae_rejected_groups = NULL;
|
||||||
|
wpabuf_free(wpa_s->rsne_override_eapol);
|
||||||
|
wpa_s->rsne_override_eapol = NULL;
|
||||||
wpabuf_free(wpa_s->rsnxe_override_assoc);
|
wpabuf_free(wpa_s->rsnxe_override_assoc);
|
||||||
wpa_s->rsnxe_override_assoc = NULL;
|
wpa_s->rsnxe_override_assoc = NULL;
|
||||||
wpabuf_free(wpa_s->rsnxe_override_eapol);
|
wpabuf_free(wpa_s->rsnxe_override_eapol);
|
||||||
|
|
|
@ -1142,6 +1142,7 @@ struct wpa_supplicant {
|
||||||
size_t last_tk_len;
|
size_t last_tk_len;
|
||||||
struct wpabuf *last_assoc_req_wpa_ie;
|
struct wpabuf *last_assoc_req_wpa_ie;
|
||||||
int *extra_sae_rejected_groups;
|
int *extra_sae_rejected_groups;
|
||||||
|
struct wpabuf *rsne_override_eapol;
|
||||||
struct wpabuf *rsnxe_override_assoc;
|
struct wpabuf *rsnxe_override_assoc;
|
||||||
struct wpabuf *rsnxe_override_eapol;
|
struct wpabuf *rsnxe_override_eapol;
|
||||||
struct dl_list drv_signal_override;
|
struct dl_list drv_signal_override;
|
||||||
|
|
Loading…
Reference in a new issue