]> git.ipfire.org Git - thirdparty/hostap.git/commitdiff
Allow RSNE in EAPOL-Key msg 2/4 to be overridden for testing purposes
authorJouni Malinen <j@w1.fi>
Sun, 15 Mar 2020 09:11:38 +0000 (11:11 +0200)
committerJouni Malinen <j@w1.fi>
Sun, 15 Mar 2020 09:11:38 +0000 (11:11 +0200)
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>
wpa_supplicant/ctrl_iface.c
wpa_supplicant/events.c
wpa_supplicant/wpa_supplicant.c
wpa_supplicant/wpa_supplicant_i.h

index 077bd6449e6d62a9499e93b7f4d762ced457ae5b..2321fc358e7b0d8bd9095462bd20f5a80ee69116 100644 (file)
@@ -745,6 +745,12 @@ static int wpa_supplicant_ctrl_iface_set(struct wpa_supplicant *wpa_s,
                                break;
                        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) {
                wpabuf_free(wpa_s->rsnxe_override_assoc);
                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;
        os_free(wpa_s->extra_sae_rejected_groups);
        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);
        wpa_s->rsnxe_override_assoc = NULL;
        wpabuf_free(wpa_s->rsnxe_override_eapol);
index 15f7ae82e5667beae6ac3e2a1203bd7ed5c462f6..6ec0da1f746e9e984cc1701953e36bf815ee94e3 100644 (file)
@@ -3107,6 +3107,13 @@ static void wpa_supplicant_event_assoc(struct wpa_supplicant *wpa_s,
        wpa_s->last_eapol_matches_bssid = 0;
 
 #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) {
                wpa_printf(MSG_DEBUG,
                           "TESTING: RSNXE EAPOL-Key msg 2/4 override");
index 02895054f202451915acd9a685b3a96e77bc9080..c638fe535130fe7f3b28d1712ad1d94bc4ff2eda 100644 (file)
@@ -536,6 +536,8 @@ static void wpa_supplicant_cleanup(struct wpa_supplicant *wpa_s)
        wpa_s->last_assoc_req_wpa_ie = NULL;
        os_free(wpa_s->extra_sae_rejected_groups);
        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);
        wpa_s->rsnxe_override_assoc = NULL;
        wpabuf_free(wpa_s->rsnxe_override_eapol);
index a6ec3f37efc52ca23c68bf0f722fe5ececb89bdf..0de0382dcc1459583936a676ef23655c017da77e 100644 (file)
@@ -1142,6 +1142,7 @@ struct wpa_supplicant {
        size_t last_tk_len;
        struct wpabuf *last_assoc_req_wpa_ie;
        int *extra_sae_rejected_groups;
+       struct wpabuf *rsne_override_eapol;
        struct wpabuf *rsnxe_override_assoc;
        struct wpabuf *rsnxe_override_eapol;
        struct dl_list drv_signal_override;