]> git.ipfire.org Git - thirdparty/hostap.git/commitdiff
tests: DPP PFS
authorJouni Malinen <jouni@codeaurora.org>
Sat, 28 Mar 2020 13:05:57 +0000 (15:05 +0200)
committerJouni Malinen <j@w1.fi>
Sat, 28 Mar 2020 15:27:42 +0000 (17:27 +0200)
Signed-off-by: Jouni Malinen <jouni@codeaurora.org>
tests/hwsim/test_dpp.py
tests/hwsim/wpasupplicant.py

index 2365b5a367b1b2b52d6021ad83a7ad4d7f643742..2b99bcf8549ca738e02bd5831960bf815f4ff526 100644 (file)
@@ -5178,3 +5178,64 @@ def test_dpp_chirp_configurator_inits(dev, apdev):
 
     dev[1].dpp_auth_init(uri=uri, conf="sta-dpp", configurator=conf_id)
     wait_auth_success(dev[0], dev[1], dev[1], dev[0])
+
+def start_dpp_pfs_ap(apdev, pfs):
+    params = {"ssid": "dpp",
+              "wpa": "2",
+              "wpa_key_mgmt": "DPP",
+              "dpp_pfs": str(pfs),
+              "ieee80211w": "2",
+              "rsn_pairwise": "CCMP",
+              "dpp_connector": params1_ap_connector,
+              "dpp_csign": params1_csign,
+              "dpp_netaccesskey": params1_ap_netaccesskey}
+    try:
+        hapd = hostapd.add_ap(apdev, params)
+    except:
+        raise HwsimSkip("DPP not supported")
+    return hapd
+
+def run_dpp_pfs_sta(dev, pfs, fail=False):
+    dev.connect("dpp", key_mgmt="DPP", scan_freq="2412",
+                ieee80211w="2", dpp_pfs=str(pfs),
+                dpp_csign=params1_csign,
+                dpp_connector=params1_sta_connector,
+                dpp_netaccesskey=params1_sta_netaccesskey,
+                wait_connect=not fail)
+    if fail:
+        for i in range(2):
+            ev = dev.wait_event(["CTRL-EVENT-ASSOC-REJECT",
+                                 "CTRL-EVENT-CONNECTED"], timeout=10)
+            if ev is None:
+                raise Exception("Connection result not reported")
+            if "CTRL-EVENT-CONNECTED" in ev:
+                raise Exception("Unexpected connection")
+        dev.request("REMOVE_NETWORK all")
+    else:
+        dev.request("REMOVE_NETWORK all")
+        dev.wait_disconnected()
+    dev.dump_monitor()
+
+def test_dpp_pfs_ap_0(dev, apdev):
+    """DPP PFS AP default"""
+    check_dpp_capab(dev[0])
+    hapd = start_dpp_pfs_ap(apdev[0], 0)
+    run_dpp_pfs_sta(dev[0], 0)
+    run_dpp_pfs_sta(dev[0], 1)
+    run_dpp_pfs_sta(dev[0], 2)
+
+def test_dpp_pfs_ap_1(dev, apdev):
+    """DPP PFS AP required"""
+    check_dpp_capab(dev[0])
+    hapd = start_dpp_pfs_ap(apdev[0], 1)
+    run_dpp_pfs_sta(dev[0], 0)
+    run_dpp_pfs_sta(dev[0], 1)
+    run_dpp_pfs_sta(dev[0], 2, fail=True)
+
+def test_dpp_pfs_ap_2(dev, apdev):
+    """DPP PFS AP not allowed"""
+    check_dpp_capab(dev[0])
+    hapd = start_dpp_pfs_ap(apdev[0], 2)
+    run_dpp_pfs_sta(dev[0], 0)
+    run_dpp_pfs_sta(dev[0], 1, fail=True)
+    run_dpp_pfs_sta(dev[0], 2)
index 00fcc68d1799364bdf14e2abf9534cd689ad961f..e273084acf5a8cf4b9895feba3036e37f41a3f27 100644 (file)
@@ -1099,7 +1099,7 @@ class WpaSupplicant:
                       "bssid_whitelist", "mem_only_psk", "eap_workaround",
                       "engine", "fils_dh_group", "bssid_hint",
                       "dpp_csign", "dpp_csign_expiry",
-                      "dpp_netaccesskey", "dpp_netaccesskey_expiry",
+                      "dpp_netaccesskey", "dpp_netaccesskey_expiry", "dpp_pfs",
                       "group_mgmt", "owe_group", "owe_only",
                       "owe_ptk_workaround",
                       "roaming_consortium_selection", "ocv",