PeerKey: Fix STK 4-way handshake regression
Commit c93b7e1888
('RSN: Check result of
EAPOL-Key frame send request') forgot to update two PeerKey users of
EAPOL-Key TX functions. That resulted in STK handshake failing since
message 2/4 and 4/4 TX calls were assumed to have failed when the return
value was changed from 0 to a positive value for success case. This
resulted in not updating nonce information properly and hitting
following error when processing STK 4-way handshake message 3/4:
RSN: INonce from message 1 of STK 4-Way Handshake differs from 3 of STK
4-Way Handshake - drop packet (src=<addr>)
Signed-off-by: Jouni Malinen <j@w1.fi>
This commit is contained in:
parent
28fb9bb195
commit
e414f4f021
1 changed files with 5 additions and 2 deletions
|
@ -715,7 +715,8 @@ static void wpa_supplicant_process_stk_1_of_4(struct wpa_sm *sm,
|
||||||
|
|
||||||
if (wpa_supplicant_send_2_of_4(sm, peerkey->addr, key, ver,
|
if (wpa_supplicant_send_2_of_4(sm, peerkey->addr, key, ver,
|
||||||
peerkey->pnonce, kde_buf, kde_buf_len,
|
peerkey->pnonce, kde_buf, kde_buf_len,
|
||||||
stk)) {
|
stk) < 0) {
|
||||||
|
wpa_printf(MSG_INFO, "RSN: Failed to send STK message 2/4");
|
||||||
os_free(kde_buf);
|
os_free(kde_buf);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
@ -854,8 +855,10 @@ static void wpa_supplicant_process_stk_3_of_4(struct wpa_sm *sm,
|
||||||
|
|
||||||
if (wpa_supplicant_send_4_of_4(sm, peerkey->addr, key, ver,
|
if (wpa_supplicant_send_4_of_4(sm, peerkey->addr, key, ver,
|
||||||
WPA_GET_BE16(key->key_info),
|
WPA_GET_BE16(key->key_info),
|
||||||
&peerkey->stk))
|
&peerkey->stk) < 0) {
|
||||||
|
wpa_printf(MSG_INFO, "RSN: Failed to send STK message 4/4");
|
||||||
return;
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
_key = peerkey->stk.tk;
|
_key = peerkey->stk.tk;
|
||||||
if (peerkey->cipher == WPA_CIPHER_TKIP) {
|
if (peerkey->cipher == WPA_CIPHER_TKIP) {
|
||||||
|
|
Loading…
Reference in a new issue