]> git.ipfire.org Git - thirdparty/hostap.git/commitdiff
tests: Check for SAE/OWE capability in additional test cases
authorJouni Malinen <j@w1.fi>
Sat, 1 Feb 2025 17:24:29 +0000 (19:24 +0200)
committerJouni Malinen <j@w1.fi>
Sat, 1 Feb 2025 17:50:55 +0000 (19:50 +0200)
These need to be skipped if the devices do not support SAE/OWE (e.g.,
when testing with GnuTLS).

Signed-off-by: Jouni Malinen <j@w1.fi>
tests/hwsim/test_eht.py
tests/hwsim/test_he.py
tests/hwsim/test_he_mbssid.py
tests/hwsim/test_rsn_override.py

index 8f1a51d4cdb27ea8815083a3250142496a62b7ca..ef796bce7e5beb70e1e0a92479e40a5d06332d1b 100644 (file)
@@ -412,6 +412,7 @@ def _eht_mld_owe_two_links(dev, apdev, second_link_disabled=False,
 
         wpas = WpaSupplicant(global_iface='/tmp/wpas-wlan5')
         wpas.interface_add(wpas_iface)
+        check_owe_capab(wpas)
 
         ssid = "mld_ap_owe_two_link"
         params = eht_mld_ap_wpa2_params(ssid, key_mgmt="OWE", mfp="2")
@@ -476,6 +477,7 @@ def run_eht_mld_sae_single_link(dev, apdev, anti_clogging_token=False):
             HWSimRadio(use_mlo=True) as (wpas_radio, wpas_iface):
         wpas = WpaSupplicant(global_iface='/tmp/wpas-wlan5')
         wpas.interface_add(wpas_iface)
+        check_sae_capab(wpas)
 
         passphrase = 'qwertyuiop'
         ssid = "mld_ap_sae_single_link"
@@ -502,6 +504,7 @@ def run_eht_mld_sae_two_links(dev, apdev, beacon_prot="1",
 
         wpas = WpaSupplicant(global_iface='/tmp/wpas-wlan5')
         wpas.interface_add(wpas_iface)
+        check_sae_capab(wpas)
 
         passphrase = 'qwertyuiop'
         ssid = "mld_ap_sae_two_link"
@@ -603,6 +606,7 @@ def test_eht_mld_sae_ext_one_link(dev, apdev):
 
         wpas = WpaSupplicant(global_iface='/tmp/wpas-wlan5')
         wpas.interface_add(wpas_iface)
+        check_sae_capab(wpas)
 
         passphrase = 'qwertyuiop'
         ssid = "mld_ap_sae_ext_single_link"
@@ -625,6 +629,7 @@ def test_eht_mld_sae_ext_two_links(dev, apdev):
 
         wpas = WpaSupplicant(global_iface='/tmp/wpas-wlan5')
         wpas.interface_add(wpas_iface)
+        check_sae_capab(wpas)
 
         passphrase = 'qwertyuiop'
         ssid = "mld_ap_sae_two_link"
@@ -648,6 +653,7 @@ def test_eht_mld_sae_ext_two_links(dev, apdev):
 
 def test_eht_mld_sae_legacy_client(dev, apdev):
     """EHT MLD AP with legacy client SAE H2E connection"""
+    check_sae_capab(dev[0])
     with HWSimRadio(use_mlo=True) as (hapd_radio, hapd_iface):
         passphrase = 'qwertyuiop'
         ssid = "mld_ap_sae_two_link"
@@ -687,6 +693,7 @@ def test_eht_mld_sae_transition(dev, apdev):
 
         wpas = WpaSupplicant(global_iface='/tmp/wpas-wlan5')
         wpas.interface_add(wpas_iface)
+        check_sae_capab(wpas)
 
         passphrase = 'qwertyuiop'
         ssid = "mld_ap_sae_two_link"
@@ -722,6 +729,7 @@ def test_eht_mld_ptk_rekey(dev, apdev):
 
         wpas = WpaSupplicant(global_iface='/tmp/wpas-wlan5')
         wpas.interface_add(wpas_iface)
+        check_sae_capab(wpas)
 
         passphrase = 'qwertyuiop'
         ssid = "mld_ap_sae_two_link"
@@ -762,6 +770,7 @@ def test_eht_mld_gtk_rekey(dev, apdev):
 
         wpas = WpaSupplicant(global_iface='/tmp/wpas-wlan5')
         wpas.interface_add(wpas_iface)
+        check_sae_capab(wpas)
 
         passphrase = 'qwertyuiop'
         ssid = "mld_ap_sae_two_link"
@@ -803,6 +812,7 @@ def test_eht_mld_gtk_rekey_failure(dev, apdev):
 
         wpas = WpaSupplicant(global_iface='/tmp/wpas-wlan5')
         wpas.interface_add(wpas_iface)
+        check_sae_capab(wpas)
 
         passphrase = 'qwertyuiop'
         ssid = "mld_ap_sae_two_link"
@@ -889,6 +899,7 @@ def test_eht_mld_connect_probes(dev, apdev, params):
 
         wpas = WpaSupplicant(global_iface='/tmp/wpas-wlan5')
         wpas.interface_add(wpas_iface)
+        check_sae_capab(wpas)
 
         ssid = "mld_ap"
         passphrase = 'qwertyuiop'
@@ -935,6 +946,7 @@ def test_eht_tx_link_rejected_connect_other(dev, apdev, params):
 
         wpas = WpaSupplicant(global_iface='/tmp/wpas-wlan5')
         wpas.interface_add(wpas_iface)
+        check_sae_capab(wpas)
 
         ssid = "mld_ap"
         passphrase = 'qwertyuiop'
@@ -965,6 +977,7 @@ def test_eht_all_links_rejected(dev, apdev, params):
 
         wpas = WpaSupplicant(global_iface='/tmp/wpas-wlan5')
         wpas.interface_add(wpas_iface)
+        check_sae_capab(wpas)
 
         ssid = "mld_ap"
         passphrase = 'qwertyuiop'
@@ -1006,6 +1019,7 @@ def test_eht_connect_invalid_link(dev, apdev, params):
 
         wpas = WpaSupplicant(global_iface='/tmp/wpas-wlan5')
         wpas.interface_add(wpas_iface)
+        check_sae_capab(wpas)
 
         ssid = "mld_ap"
         passphrase = 'qwertyuiop'
@@ -1048,6 +1062,7 @@ def test_eht_mld_link_removal(dev, apdev):
 
         wpas = WpaSupplicant(global_iface='/tmp/wpas-wlan5')
         wpas.interface_add(wpas_iface)
+        check_owe_capab(wpas)
 
         ssid = "mld_ap_owe_two_link"
         params = eht_mld_ap_wpa2_params(ssid, key_mgmt="OWE", mfp="2")
@@ -1098,6 +1113,7 @@ def test_eht_mld_bss_trans_mgmt_link_removal_imminent(dev, apdev):
 
         wpas = WpaSupplicant(global_iface='/tmp/wpas-wlan5')
         wpas.interface_add(wpas_iface)
+        check_owe_capab(wpas)
 
         ssid = "mld_ap_owe_two_link"
         params = eht_mld_ap_wpa2_params(ssid, key_mgmt="OWE", mfp="2")
@@ -1536,6 +1552,7 @@ def test_eht_mld_gas(dev, apdev):
 
         wpas = WpaSupplicant(global_iface='/tmp/wpas-wlan5')
         wpas.interface_add(wpas_iface)
+        check_owe_capab(wpas)
         wpas.scan_for_bss(bssid, freq="2462")
 
         ssid = "owe_two_link"
@@ -1605,6 +1622,7 @@ def _eht_mld_disconnect(dev, apdev, disassoc=True):
 
         wpas = WpaSupplicant(global_iface='/tmp/wpas-wlan5')
         wpas.interface_add(wpas_iface)
+        check_owe_capab(wpas)
 
         ssid = "mld_ap_owe_two_link"
         params = eht_mld_ap_wpa2_params(ssid, key_mgmt="OWE", mfp="2")
@@ -1659,6 +1677,7 @@ def test_eht_mld_non_pref_chan(dev, apdev):
 
         wpas = WpaSupplicant(global_iface='/tmp/wpas-wlan5')
         wpas.interface_add(wpas_iface)
+        check_owe_capab(wpas)
 
         # Start the first AP
         ssid = "mld_ap_one_link_mbo"
@@ -1746,6 +1765,7 @@ def test_eht_mld_rrm_beacon_req(dev, apdev):
 
         wpas = WpaSupplicant(global_iface='/tmp/wpas-wlan5')
         wpas.interface_add(wpas_iface)
+        check_owe_capab(wpas)
 
         # Start the first AP and connect
         ssid = "mld_ap_one_link_rrm1"
@@ -1905,6 +1925,7 @@ def test_eht_mlo_csa(dev, apdev):
 
             wpas = WpaSupplicant(global_iface='/tmp/wpas-wlan5')
             wpas.interface_add(wpas_iface)
+            check_sae_capab(wpas)
 
             ssid = "mld_ap"
             passphrase = 'qwertyuiop'
index 9c4cfa4be60b482ff9251c91663e467d6f32a7b3..4f93053e281106e96d3d55a011773b439db06246 100644 (file)
@@ -1653,6 +1653,7 @@ def he_verify_wifi_version(dev):
 
 def test_he_6ghz_reg(dev, apdev):
     """TX power control on 6 GHz"""
+    check_sae_capab(dev[0])
     try:
         ssid = "HE_6GHz_regulatory"
         freq = 5975
index 6cc6b83571306b43825f03d0c8ec7e0c34c8c75a..63d89f0676f89fa304a6da24a21f943147c365ba 100644 (file)
@@ -153,6 +153,7 @@ def test_he_ap_mbssid_open(dev, apdev, params):
 
 def test_he_ap_mbssid_same_security(dev, apdev, params):
     """HE AP MBSSID all SAE"""
+    check_sae_capab(dev[0])
     f, fname, ifname = mbssid_create_cfg_file(apdev, params)
 
     sae_params = {"wpa": "2", "wpa_passphrase": "12345678",
@@ -177,6 +178,7 @@ def test_he_ap_mbssid_same_security(dev, apdev, params):
 
 def test_he_ap_mbssid_mixed_security1(dev, apdev, params):
     """HE AP MBSSID with mixed security (STA SAE)"""
+    check_sae_capab(dev[0])
     f, fname, ifname = mbssid_create_cfg_file(apdev, params)
 
     psk_params = {"wpa": "2", "wpa_passphrase": "12345678",
@@ -212,6 +214,7 @@ def test_he_ap_mbssid_mixed_security1(dev, apdev, params):
 
 def test_he_ap_mbssid_mixed_security2(dev, apdev, params):
     """HE AP MBSSID with mixed security (STA open)"""
+    check_sae_capab(dev[0])
     f, fname, ifname = mbssid_create_cfg_file(apdev, params)
 
     psk_params = {"wpa": "2", "wpa_passphrase": "12345678",
@@ -243,6 +246,7 @@ def test_he_ap_mbssid_mixed_security2(dev, apdev, params):
 
 def test_he_ap_mbssid_mixed_security3(dev, apdev, params):
     """HE AP MBSSID with mixed security (WPA2-Personal + WPA3-Personal)"""
+    check_sae_capab(dev[0])
     f, fname, ifname = mbssid_create_cfg_file(apdev, params)
 
     psk_params = {"wpa": "2", "wpa_passphrase": "12345678",
@@ -273,6 +277,7 @@ def test_he_ap_mbssid_mixed_security3(dev, apdev, params):
 
 def test_he_ap_mbssid_mixed_security4(dev, apdev, params):
     """HE AP MBSSID with mixed security (WPA2-Personal + WPA3-Personal+beacon prot)"""
+    check_sae_capab(dev[0])
     f, fname, ifname = mbssid_create_cfg_file(apdev, params)
 
     psk_params = {"wpa": "2", "wpa_passphrase": "12345678",
@@ -321,6 +326,7 @@ def test_he_ap_mbssid_mixed_security4(dev, apdev, params):
 
 def test_he_ap_mbssid_single_ssid(dev, apdev, params):
     """HE AP MBSSID with mixed security and single SSID"""
+    check_sae_capab(dev[0])
     f, fname, ifname = mbssid_create_cfg_file(apdev, params)
 
     psk_params = {"wpa": "2", "wpa_passphrase": "12345678",
@@ -352,6 +358,7 @@ def test_he_ap_mbssid_single_ssid(dev, apdev, params):
 
 def test_he_ap_mbssid_single_ssid_tm(dev, apdev, params):
     """HE AP MBSSID with mixed security and single SSID and transition mode"""
+    check_sae_capab(dev[0])
     f, fname, ifname = mbssid_create_cfg_file(apdev, params)
 
     psk_params = {"wpa": "2", "wpa_passphrase": "12345678",
@@ -386,6 +393,7 @@ def test_he_ap_mbssid_single_ssid_tm(dev, apdev, params):
 
 def test_he_ap_ema(dev, apdev, params):
     """HE EMA AP"""
+    check_sae_capab(dev[0])
     f, fname, ifname = mbssid_create_cfg_file(apdev, params, 2)
 
     sae_params = {"wpa": "2", "wpa_passphrase": "12345678",
index bda2cda9bda56d39813641c17f797d81248085f8..b8e01c29f4828636049d043b8dfbf4eeced0c422 100644 (file)
@@ -137,6 +137,7 @@ def run_rsn_override_mld(dev, apdev, mixed, only_sta=False,
 
         wpas = WpaSupplicant(global_iface='/tmp/wpas-wlan5')
         wpas.interface_add(wpas_iface)
+        check_sae_capab(wpas)
 
         passphrase = 'qwertyuiop'
         ssid = "AP MLD RSN override"