From 1f6e69e07b7308ec4f6017b66bb1df7ee1396793 Mon Sep 17 00:00:00 2001 From: Jouni Malinen Date: Fri, 9 Apr 2010 13:30:49 +0300 Subject: [PATCH] FT: Do not add MIC to FTIE during initial MD association 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 | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/src/ap/wpa_auth_ft.c b/src/ap/wpa_auth_ft.c index 499efb12a..7922a7a68 100644 --- a/src/ap/wpa_auth_ft.c +++ b/src/ap/wpa_auth_ft.c @@ -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,