diff options
author | Jouni Malinen <jouni@qca.qualcomm.com> | 2017-10-08 09:29:33 (GMT) |
---|---|---|
committer | Jouni Malinen <j@w1.fi> | 2017-10-08 14:12:35 (GMT) |
commit | 675112df1b539d9d4ba80249a13946a869445fba (patch) | |
tree | 68f5fcedf19aba079dd85dbfa8314f49ff722b86 /wpa_supplicant/wpa_supplicant.c | |
parent | ea079153f41a38bfee92f192f1bd97a7c716fe93 (diff) | |
download | hostap-675112df1b539d9d4ba80249a13946a869445fba.zip hostap-675112df1b539d9d4ba80249a13946a869445fba.tar.gz hostap-675112df1b539d9d4ba80249a13946a869445fba.tar.bz2 |
OWE: Set PMK length properly on supplicant side
sm->pmk_len was not set when deriving the PMK as part of OWE key
generation. This depending on wpa_sm_set_pmk_from_pmksa() call resetting
the value to the default. While this worked for many cases, this is not
correct and can have issues with network profile selection based on
association information. For example, the OWE transition mode cases
would hit an issue here.
Signed-off-by: Jouni Malinen <jouni@qca.qualcomm.com>
Diffstat (limited to 'wpa_supplicant/wpa_supplicant.c')
-rw-r--r-- | wpa_supplicant/wpa_supplicant.c | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/wpa_supplicant/wpa_supplicant.c b/wpa_supplicant/wpa_supplicant.c index eca9b25..ddfdaf7 100644 --- a/wpa_supplicant/wpa_supplicant.c +++ b/wpa_supplicant/wpa_supplicant.c @@ -1528,6 +1528,12 @@ int wpa_supplicant_set_suites(struct wpa_supplicant *wpa_s, "No PSK available for association"); return -1; } +#ifdef CONFIG_OWE + } else if (wpa_s->key_mgmt == WPA_KEY_MGMT_OWE) { + /* OWE Diffie-Hellman exchange in (Re)Association + * Request/Response frames set the PMK, so do not override it + * here. */ +#endif /* CONFIG_OWE */ } else wpa_sm_set_pmk_from_pmksa(wpa_s->wpa); |