Set GTK rekey offload information after initial group key handshake

The GTK rekey offload information was sent to the driver immediately
after the 4-way handshake which ended up being before the initial group
key exchange in the case of WPA (v1). This could result in even that
initial GTK handshake being offloaded and wpa_supplicant being left in
WPA_GROUP_HANDSHAKE state. Fix this by postponing the operation to
happen only after the full set of initial EAPOL-Key exchanges have been
completed (i.e., in the existing location for WPA2 and a after the group
key handshake for WPA).

Signed-hostap: Jouni Malinen <jouni@qca.qualcomm.com>
This commit is contained in:
Sunil Dutt 2013-10-30 11:41:40 +02:00 committed by Jouni Malinen
parent 789b9f1d52
commit 392e68e81f

View file

@ -1126,7 +1126,8 @@ static void wpa_supplicant_process_3_of_4(struct wpa_sm *sm,
goto failed;
}
wpa_sm_set_rekey_offload(sm);
if (ie.gtk)
wpa_sm_set_rekey_offload(sm);
return;
@ -1347,13 +1348,14 @@ static void wpa_supplicant_process_1_of_2(struct wpa_sm *sm,
MAC2STR(sm->bssid), wpa_cipher_txt(sm->group_cipher));
wpa_sm_cancel_auth_timeout(sm);
wpa_sm_set_state(sm, WPA_COMPLETED);
wpa_sm_set_rekey_offload(sm);
} else {
wpa_supplicant_key_neg_complete(sm, sm->bssid,
key_info &
WPA_KEY_INFO_SECURE);
}
wpa_sm_set_rekey_offload(sm);
return;
failed: