aboutsummaryrefslogtreecommitdiffstats
path: root/src/common/wpa_common.h
diff options
context:
space:
mode:
authorJouni Malinen <jouni@qca.qualcomm.com>2017-09-13 14:58:29 (GMT)
committerJouni Malinen <j@w1.fi>2017-09-13 19:17:58 (GMT)
commit41b819148570270bf23b478095f885c8986ec6f7 (patch)
tree9a7d12fcb9423d3c8c9c7627333619bc2a758f0e /src/common/wpa_common.h
parent30311339834bb9f426a36ad31b95860af130a4ae (diff)
downloadhostap-41b819148570270bf23b478095f885c8986ec6f7.zip
hostap-41b819148570270bf23b478095f885c8986ec6f7.tar.gz
hostap-41b819148570270bf23b478095f885c8986ec6f7.tar.bz2
FILS: Update PMKID derivation rules for ERP key hierarchy establishment
IEEE Std 802.11ai-2016 had missed a change in the Pairwise key hierarchy clause (12.7.1.3 in IEEE Std 802.11-2016) and due to that, the previous implementation ended up using HMAC-SHA-1 -based PMKID derivation. This was not really the intent of the FILS design and that issue was fixed during REVmd work with the changes proposed in https://mentor.ieee.org/802.11/dcn/17/11-17-0906-04-000m-fils-fixes.docx that change FILS cases to use HMAC-SHA-256 and HMAC-SHA-384 based on the negotiated AKM. Update the implementation to match the new design. This changes the rsn_pmkid() function to take in the more generic AKMP identifier instead of a boolean identifying whether SHA256 is used. Note: This is not backwards compatible, i.e., this breaks PMKSA caching based on the initial ERP key hierarchy setup if only STA or AP side implementation is updated. PMKSA caching based on FILS authentication exchange is not impacted by this, though. Signed-off-by: Jouni Malinen <jouni@qca.qualcomm.com>
Diffstat (limited to 'src/common/wpa_common.h')
-rw-r--r--src/common/wpa_common.h2
1 files changed, 1 insertions, 1 deletions
diff --git a/src/common/wpa_common.h b/src/common/wpa_common.h
index f96eaa8..b4d6c13 100644
--- a/src/common/wpa_common.h
+++ b/src/common/wpa_common.h
@@ -397,7 +397,7 @@ int wpa_parse_wpa_ie_wpa(const u8 *wpa_ie, size_t wpa_ie_len,
struct wpa_ie_data *data);
void rsn_pmkid(const u8 *pmk, size_t pmk_len, const u8 *aa, const u8 *spa,
- u8 *pmkid, int use_sha256);
+ u8 *pmkid, int akmp);
#ifdef CONFIG_SUITEB
int rsn_pmkid_suite_b(const u8 *kck, size_t kck_len, const u8 *aa,
const u8 *spa, u8 *pmkid);