]> git.ipfire.org Git - thirdparty/hostap.git/commitdiff
OWE: Add testing RSNE for OWE assoc response with driver SME/MLME
authorAshok Ponnaiah <aponnaia@codeaurora.org>
Mon, 12 Feb 2018 11:57:12 +0000 (17:27 +0530)
committerJouni Malinen <j@w1.fi>
Mon, 12 Feb 2018 19:31:04 +0000 (21:31 +0200)
Allow RSNE to be overwritten for testing purposes also in the
driver-based SME/MLME case.

Signed-off-by: Jouni Malinen <jouni@codeaurora.org>
src/ap/ieee802_11.c
src/ap/wpa_auth_ie.c

index 8269b72b1e457146b4a12906348d0af10073b89d..8c0de4d678eae08a230782528a8684c390aa88dd 100644 (file)
@@ -2992,6 +2992,15 @@ u8 * owe_assoc_req_process(struct hostapd_data *hapd, struct sta_info *sta,
                           const u8 *owe_dh, u8 owe_dh_len,
                           u8 *owe_buf, size_t owe_buf_len, u16 *reason)
 {
+#ifdef CONFIG_TESTING_OPTIONS
+       if (hapd->conf->own_ie_override) {
+               wpa_printf(MSG_DEBUG, "OWE: Using IE override");
+               *reason = WLAN_STATUS_SUCCESS;
+               return wpa_auth_write_assoc_resp_owe(sta->wpa_sm, owe_buf,
+                                                    owe_buf_len, NULL, 0);
+       }
+#endif /* CONFIG_TESTING_OPTIONS */
+
        if (wpa_auth_sta_get_pmksa(sta->wpa_sm)) {
                wpa_printf(MSG_DEBUG, "OWE: Using PMKSA caching");
                owe_buf = wpa_auth_write_assoc_resp_owe(sta->wpa_sm, owe_buf,
index b80c19c2f8311d29822621a56e1cc20651b12144..28db9527af0b929a42cc3eac12f8ff6b6ad370ab 100644 (file)
@@ -1037,6 +1037,19 @@ u8 * wpa_auth_write_assoc_resp_owe(struct wpa_state_machine *sm,
                                   const u8 *req_ies, size_t req_ies_len)
 {
        int res;
+       struct wpa_auth_config *conf = &sm->wpa_auth->conf;
+
+#ifdef CONFIG_TESTING_OPTIONS
+       if (conf->own_ie_override_len) {
+               if (max_len < conf->own_ie_override_len)
+                       return 0;
+               wpa_hexdump(MSG_DEBUG, "WPA: Forced own IE(s) for testing",
+                           conf->own_ie_override, conf->own_ie_override_len);
+               os_memcpy(pos, conf->own_ie_override,
+                         conf->own_ie_override_len);
+               return pos + conf->own_ie_override_len;
+       }
+#endif /* CONFIG_TESTING_OPTIONS */
 
        res = wpa_write_rsn_ie(&sm->wpa_auth->conf, pos, max_len,
                               sm->pmksa ? sm->pmksa->pmkid : NULL);