@@ -12,8 +12,7 @@ from hostapd import HostapdCLI
class Test(unittest.TestCase):
- def validate_connection(self, wd):
-
+ def validate_connection(self, wd, ssid):
devices = wd.list_devices(1)
self.assertIsNotNone(devices)
device = devices[0]
@@ -25,7 +24,7 @@ class Test(unittest.TestCase):
condition = 'obj.connected_network is not None'
wd.wait_for_object_condition(device, condition)
- ordered_network = device.get_ordered_network('ssidSAE')
+ ordered_network = device.get_ordered_network(ssid)
self.assertTrue(ordered_network.network_object.connected)
@@ -35,29 +34,27 @@ class Test(unittest.TestCase):
wd.wait_for_object_condition(ordered_network.network_object, condition)
def test_SAE(self):
- IWD.copy_to_storage("ssidSAE.psk.default", name="ssidSAE.psk")
+ IWD.copy_to_storage("profiles/ssidSAE.psk.default", name="ssidSAE.psk")
self.hostapd.wait_for_event("AP-ENABLED")
wd = IWD(True)
- self.validate_connection(wd)
+ self.validate_connection(wd, "ssidSAE")
def test_SAE_H2E(self):
- IWD.copy_to_storage("ssidSAE.psk.default", name="ssidSAE.psk")
- self.hostapd.set_value('sae_pwe', '1')
- self.hostapd.set_value('sae_groups', '20')
- self.hostapd.reload()
- self.hostapd.wait_for_event("AP-ENABLED")
+ IWD.copy_to_storage("profiles/ssidSAE.psk.default", name="ssidSAE-H2E.psk")
+ self.hostapd_h2e.set_value('sae_groups', '20')
+ self.hostapd_h2e.reload()
+ self.hostapd_h2e.wait_for_event("AP-ENABLED")
wd = IWD(True)
- self.validate_connection(wd)
+ self.validate_connection(wd, "ssidSAE-H2E")
def test_SAE_H2E_password_identifier(self):
- IWD.copy_to_storage("ssidSAE.psk.identifier", name="ssidSAE.psk")
- self.hostapd.set_value('sae_pwe', '1')
- self.hostapd.set_value('sae_groups', '20')
- self.hostapd.reload()
- self.hostapd.wait_for_event("AP-ENABLED")
+ IWD.copy_to_storage("profiles/ssidSAE.psk.identifier", name="ssidSAE-H2E.psk")
+ self.hostapd_h2e.set_value('sae_groups', '20')
+ self.hostapd_h2e.reload()
+ self.hostapd_h2e.wait_for_event("AP-ENABLED")
wd = IWD(True)
- self.validate_connection(wd)
+ self.validate_connection(wd, "ssidSAE-H2E")
def setUp(self):
self.hostapd.default()
@@ -68,6 +65,7 @@ class Test(unittest.TestCase):
@classmethod
def setUpClass(cls):
cls.hostapd = HostapdCLI(config='ssidSAE.conf')
+ cls.hostapd_h2e = HostapdCLI(config='ssidSAE-H2E.conf')
if __name__ == '__main__':
unittest.main(exit=True)
@@ -13,7 +13,7 @@ import testutil
class Test(unittest.TestCase):
- def validate_connection(self, wd):
+ def validate_connection(self, wd, ssid, hostapd, expected_group):
psk_agent = PSKAgent("secret123")
wd.register_psk_agent(psk_agent)
@@ -23,11 +23,11 @@ class Test(unittest.TestCase):
device.disconnect()
- network = device.get_ordered_network('ssidSAE', full_scan=True)
+ network = device.get_ordered_network(ssid, full_scan=True)
self.assertEqual(network.type, NetworkType.psk)
- network.network_object.connect()
+ network.network_object.connect(wait=False)
condition = 'obj.state == DeviceState.connected'
wd.wait_for_object_condition(device, condition)
@@ -35,7 +35,11 @@ class Test(unittest.TestCase):
wd.wait(2)
testutil.test_iface_operstate(intf=device.name)
- testutil.test_ifaces_connected(if0=device.name, if1=self.hostapd.ifname)
+ testutil.test_ifaces_connected(if0=device.name, if1=hostapd.ifname)
+
+ sta_status = hostapd.sta_status(device.address)
+
+ self.assertEqual(int(sta_status["sae_group"]), expected_group)
device.disconnect()
@@ -46,37 +50,31 @@ class Test(unittest.TestCase):
def test_SAE(self):
self.hostapd.wait_for_event("AP-ENABLED")
- self.validate_connection(self.wd)
+ self.validate_connection(self.wd, "ssidSAE", self.hostapd, 19)
def test_SAE_force_group_19(self):
# Vendor data from APs which require group 19 be used first
- # TODO: (for all tests) verify the expected group was used
- self.hostapd.set_value('vendor_elements', 'dd0cf4f5e8050500000000000000')
self.hostapd.reload()
self.hostapd.wait_for_event("AP-ENABLED")
- self.validate_connection(self.wd)
+ self.validate_connection(self.wd, "ssidSAE-default-group", self.hostapd_defgroup, 19)
def test_SAE_Group20(self):
self.hostapd.set_value('sae_groups', '20')
- self.hostapd.set_value('vendor_elements', '')
self.hostapd.reload()
self.hostapd.wait_for_event("AP-ENABLED")
- self.validate_connection(self.wd)
+ self.validate_connection(self.wd, "ssidSAE", self.hostapd, 20)
def test_SAE_H2E(self):
- self.hostapd.set_value('sae_pwe', '1')
- self.hostapd.set_value('vendor_elements', '')
- self.hostapd.reload()
- self.hostapd.wait_for_event("AP-ENABLED")
- self.validate_connection(self.wd)
+ self.hostapd_h2e.set_value('sae_groups', '19')
+ self.hostapd_h2e.reload()
+ self.hostapd_h2e.wait_for_event("AP-ENABLED")
+ self.validate_connection(self.wd, "ssidSAE-H2E", self.hostapd_h2e, 19)
def test_SAE_H2E_Group20(self):
- self.hostapd.set_value('sae_pwe', '1')
- self.hostapd.set_value('sae_groups', '20')
- self.hostapd.set_value('vendor_elements', '')
- self.hostapd.reload()
- self.hostapd.wait_for_event("AP-ENABLED")
- self.validate_connection(self.wd)
+ self.hostapd_h2e.set_value('sae_groups', '20')
+ self.hostapd_h2e.reload()
+ self.hostapd_h2e.wait_for_event("AP-ENABLED")
+ self.validate_connection(self.wd, "ssidSAE-H2E", self.hostapd_h2e, 20)
def setUp(self):
self.hostapd.default()
@@ -89,6 +87,8 @@ class Test(unittest.TestCase):
@classmethod
def setUpClass(cls):
cls.hostapd = HostapdCLI(config='ssidSAE.conf')
+ cls.hostapd_h2e = HostapdCLI(config='ssidSAE-H2E.conf')
+ cls.hostapd_defgroup = HostapdCLI(config='ssidSAE-default-group.conf')
@classmethod
def tearDownClass(cls):
@@ -1,7 +1,8 @@
[SETUP]
-num_radios=2
+num_radios=3
start_iwd=0
hwsim_medium=yes
[HOSTAPD]
rad0=ssidSAE.conf
+rad1=ssidSAE-H2E.conf
similarity index 100%
rename from autotests/testSAE/ssidSAE.psk.default
rename to autotests/testSAE/profiles/ssidSAE-H2E.psk.default
new file mode 100644
@@ -0,0 +1,2 @@
+[Security]
+Passphrase=secret123
similarity index 100%
rename from autotests/testSAE/ssidSAE.psk.identifier
rename to autotests/testSAE/profiles/ssidSAE.psk.identifier
new file mode 100644
@@ -0,0 +1,12 @@
+hw_mode=g
+channel=1
+ssid=ssidSAE-H2E
+
+wpa=2
+wpa_key_mgmt=SAE
+wpa_pairwise=CCMP
+sae_password=secret123
+sae_password=withidentifier|id=myidentifier
+sae_groups=19
+ieee80211w=2
+sae_pwe=1
@@ -6,7 +6,6 @@ wpa=2
wpa_key_mgmt=SAE
wpa_pairwise=CCMP
sae_password=secret123
-sae_password=withidentifier|id=myidentifier
sae_groups=19
ieee80211w=2
sae_pwe=0