mirror of
https://git.kernel.org/pub/scm/network/wireless/iwd.git
synced 2024-12-24 23:42:42 +01:00
6d76b3e21d
Break up the SAE tests into two parts: testSAE and testSAE-AntiClogging testSAE is simplified to only use two radios and a single phy managed by hostapd. hostapd configurations are changed via the new 'set_value' method added to hostapd utils. This allows forcing hostapd to use a particular sae group set, or force hostapd to use SAE H2E/Hunting and Pecking Loop for key derivation. A separate test for IKE Group 20 is no longer required and is folded into connection_test.py testSAE-AntiClogging is added with an environment for 5 radios instead of 7, again with hostapd running on a single phy. 'sae_pwe' is used to force hostapd to use SAE H2E or Hunting and Pecking for key derivation. Both Anti-Clogging protocol variants are thus tested. main.conf is added to both directories to force scan randomization off. This seems to be required for hostapd to work properly on hwsim.
65 lines
1.7 KiB
Python
65 lines
1.7 KiB
Python
#!/usr/bin/python3
|
|
|
|
import unittest
|
|
import sys
|
|
|
|
sys.path.append('../util')
|
|
import iwd
|
|
from iwd import IWD
|
|
from iwd import PSKAgent
|
|
from iwd import NetworkType
|
|
from hostapd import HostapdCLI
|
|
|
|
class Test(unittest.TestCase):
|
|
|
|
def validate_connection(self, wd):
|
|
|
|
devices = wd.list_devices(1)
|
|
self.assertIsNotNone(devices)
|
|
device = devices[0]
|
|
|
|
condition = 'obj.state == DeviceState.connected'
|
|
wd.wait_for_object_condition(device, condition)
|
|
|
|
condition = 'obj.connected_network is not None'
|
|
wd.wait_for_object_condition(device, condition)
|
|
|
|
ordered_network = device.get_ordered_network('ssidSAE')
|
|
|
|
self.assertTrue(ordered_network.network_object.connected)
|
|
|
|
device.disconnect()
|
|
|
|
condition = 'not obj.connected'
|
|
wd.wait_for_object_condition(ordered_network.network_object, condition)
|
|
|
|
def test_SAE(self):
|
|
self.hostapd.set_value('sae_pwe', '0');
|
|
self.hostapd.set_value('sae_groups', '19');
|
|
self.hostapd.reload()
|
|
self.hostapd.wait_for_event("AP-ENABLED")
|
|
|
|
wd = IWD(True)
|
|
self.validate_connection(wd)
|
|
|
|
def test_SAE_H2E(self):
|
|
self.hostapd.set_value('sae_pwe', '1');
|
|
self.hostapd.set_value('sae_groups', '20');
|
|
self.hostapd.reload()
|
|
self.hostapd.wait_for_event("AP-ENABLED")
|
|
wd = IWD(True)
|
|
self.validate_connection(wd)
|
|
|
|
@classmethod
|
|
def setUpClass(cls):
|
|
cls.hostapd = HostapdCLI(config='ssidSAE.conf')
|
|
IWD.copy_to_storage('ssidSAE.psk')
|
|
pass
|
|
|
|
@classmethod
|
|
def tearDownClass(cls):
|
|
IWD.clear_storage()
|
|
|
|
if __name__ == '__main__':
|
|
unittest.main(exit=True)
|