FT: Do not add MIC to FTIE during initial MD association
authorJouni Malinen <jouni.malinen@atheros.com>
Fri, 9 Apr 2010 10:30:49 +0000 (13:30 +0300)
committerJouni Malinen <j@w1.fi>
Fri, 9 Apr 2010 10:30:49 +0000 (13:30 +0300)
We do not have any keys set at this point so there is no point in
adding the MIC. In addition, IEEE Std 802.11r-2008, 11A.4.2
describes this frame to have MIC IE count of 0 and MIC of 0.

src/ap/wpa_auth_ft.c

index 499efb1..7922a7a 100644 (file)
@@ -688,18 +688,22 @@ u8 * wpa_sm_write_assoc_resp_ies(struct wpa_state_machine *sm, u8 *pos,
        pos += res;
 
        _ftie = (struct rsn_ftie *) (ftie + 2);
-       _ftie->mic_control[1] = 3; /* Information element count */
+       if (auth_alg == WLAN_AUTH_FT)
+               _ftie->mic_control[1] = 3; /* Information element count */
 
        ric_start = pos;
        if (wpa_ft_parse_ies(req_ies, req_ies_len, &parse) == 0 && parse.ric) {
                pos = wpa_ft_process_ric(pos, end, parse.ric, parse.ric_len);
-               _ftie->mic_control[1] += ieee802_11_ie_count(ric_start,
-                                                            pos - ric_start);
+               if (auth_alg == WLAN_AUTH_FT)
+                       _ftie->mic_control[1] +=
+                               ieee802_11_ie_count(ric_start,
+                                                   pos - ric_start);
        }
        if (ric_start == pos)
                ric_start = NULL;
 
-       if (wpa_ft_mic(sm->PTK.kck, sm->addr, sm->wpa_auth->addr, 6,
+       if (auth_alg == WLAN_AUTH_FT &&
+           wpa_ft_mic(sm->PTK.kck, sm->addr, sm->wpa_auth->addr, 6,
                       mdie, mdie_len, ftie, ftie_len,
                       rsnie, rsnie_len,
                       ric_start, ric_start ? pos - ric_start : 0,