from hwsim import HWSimRadio
import hwsim_utils
from tshark import run_tshark
-from utils import HwsimSkip, fail_test, alloc_fail, wait_fail_trigger
+from utils import *
from test_ap_acs import wait_acs
def test_owe(dev, apdev):
"""Opportunistic Wireless Encryption"""
- if "OWE" not in dev[0].get_capability("key_mgmt"):
- raise HwsimSkip("OWE not supported")
+ check_owe_capab(dev[0])
params = {"ssid": "owe",
"wpa": "2",
"ieee80211w": "2",
def test_owe_groups(dev, apdev):
"""Opportunistic Wireless Encryption - DH groups"""
- if "OWE" not in dev[0].get_capability("key_mgmt"):
- raise HwsimSkip("OWE not supported")
+ check_owe_capab(dev[0])
params = {"ssid": "owe",
"wpa": "2",
"wpa_key_mgmt": "OWE",
wpas.set("reassoc_same_bss_optim", "0")
def run_owe_pmksa_caching(dev, apdev):
- if "OWE" not in dev[0].get_capability("key_mgmt"):
- raise HwsimSkip("OWE not supported")
+ check_owe_capab(dev[0])
params = {"ssid": "owe",
"wpa": "2",
"wpa_key_mgmt": "OWE",
def test_owe_and_psk(dev, apdev):
"""Opportunistic Wireless Encryption and WPA2-PSK enabled"""
- if "OWE" not in dev[0].get_capability("key_mgmt"):
- raise HwsimSkip("OWE not supported")
+ check_owe_capab(dev[0])
params = {"ssid": "owe+psk",
"wpa": "2",
"wpa_key_mgmt": "OWE WPA-PSK",
def run_owe_transition_mode(dev, apdev, adv_bssid0=None, adv_bssid1=None,
bss_limit=False):
- if "OWE" not in dev[0].get_capability("key_mgmt"):
- raise HwsimSkip("OWE not supported")
+ check_owe_capab(dev[0])
dev[0].flush_scan_cache()
adv_bssid = adv_bssid0 if adv_bssid0 else apdev[1]['bssid']
params = {"ssid": "owe-random",
def test_owe_transition_mode_ifname(dev, apdev):
"""Opportunistic Wireless Encryption transition mode (ifname)"""
- if "OWE" not in dev[0].get_capability("key_mgmt"):
- raise HwsimSkip("OWE not supported")
+ check_owe_capab(dev[0])
dev[0].flush_scan_cache()
params = {"ssid": "owe-random",
"wpa": "2",
run_owe_transition_mode_ifname_acs(dev, apdev, wait_first=True)
def run_owe_transition_mode_ifname_acs(dev, apdev, wait_first):
- if "OWE" not in dev[0].get_capability("key_mgmt"):
- raise HwsimSkip("OWE not supported")
+ check_owe_capab(dev[0])
dev[0].flush_scan_cache()
params = {"ssid": "owe-random",
"channel": "0",
def test_owe_transition_mode_multi_assoc(dev, apdev):
"""Opportunistic Wireless Encryption transition mode and multiple associations"""
- if "OWE" not in dev[0].get_capability("key_mgmt"):
- raise HwsimSkip("OWE not supported")
+ check_owe_capab(dev[0])
dev[0].flush_scan_cache()
params = {"ssid": "owe-random",
"wpa": "2",
def test_owe_transition_mode_open_only_ap(dev, apdev):
"""Opportunistic Wireless Encryption transition mode connect to open-only AP"""
- if "OWE" not in dev[0].get_capability("key_mgmt"):
- raise HwsimSkip("OWE not supported")
+ check_owe_capab(dev[0])
dev[0].flush_scan_cache()
params = {"ssid": "owe-test-open"}
hapd = hostapd.add_ap(apdev[0], params)
def test_owe_only_sta(dev, apdev):
"""Opportunistic Wireless Encryption transition mode disabled on STA"""
- if "OWE" not in dev[0].get_capability("key_mgmt"):
- raise HwsimSkip("OWE not supported")
+ check_owe_capab(dev[0])
dev[0].flush_scan_cache()
params = {"ssid": "owe-test-open"}
hapd = hostapd.add_ap(apdev[0], params)
def test_owe_only_sta_tm_ap(dev, apdev):
"""Opportunistic Wireless Encryption transition mode disabled on STA and AP using transition mode"""
- if "OWE" not in dev[0].get_capability("key_mgmt"):
- raise HwsimSkip("OWE not supported")
+ check_owe_capab(dev[0])
dev[0].flush_scan_cache()
adv_bssid = apdev[1]['bssid']
def test_owe_transition_mode_open_multiple_scans(dev, apdev):
"""Opportunistic Wireless Encryption transition mode and need for multiple scans"""
- if "OWE" not in dev[0].get_capability("key_mgmt"):
- raise HwsimSkip("OWE not supported")
+ check_owe_capab(dev[0])
dev[0].flush_scan_cache()
params = {"ssid": "owe-test",
"owe_transition_bssid": apdev[0]['bssid'],
dev[0].request("SCAN_INTERVAL 5")
def run_owe_transition_mode_multi_bss(dev, apdev):
- if "OWE" not in dev[0].get_capability("key_mgmt"):
- raise HwsimSkip("OWE not supported")
+ check_owe_capab(dev[0])
ifname1 = apdev[0]['ifname']
ifname2 = apdev[0]['ifname'] + '-2'
hapd1 = hostapd.add_bss(apdev[0], ifname1, 'owe-bss-1.conf')
def test_owe_transition_mode_rsne_mismatch(dev, apdev):
"""Opportunistic Wireless Encryption transition mode and RSNE mismatch"""
- if "OWE" not in dev[0].get_capability("key_mgmt"):
- raise HwsimSkip("OWE not supported")
+ check_owe_capab(dev[0])
dev[0].flush_scan_cache()
params = {"ssid": "owe-random",
"wpa": "2",
wpas.request("VENDOR_ELEM_REMOVE 13 *")
def run_owe_unsupported_group(dev, apdev):
- if "OWE" not in dev[0].get_capability("key_mgmt"):
- raise HwsimSkip("OWE not supported")
+ check_owe_capab(dev[0])
# Override OWE Dh Parameters element with a payload that uses invalid group
# 0 (and actual group 19 data) to make the AP reject this with the specific
# status code 77.
def test_owe_limited_group_set(dev, apdev):
"""Opportunistic Wireless Encryption and limited group set"""
- if "OWE" not in dev[0].get_capability("key_mgmt"):
- raise HwsimSkip("OWE not supported")
+ check_owe_capab(dev[0])
params = {"ssid": "owe",
"wpa": "2",
"wpa_key_mgmt": "OWE",
def test_owe_limited_group_set_pmf(dev, apdev, params):
"""Opportunistic Wireless Encryption and limited group set (PMF)"""
- if "OWE" not in dev[0].get_capability("key_mgmt"):
- raise HwsimSkip("OWE not supported")
+ check_owe_capab(dev[0])
pcapng = os.path.join(params['logdir'], "hwsim0.pcapng")
params = {"ssid": "owe",
run_owe_group_negotiation(wpas, apdev)
def run_owe_group_negotiation(dev, apdev):
- if "OWE" not in dev.get_capability("key_mgmt"):
- raise HwsimSkip("OWE not supported")
+ check_owe_capab(dev)
params = {"ssid": "owe",
"wpa": "2",
"wpa_key_mgmt": "OWE",
def test_owe_assoc_reject(dev, apdev):
"""Opportunistic Wireless Encryption association rejection handling"""
- if "OWE" not in dev[0].get_capability("key_mgmt"):
- raise HwsimSkip("OWE not supported")
+ check_owe_capab(dev[0])
params = {"ssid": "owe",
"require_ht": "1",
"wpa": "2",
def test_owe_local_errors(dev, apdev):
"""Opportunistic Wireless Encryption - local errors on supplicant"""
- if "OWE" not in dev[0].get_capability("key_mgmt"):
- raise HwsimSkip("OWE not supported")
+ check_owe_capab(dev[0])
params = {"ssid": "owe",
"wpa": "2",
"ieee80211w": "2",
def test_owe_invalid_assoc_resp(dev, apdev):
"""Opportunistic Wireless Encryption - invalid Association Response frame"""
- if "OWE" not in dev[0].get_capability("key_mgmt"):
- raise HwsimSkip("OWE not supported")
+ check_owe_capab(dev[0])
params = {"ssid": "owe",
"wpa": "2",
"ieee80211w": "2",
def test_owe_double_assoc(dev, apdev):
"""Opportunistic Wireless Encryption - duplicated association attempt"""
- if "OWE" not in dev[0].get_capability("key_mgmt"):
- raise HwsimSkip("OWE not supported")
+ check_owe_capab(dev[0])
params = {"ssid": "owe",
"wpa": "2",
"ieee80211w": "2",
dev[0].wait_connected()
def start_owe(dev, apdev, workaround=0):
- if "OWE" not in dev[0].get_capability("key_mgmt"):
- raise HwsimSkip("OWE not supported")
+ check_owe_capab(dev[0])
params = {"ssid": "owe",
"wpa": "2",
"ieee80211w": "2",
def test_owe_transition_mode_disable(dev, apdev):
"""Opportunistic Wireless Encryption transition mode disable"""
- if "OWE" not in dev[0].get_capability("key_mgmt"):
- raise HwsimSkip("OWE not supported")
+ check_owe_capab(dev[0])
dev[0].flush_scan_cache()
params = {"ssid": "owe-random",
"wpa": "2",
def test_owe_transition_mode_roam(dev, apdev):
"""Opportunistic Wireless Encryption transition mode roaming"""
- if "OWE" not in dev[0].get_capability("key_mgmt"):
- raise HwsimSkip("OWE not supported")
+ check_owe_capab(dev[0])
dev[0].flush_scan_cache()
with HWSimRadio() as (radio, iface):
def test_owe_sa_query(dev, apdev):
"""Opportunistic Wireless Encryption - SA Query"""
- if "OWE" not in dev[0].get_capability("key_mgmt"):
- raise HwsimSkip("OWE not supported")
+ check_owe_capab(dev[0])
params = {"ssid": "owe",
"wpa": "2",
"ieee80211w": "2",
def test_sigma_dut_owe(dev, apdev):
"""sigma_dut controlled OWE station"""
- if "OWE" not in dev[0].get_capability("key_mgmt"):
- raise HwsimSkip("OWE not supported")
+ check_owe_capab(dev[0])
ifname = dev[0].ifname
with SigmaDut(ifname) as dut:
def test_sigma_dut_owe_ptk_workaround(dev, apdev):
"""sigma_dut controlled OWE station with PTK workaround"""
- if "OWE" not in dev[0].get_capability("key_mgmt"):
- raise HwsimSkip("OWE not supported")
+ check_owe_capab(dev[0])
params = {"ssid": "owe",
"wpa": "2",
"""sigma_dut controlled AP with OWE"""
logdir = os.path.join(params['logdir'],
"sigma_dut_ap_owe.sigma-hostapd")
- if "OWE" not in dev[0].get_capability("key_mgmt"):
- raise HwsimSkip("OWE not supported")
+ check_owe_capab(dev[0])
with HWSimRadio() as (radio, iface), \
SigmaDut(iface, hostapd_logdir=logdir) as dut:
dut.cmd_check("ap_reset_default,NAME,AP,Program,WPA3")
def test_sigma_dut_ap_owe_ecgroupid(dev, apdev, params):
"""sigma_dut controlled AP with OWE and ECGroupID"""
- if "OWE" not in dev[0].get_capability("key_mgmt"):
- raise HwsimSkip("OWE not supported")
+ check_owe_capab(dev[0])
logdir = params['prefix'] + ".sigma-hostapd"
with HWSimRadio() as (radio, iface), \
SigmaDut(iface, hostapd_logdir=logdir) as dut:
def test_sigma_dut_ap_owe_ptk_workaround(dev, apdev, params):
"""sigma_dut controlled AP with OWE PTK workaround"""
- if "OWE" not in dev[0].get_capability("key_mgmt"):
- raise HwsimSkip("OWE not supported")
+ check_owe_capab(dev[0])
logdir = params['prefix'] + ".sigma-hostapd"
with HWSimRadio() as (radio, iface), \
SigmaDut(iface, owe_ptk_workaround=True, hostapd_logdir=logdir) as dut:
def test_sigma_dut_ap_owe_transition_mode(dev, apdev, params):
"""sigma_dut controlled AP with OWE and transition mode"""
- if "OWE" not in dev[0].get_capability("key_mgmt"):
- raise HwsimSkip("OWE not supported")
+ check_owe_capab(dev[0])
logdir = os.path.join(params['logdir'],
"sigma_dut_ap_owe_transition_mode.sigma-hostapd")
with HWSimRadio() as (radio, iface), \
def test_sigma_dut_ap_owe_transition_mode_2(dev, apdev, params):
"""sigma_dut controlled AP with OWE and transition mode (2)"""
- if "OWE" not in dev[0].get_capability("key_mgmt"):
- raise HwsimSkip("OWE not supported")
+ check_owe_capab(dev[0])
logdir = os.path.join(params['logdir'],
"sigma_dut_ap_owe_transition_mode_2.sigma-hostapd")
with HWSimRadio() as (radio, iface), \