FT: Fix Reassociation Response in FT Protocol to include ANonce/SNonce

These values are required to be included in the frame per
IEEE Std 802.11r-2008, 11A.8.5.
This commit is contained in:
Jouni Malinen 2010-04-09 13:36:06 +03:00 committed by Jouni Malinen
parent 1f6e69e07b
commit 6e80516ab9

View file

@ -614,6 +614,7 @@ u8 * wpa_sm_write_assoc_resp_ies(struct wpa_state_machine *sm, u8 *pos,
struct rsn_ftie *_ftie; struct rsn_ftie *_ftie;
struct wpa_ft_ies parse; struct wpa_ft_ies parse;
u8 *ric_start; u8 *ric_start;
u8 *anonce, *snonce;
if (sm == NULL) if (sm == NULL)
return pos; return pos;
@ -652,6 +653,8 @@ u8 * wpa_sm_write_assoc_resp_ies(struct wpa_state_machine *sm, u8 *pos,
subelem = wpa_ft_gtk_subelem(sm, &subelem_len); subelem = wpa_ft_gtk_subelem(sm, &subelem_len);
r0kh_id = sm->r0kh_id; r0kh_id = sm->r0kh_id;
r0kh_id_len = sm->r0kh_id_len; r0kh_id_len = sm->r0kh_id_len;
anonce = sm->ANonce;
snonce = sm->SNonce;
#ifdef CONFIG_IEEE80211W #ifdef CONFIG_IEEE80211W
if (sm->mgmt_frame_prot) { if (sm->mgmt_frame_prot) {
u8 *igtk; u8 *igtk;
@ -677,8 +680,10 @@ u8 * wpa_sm_write_assoc_resp_ies(struct wpa_state_machine *sm, u8 *pos,
} else { } else {
r0kh_id = conf->r0_key_holder; r0kh_id = conf->r0_key_holder;
r0kh_id_len = conf->r0_key_holder_len; r0kh_id_len = conf->r0_key_holder_len;
anonce = NULL;
snonce = NULL;
} }
res = wpa_write_ftie(conf, r0kh_id, r0kh_id_len, NULL, NULL, pos, res = wpa_write_ftie(conf, r0kh_id, r0kh_id_len, anonce, snonce, pos,
end - pos, subelem, subelem_len); end - pos, subelem, subelem_len);
os_free(subelem); os_free(subelem);
if (res < 0) if (res < 0)