diff --git a/autotests/misc/secrets/eap-user-peap-v0.text b/autotests/misc/secrets/eap-user-peap-v0.text new file mode 100644 index 00000000..339373c3 --- /dev/null +++ b/autotests/misc/secrets/eap-user-peap-v0.text @@ -0,0 +1,4 @@ +# Phase 1 users +* PEAP [ver=0] +# Phase 2 +"secure@identity.com" MD5 "testpasswd" [2] diff --git a/autotests/misc/secrets/eap-user-peap-v1.text b/autotests/misc/secrets/eap-user-peap-v1.text new file mode 100644 index 00000000..9b349530 --- /dev/null +++ b/autotests/misc/secrets/eap-user-peap-v1.text @@ -0,0 +1,4 @@ +# Phase 1 users +* PEAP [ver=1] +# Phase 2 +"secure@identity.com" MD5 "testpasswd" [2] diff --git a/autotests/testEAP-PEAP/IWD-Frag/main.conf b/autotests/testEAP-PEAP/IWD-Frag/main.conf new file mode 100644 index 00000000..bdc86869 --- /dev/null +++ b/autotests/testEAP-PEAP/IWD-Frag/main.conf @@ -0,0 +1,2 @@ +[EAP] +mtu=100 diff --git a/autotests/testEAP-PEAP/hw.conf b/autotests/testEAP-PEAP/hw.conf new file mode 100644 index 00000000..e0377ae4 --- /dev/null +++ b/autotests/testEAP-PEAP/hw.conf @@ -0,0 +1,10 @@ +[SETUP] +num_radios=4 +start_iwd=0 +max_test_exec_interval_sec=60 +tmpfs_extra_stuff=../misc/certs:../misc/secrets:IWD-Frag + +[HOSTAPD] +rad0=ssidEAP-PEAPv1.conf +rad1=ssidEAP-PEAPv0.conf +rad2=ssidEAP-PEAP-frag.conf diff --git a/autotests/testEAP-PEAP/peap_frag_test.py b/autotests/testEAP-PEAP/peap_frag_test.py new file mode 100644 index 00000000..fff61f78 --- /dev/null +++ b/autotests/testEAP-PEAP/peap_frag_test.py @@ -0,0 +1,69 @@ +#!/usr/bin/python3 + +import unittest +import sys +import time + +sys.path.append('../util') +import iwd +from iwd import IWD +from iwd import NetworkType + +class Test(unittest.TestCase): + + def test_connection_success(self): + ssid_to_connect = 'ssidEAP-PEAP-frag' + + wd = IWD(True, '/tmp/IWD-Frag') + wd.wait(1) + + devices = wd.list_devices(); + + self.assertIsNotNone(devices) + device = devices[0] + + condition = 'not obj.scanning' + wd.wait_for_object_condition(device, condition) + + device.scan() + + condition = 'not obj.scanning' + wd.wait_for_object_condition(device, condition) + + ordered_networks = device.get_ordered_networks() + ordered_network = None + + for o_n in ordered_networks: + if o_n.name == ssid_to_connect: + ordered_network = o_n + break + + self.assertEqual(ordered_network.name, ssid_to_connect) + + self.assertEqual(ordered_network.type, NetworkType.eap) + + condition = 'not obj.connected' + wd.wait_for_object_condition(ordered_network.network_object, condition) + + ordered_network.network_object.connect() + + condition = 'obj.connected' + wd.wait_for_object_condition(ordered_network.network_object, condition) + + device.disconnect() + + condition = 'not obj.connected' + wd.wait_for_object_condition(ordered_network.network_object, condition) + + del wd + + @classmethod + def setUpClass(cls): + IWD.copy_to_storage('ssidEAP-PEAP-frag.8021x') + + @classmethod + def tearDownClass(cls): + IWD.clear_storage() + +if __name__ == '__main__': + unittest.main(exit=True) diff --git a/autotests/testEAP-PEAP/peap_v0_test.py b/autotests/testEAP-PEAP/peap_v0_test.py new file mode 100644 index 00000000..b3feb48a --- /dev/null +++ b/autotests/testEAP-PEAP/peap_v0_test.py @@ -0,0 +1,69 @@ +#!/usr/bin/python3 + +import unittest +import sys +import time + +sys.path.append('../util') +import iwd +from iwd import IWD +from iwd import NetworkType + +class Test(unittest.TestCase): + + def test_connection_success(self): + ssid_to_connect = 'ssidEAP-PEAPv0' + + wd = IWD(True) + wd.wait(1) + + devices = wd.list_devices(); + + self.assertIsNotNone(devices) + device = devices[0] + + condition = 'not obj.scanning' + wd.wait_for_object_condition(device, condition) + + device.scan() + + condition = 'not obj.scanning' + wd.wait_for_object_condition(device, condition) + + ordered_networks = device.get_ordered_networks() + ordered_network = None + + for o_n in ordered_networks: + if o_n.name == ssid_to_connect: + ordered_network = o_n + break + + self.assertEqual(ordered_network.name, ssid_to_connect) + + self.assertEqual(ordered_network.type, NetworkType.eap) + + condition = 'not obj.connected' + wd.wait_for_object_condition(ordered_network.network_object, condition) + + ordered_network.network_object.connect() + + condition = 'obj.connected' + wd.wait_for_object_condition(ordered_network.network_object, condition) + + device.disconnect() + + condition = 'not obj.connected' + wd.wait_for_object_condition(ordered_network.network_object, condition) + + del wd + + @classmethod + def setUpClass(cls): + IWD.copy_to_storage('ssidEAP-PEAPv0.8021x') + + @classmethod + def tearDownClass(cls): + IWD.clear_storage() + +if __name__ == '__main__': + unittest.main(exit=True) diff --git a/autotests/testEAP-PEAP/peap_v1_test.py b/autotests/testEAP-PEAP/peap_v1_test.py new file mode 100644 index 00000000..842b085f --- /dev/null +++ b/autotests/testEAP-PEAP/peap_v1_test.py @@ -0,0 +1,69 @@ +#!/usr/bin/python3 + +import unittest +import sys +import time + +sys.path.append('../util') +import iwd +from iwd import IWD +from iwd import NetworkType + +class Test(unittest.TestCase): + + def test_connection_success(self): + ssid_to_connect = 'ssidEAP-PEAPv1' + + wd = IWD(True) + wd.wait(1) + + devices = wd.list_devices(); + + self.assertIsNotNone(devices) + device = devices[0] + + condition = 'not obj.scanning' + wd.wait_for_object_condition(device, condition) + + device.scan() + + condition = 'not obj.scanning' + wd.wait_for_object_condition(device, condition) + + ordered_networks = device.get_ordered_networks() + ordered_network = None + + for o_n in ordered_networks: + if o_n.name == ssid_to_connect: + ordered_network = o_n + break + + self.assertEqual(ordered_network.name, ssid_to_connect) + + self.assertEqual(ordered_network.type, NetworkType.eap) + + condition = 'not obj.connected' + wd.wait_for_object_condition(ordered_network.network_object, condition) + + ordered_network.network_object.connect() + + condition = 'obj.connected' + wd.wait_for_object_condition(ordered_network.network_object, condition) + + device.disconnect() + + condition = 'not obj.connected' + wd.wait_for_object_condition(ordered_network.network_object, condition) + + del wd + + @classmethod + def setUpClass(cls): + IWD.copy_to_storage('ssidEAP-PEAPv1.8021x') + + @classmethod + def tearDownClass(cls): + IWD.clear_storage() + +if __name__ == '__main__': + unittest.main(exit=True) diff --git a/autotests/testEAP-PEAP/ssidEAP-PEAP-frag.8021x b/autotests/testEAP-PEAP/ssidEAP-PEAP-frag.8021x new file mode 100644 index 00000000..9a0fa4af --- /dev/null +++ b/autotests/testEAP-PEAP/ssidEAP-PEAP-frag.8021x @@ -0,0 +1,12 @@ +[Security] +EAP-Method=PEAP +EAP-Identity=open@identity.com +EAP-PEAP-CACert=/tmp/certs/cert-ca.pem +EAP-PEAP-ClientCert=/tmp/certs/cert-client.pem +EAP-PEAP-ClientKey=/tmp/certs/cert-client-key-pkcs8.pem +EAP-PEAP-Phase2-Method=MD5 +EAP-PEAP-Phase2-Identity=secure@identity.com +EAP-PEAP-Phase2-MD5-Secret=testpasswd + +[Settings] +Autoconnect=false diff --git a/autotests/testEAP-PEAP/ssidEAP-PEAP-frag.conf b/autotests/testEAP-PEAP/ssidEAP-PEAP-frag.conf new file mode 100644 index 00000000..28eb36f0 --- /dev/null +++ b/autotests/testEAP-PEAP/ssidEAP-PEAP-frag.conf @@ -0,0 +1,14 @@ +hw_mode=g +channel=1 +ssid=ssidEAP-PEAP-frag + +fragment_size=256 + +wpa=3 +wpa_key_mgmt=WPA-EAP +ieee8021x=1 +eap_server=1 +eap_user_file=/tmp/secrets/eap-user-peap-v1.text +ca_cert=/tmp/certs/cert-ca.pem +server_cert=/tmp/certs/cert-server.pem +private_key=/tmp/certs/cert-server-key.pem diff --git a/autotests/testEAP-PEAP/ssidEAP-PEAPv0.8021x b/autotests/testEAP-PEAP/ssidEAP-PEAPv0.8021x new file mode 100644 index 00000000..9a0fa4af --- /dev/null +++ b/autotests/testEAP-PEAP/ssidEAP-PEAPv0.8021x @@ -0,0 +1,12 @@ +[Security] +EAP-Method=PEAP +EAP-Identity=open@identity.com +EAP-PEAP-CACert=/tmp/certs/cert-ca.pem +EAP-PEAP-ClientCert=/tmp/certs/cert-client.pem +EAP-PEAP-ClientKey=/tmp/certs/cert-client-key-pkcs8.pem +EAP-PEAP-Phase2-Method=MD5 +EAP-PEAP-Phase2-Identity=secure@identity.com +EAP-PEAP-Phase2-MD5-Secret=testpasswd + +[Settings] +Autoconnect=false diff --git a/autotests/testEAP-PEAP/ssidEAP-PEAPv0.conf b/autotests/testEAP-PEAP/ssidEAP-PEAPv0.conf new file mode 100644 index 00000000..5b63e047 --- /dev/null +++ b/autotests/testEAP-PEAP/ssidEAP-PEAPv0.conf @@ -0,0 +1,12 @@ +hw_mode=g +channel=1 +ssid=ssidEAP-PEAPv0 + +wpa=3 +wpa_key_mgmt=WPA-EAP +ieee8021x=1 +eap_server=1 +eap_user_file=/tmp/secrets/eap-user-peap-v0.text +ca_cert=/tmp/certs/cert-ca.pem +server_cert=/tmp/certs/cert-server.pem +private_key=/tmp/certs/cert-server-key.pem diff --git a/autotests/testEAP-PEAP/ssidEAP-PEAPv1.8021x b/autotests/testEAP-PEAP/ssidEAP-PEAPv1.8021x new file mode 100644 index 00000000..9a0fa4af --- /dev/null +++ b/autotests/testEAP-PEAP/ssidEAP-PEAPv1.8021x @@ -0,0 +1,12 @@ +[Security] +EAP-Method=PEAP +EAP-Identity=open@identity.com +EAP-PEAP-CACert=/tmp/certs/cert-ca.pem +EAP-PEAP-ClientCert=/tmp/certs/cert-client.pem +EAP-PEAP-ClientKey=/tmp/certs/cert-client-key-pkcs8.pem +EAP-PEAP-Phase2-Method=MD5 +EAP-PEAP-Phase2-Identity=secure@identity.com +EAP-PEAP-Phase2-MD5-Secret=testpasswd + +[Settings] +Autoconnect=false diff --git a/autotests/testEAP-PEAP/ssidEAP-PEAPv1.conf b/autotests/testEAP-PEAP/ssidEAP-PEAPv1.conf new file mode 100644 index 00000000..1c8b2d9b --- /dev/null +++ b/autotests/testEAP-PEAP/ssidEAP-PEAPv1.conf @@ -0,0 +1,12 @@ +hw_mode=g +channel=1 +ssid=ssidEAP-PEAPv1 + +wpa=3 +wpa_key_mgmt=WPA-EAP +ieee8021x=1 +eap_server=1 +eap_user_file=/tmp/secrets/eap-user-peap-v1.text +ca_cert=/tmp/certs/cert-ca.pem +server_cert=/tmp/certs/cert-server.pem +private_key=/tmp/certs/cert-server-key.pem