DPP: Fix EAPOL-Key Key MIC calculation

The Key MIC field value got truncated for all cases and incorrect HMAC
hash algorithm was used for the SHA512 cases.

Signed-off-by: Jouni Malinen <jouni@qca.qualcomm.com>
This commit is contained in:
Jouni Malinen 2017-10-08 16:40:51 +03:00 committed by Jouni Malinen
parent 8acde197c2
commit 8b5579e17a

View file

@ -184,7 +184,7 @@ int wpa_eapol_key_mic(const u8 *key, size_t key_len, int akmp, int ver,
if (hmac_sha384(key, key_len, buf, len, hash))
return -1;
} else if (key_len == 256 / 8) {
if (hmac_sha256(key, key_len, buf, len, hash))
if (hmac_sha512(key, key_len, buf, len, hash))
return -1;
} else {
wpa_printf(MSG_INFO,
@ -192,7 +192,7 @@ int wpa_eapol_key_mic(const u8 *key, size_t key_len, int akmp, int ver,
(unsigned int) key_len);
return -1;
}
os_memcpy(mic, hash, key_len / 8);
os_memcpy(mic, hash, key_len);
break;
#endif /* CONFIG_DPP */
default: