aboutsummaryrefslogtreecommitdiffstats
path: root/wpa_supplicant/sme.c
diff options
context:
space:
mode:
authorJouni Malinen <j@w1.fi>2017-04-02 10:22:52 (GMT)
committerJouni Malinen <j@w1.fi>2017-04-02 10:23:34 (GMT)
commitaf3e362fa760326077d319ba32b64d6ecaebe0ed (patch)
tree42ec59e75e091de7e6d761f04a9ac07fb6ab60fd /wpa_supplicant/sme.c
parent5aa08153af1e92f13fab638f1dfeb6df0a29a217 (diff)
downloadhostap-af3e362fa760326077d319ba32b64d6ecaebe0ed.zip
hostap-af3e362fa760326077d319ba32b64d6ecaebe0ed.tar.gz
hostap-af3e362fa760326077d319ba32b64d6ecaebe0ed.tar.bz2
FILS: Add MDE into Authentication frame for FILS+FT
When using FILS for FT initial mobility domain association, add MDE to the Authentication frame from the STA to indicate this special case for FILS authentication. Signed-off-by: Jouni Malinen <j@w1.fi>
Diffstat (limited to 'wpa_supplicant/sme.c')
-rw-r--r--wpa_supplicant/sme.c13
1 files changed, 9 insertions, 4 deletions
diff --git a/wpa_supplicant/sme.c b/wpa_supplicant/sme.c
index 046a2db..7c097e4 100644
--- a/wpa_supplicant/sme.c
+++ b/wpa_supplicant/sme.c
@@ -208,9 +208,9 @@ static void sme_send_authentication(struct wpa_supplicant *wpa_s,
#ifdef CONFIG_IEEE80211R
const u8 *ie;
#endif /* CONFIG_IEEE80211R */
-#ifdef CONFIG_IEEE80211R
+#if defined(CONFIG_IEEE80211R) || defined(CONFIG_FILS)
const u8 *md = NULL;
-#endif /* CONFIG_IEEE80211R */
+#endif /* CONFIG_IEEE80211R || CONFIG_FILS */
int i, bssid_changed;
struct wpabuf *resp = NULL;
u8 ext_capab[18];
@@ -373,7 +373,12 @@ static void sme_send_authentication(struct wpa_supplicant *wpa_s,
wpa_ft_prepare_auth_request(wpa_s->wpa, ie);
}
- if (md && wpa_key_mgmt_ft(ssid->key_mgmt)) {
+ if (md && !wpa_key_mgmt_ft(ssid->key_mgmt))
+ md = NULL;
+ if (md) {
+ wpa_dbg(wpa_s, MSG_DEBUG, "SME: FT mobility domain %02x%02x",
+ md[0], md[1]);
+
if (wpa_s->sme.assoc_req_ie_len + 5 <
sizeof(wpa_s->sme.assoc_req_ie)) {
struct rsn_mdie *mdie;
@@ -594,7 +599,7 @@ static void sme_send_authentication(struct wpa_supplicant *wpa_s,
0)
wpa_printf(MSG_DEBUG,
"SME: Try to use FILS with PMKSA caching");
- resp = fils_build_auth(wpa_s->wpa, ssid->fils_dh_group);
+ resp = fils_build_auth(wpa_s->wpa, ssid->fils_dh_group, md);
if (resp) {
int auth_alg;