mirror of
https://github.com/vanhoefm/fragattacks.git
synced 2024-11-28 18:28:23 -05:00
EAP-GPSK: Check HMAC-SHA256 result in GKDF and MIC
hmac_sha256() and hmac_sha256_vector() return a result code now, so use that return value to terminate HMAC-SHA256-based GKDF/MIC similarly to what was already done with the CMAC-based GKDF/MIC. Signed-off-by: Jouni Malinen <j@w1.fi>
This commit is contained in:
parent
2ab957afc5
commit
0504d2da12
@ -92,7 +92,8 @@ static int eap_gpsk_gkdf_sha256(const u8 *psk /* Y */,
|
|||||||
n = (len + hashlen - 1) / hashlen;
|
n = (len + hashlen - 1) / hashlen;
|
||||||
for (i = 1; i <= n; i++) {
|
for (i = 1; i <= n; i++) {
|
||||||
WPA_PUT_BE16(ibuf, i);
|
WPA_PUT_BE16(ibuf, i);
|
||||||
hmac_sha256_vector(psk, 32, 2, addr, vlen, hash);
|
if (hmac_sha256_vector(psk, 32, 2, addr, vlen, hash))
|
||||||
|
return -1;
|
||||||
clen = left > hashlen ? hashlen : left;
|
clen = left > hashlen ? hashlen : left;
|
||||||
os_memcpy(opos, hash, clen);
|
os_memcpy(opos, hash, clen);
|
||||||
opos += clen;
|
opos += clen;
|
||||||
@ -534,8 +535,7 @@ int eap_gpsk_compute_mic(const u8 *sk, size_t sk_len, int vendor,
|
|||||||
break;
|
break;
|
||||||
#ifdef EAP_GPSK_SHA256
|
#ifdef EAP_GPSK_SHA256
|
||||||
case EAP_GPSK_CIPHER_SHA256:
|
case EAP_GPSK_CIPHER_SHA256:
|
||||||
hmac_sha256(sk, sk_len, data, len, mic);
|
ret = hmac_sha256(sk, sk_len, data, len, mic);
|
||||||
ret = 0;
|
|
||||||
break;
|
break;
|
||||||
#endif /* EAP_GPSK_SHA256 */
|
#endif /* EAP_GPSK_SHA256 */
|
||||||
default:
|
default:
|
||||||
@ -545,5 +545,8 @@ int eap_gpsk_compute_mic(const u8 *sk, size_t sk_len, int vendor,
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (ret)
|
||||||
|
wpa_printf(MSG_DEBUG, "EAP-GPSK: Could not compute MIC");
|
||||||
|
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user