]> git.ipfire.org Git - thirdparty/hostap.git/commitdiff
nl80211: Indicate 802.1X 4-way handshake offload in connect
authorArend van Spriel <arend.vanspriel@broadcom.com>
Mon, 7 Jan 2019 11:14:41 +0000 (12:14 +0100)
committerJouni Malinen <j@w1.fi>
Mon, 7 Jan 2019 23:12:02 +0000 (01:12 +0200)
Upon issuing a connect request we need to indicate that we want the
driver to offload the 802.1X 4-way handshake for us. Indicate it if
the driver capability supports the offload.

Signed-off-by: Arend van Spriel <arend.vanspriel@broadcom.com>
src/drivers/driver_nl80211.c
wpa_supplicant/wpa_supplicant.c

index 5081b5b047bea65f47a6306d3f7344d1a940432c..a24497ff9e387c444673750373b11ed4daefb38e 100644 (file)
@@ -5568,6 +5568,13 @@ static int nl80211_connect_common(struct wpa_driver_nl80211_data *drv,
                        return -1;
        }
 
+       if (params->req_key_mgmt_offload &&
+           (drv->capa.flags & WPA_DRIVER_FLAGS_4WAY_HANDSHAKE_8021X)) {
+                   wpa_printf(MSG_DEBUG, "  * WANT_1X_4WAY_HS");
+                   if (nla_put_flag(msg, NL80211_ATTR_WANT_1X_4WAY_HS))
+                           return -1;
+           }
+
        /* Add PSK in case of 4-way handshake offload */
        if (params->psk &&
            (drv->capa.flags & WPA_DRIVER_FLAGS_4WAY_HANDSHAKE_PSK)) {
index 93630e40898655257e3c5bf999fbbb3e7bb157de..e0ee553e61a3ab48e8196e2d57bf2e39dcd77a66 100644 (file)
@@ -3114,6 +3114,13 @@ static void wpas_start_assoc_cb(struct wpa_radio_work *work, int deinit)
                        params.psk = ssid->psk;
        }
 
+       if ((wpa_s->drv_flags & WPA_DRIVER_FLAGS_4WAY_HANDSHAKE_8021X) &&
+           (params.key_mgmt_suite == WPA_KEY_MGMT_IEEE8021X ||
+            params.key_mgmt_suite == WPA_KEY_MGMT_IEEE8021X_SHA256 ||
+            params.key_mgmt_suite == WPA_KEY_MGMT_IEEE8021X_SUITE_B ||
+            params.key_mgmt_suite == WPA_KEY_MGMT_IEEE8021X_SUITE_B_192))
+               params.req_key_mgmt_offload = 1;
+
        if (wpa_s->conf->key_mgmt_offload) {
                if (params.key_mgmt_suite == WPA_KEY_MGMT_IEEE8021X ||
                    params.key_mgmt_suite == WPA_KEY_MGMT_IEEE8021X_SHA256 ||