aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJimmy Chen <jimmycmchen@google.com>2021-04-13 14:55:52 +0800
committerJimmy Chen <jimmycmchen@google.com>2021-05-03 10:08:22 +0800
commitaace8cd0fea72440c72d6a876ed1996fcd7923b3 (patch)
tree7bf0cea837c7f01d7a98241f19a795ef48df6510
parentd96f16d88941f62189698aac56ba953b7ea09bd6 (diff)
downloadwpa_supplicant_8-aace8cd0fea72440c72d6a876ed1996fcd7923b3.tar.gz
wifi: enfoce H2E for 6Ghz BSS
Bug: 167634062 Test: atest VtsHalWifiSupplicantV1_4TargetTest Change-Id: I83a46c299d69c71e0595bb30ef93193bf58fe813
-rw-r--r--wpa_supplicant/ctrl_iface.c2
-rw-r--r--wpa_supplicant/wpa_supplicant.c10
-rw-r--r--wpa_supplicant/wpa_supplicant_i.h1
3 files changed, 13 insertions, 0 deletions
diff --git a/wpa_supplicant/ctrl_iface.c b/wpa_supplicant/ctrl_iface.c
index 0d4c2bc8..dffcd1be 100644
--- a/wpa_supplicant/ctrl_iface.c
+++ b/wpa_supplicant/ctrl_iface.c
@@ -816,6 +816,8 @@ static int wpa_supplicant_ctrl_iface_set(struct wpa_supplicant *wpa_s,
wpa_s->sae_commit_override = wpabuf_parse_bin(value);
} else if (os_strcasecmp(cmd, "driver_signal_override") == 0) {
ret = wpas_ctrl_iface_set_dso(wpa_s, value);
+ } else if (os_strcasecmp(cmd, "force_hunting_and_pecking_pwe") == 0) {
+ wpa_s->force_hunting_and_pecking_pwe = (atoi(value) != 0) ? 1 : 0;
#ifdef CONFIG_DPP
} else if (os_strcasecmp(cmd, "dpp_config_obj_override") == 0) {
os_free(wpa_s->dpp_config_obj_override);
diff --git a/wpa_supplicant/wpa_supplicant.c b/wpa_supplicant/wpa_supplicant.c
index 224fb10c..ff3a9646 100644
--- a/wpa_supplicant/wpa_supplicant.c
+++ b/wpa_supplicant/wpa_supplicant.c
@@ -1667,6 +1667,16 @@ int wpa_supplicant_set_suites(struct wpa_supplicant *wpa_s,
sae_pwe = wpa_s->conf->sae_pwe;
if (ssid->sae_password_id && sae_pwe != 3)
sae_pwe = 1;
+ if (bss && is_6ghz_freq(bss->freq)) {
+ wpa_dbg(wpa_s, MSG_DEBUG, "WPA: force hash-to-element mode for 6GHz BSS.");
+ sae_pwe = 1;
+ }
+#ifdef CONFIG_TESTING_OPTIONS
+ if (wpa_s->force_hunting_and_pecking_pwe) {
+ wpa_dbg(wpa_s, MSG_DEBUG, "WPA: force hunting and pecking mode.");
+ sae_pwe = 0;
+ }
+#endif
wpa_sm_set_param(wpa_s->wpa, WPA_PARAM_SAE_PWE, sae_pwe);
#ifdef CONFIG_SAE_PK
wpa_sm_set_param(wpa_s->wpa, WPA_PARAM_SAE_PK,
diff --git a/wpa_supplicant/wpa_supplicant_i.h b/wpa_supplicant/wpa_supplicant_i.h
index 56adf899..a1dc1a8d 100644
--- a/wpa_supplicant/wpa_supplicant_i.h
+++ b/wpa_supplicant/wpa_supplicant_i.h
@@ -1239,6 +1239,7 @@ struct wpa_supplicant {
unsigned int oci_freq_override_ft_assoc;
unsigned int oci_freq_override_fils_assoc;
unsigned int oci_freq_override_wnm_sleep;
+ int force_hunting_and_pecking_pwe;
#endif /* CONFIG_TESTING_OPTIONS */
struct wmm_ac_assoc_data *wmm_ac_assoc_info;