|
@@ -487,6 +487,11 @@ static int wpa_supplicant_match_privacy(struct wpa_bss *bss,
|
|
|
return 1;
|
|
|
#endif /* CONFIG_WPS */
|
|
|
|
|
|
+#ifdef CONFIG_OWE
|
|
|
+ if ((ssid->key_mgmt & WPA_KEY_MGMT_OWE) && !ssid->owe_only)
|
|
|
+ return 1;
|
|
|
+#endif /* CONFIG_OWE */
|
|
|
+
|
|
|
if (has_wep_key(ssid))
|
|
|
privacy = 1;
|
|
|
|
|
@@ -622,7 +627,8 @@ static int wpa_supplicant_ssid_bss_match(struct wpa_supplicant *wpa_s,
|
|
|
}
|
|
|
|
|
|
#ifdef CONFIG_IEEE80211W
|
|
|
- if (wpas_get_ssid_pmf(wpa_s, ssid) == MGMT_FRAME_PROTECTION_REQUIRED) {
|
|
|
+ if (wpas_get_ssid_pmf(wpa_s, ssid) == MGMT_FRAME_PROTECTION_REQUIRED &&
|
|
|
+ (!(ssid->key_mgmt & WPA_KEY_MGMT_OWE) || ssid->owe_only)) {
|
|
|
if (debug_print)
|
|
|
wpa_dbg(wpa_s, MSG_DEBUG,
|
|
|
" skip - MFP Required but network not MFP Capable");
|
|
@@ -692,6 +698,16 @@ static int wpa_supplicant_ssid_bss_match(struct wpa_supplicant *wpa_s,
|
|
|
return 1;
|
|
|
}
|
|
|
|
|
|
+#ifdef CONFIG_OWE
|
|
|
+ if ((ssid->key_mgmt & WPA_KEY_MGMT_OWE) && !ssid->owe_only &&
|
|
|
+ !wpa_ie && !rsn_ie) {
|
|
|
+ if (debug_print)
|
|
|
+ wpa_dbg(wpa_s, MSG_DEBUG,
|
|
|
+ " allow in OWE transition mode");
|
|
|
+ return 1;
|
|
|
+ }
|
|
|
+#endif /* CONFIG_OWE */
|
|
|
+
|
|
|
if ((ssid->proto & (WPA_PROTO_WPA | WPA_PROTO_RSN)) &&
|
|
|
wpa_key_mgmt_wpa(ssid->key_mgmt) && proto_match == 0) {
|
|
|
if (debug_print)
|
|
@@ -1137,6 +1153,7 @@ struct wpa_ssid * wpa_scan_res_match(struct wpa_supplicant *wpa_s,
|
|
|
if (!osen && !wpa &&
|
|
|
!(ssid->key_mgmt & WPA_KEY_MGMT_NONE) &&
|
|
|
!(ssid->key_mgmt & WPA_KEY_MGMT_WPS) &&
|
|
|
+ !(ssid->key_mgmt & WPA_KEY_MGMT_OWE) &&
|
|
|
!(ssid->key_mgmt & WPA_KEY_MGMT_IEEE8021X_NO_WPA)) {
|
|
|
if (debug_print)
|
|
|
wpa_dbg(wpa_s, MSG_DEBUG,
|