autotests: Add an EAP-TTLS+MsCHAPV2 test
This also tests multiple agent requests for one network connection because the TTLS client private key is not in the config file and the MSCHAPV2 password is not in the config file.
This commit is contained in:
parent
25a9d2a71f
commit
baf965ed76
|
@ -0,0 +1,4 @@
|
||||||
|
# Phase 1 users
|
||||||
|
* TTLS
|
||||||
|
# Phase 2
|
||||||
|
"user" MSCHAPV2 "testpasswd" [2]
|
|
@ -0,0 +1,68 @@
|
||||||
|
#! /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
|
||||||
|
import testutil
|
||||||
|
|
||||||
|
class Test(unittest.TestCase):
|
||||||
|
|
||||||
|
def test_connection_success(self):
|
||||||
|
wd = IWD()
|
||||||
|
|
||||||
|
psk_agent = PSKAgent('abc', ('user', 'testpasswd'))
|
||||||
|
wd.register_psk_agent(psk_agent)
|
||||||
|
|
||||||
|
devices = wd.list_devices();
|
||||||
|
self.assertIsNotNone(devices)
|
||||||
|
device = devices[0]
|
||||||
|
|
||||||
|
condition = 'not obj.scanning'
|
||||||
|
wd.wait_for_object_condition(device, condition)
|
||||||
|
|
||||||
|
if not device.get_ordered_networks():
|
||||||
|
device.scan()
|
||||||
|
condition = 'obj.scanning'
|
||||||
|
wd.wait_for_object_condition(device, condition)
|
||||||
|
condition = 'not obj.scanning'
|
||||||
|
wd.wait_for_object_condition(device, condition)
|
||||||
|
|
||||||
|
ordered_networks = device.get_ordered_networks()
|
||||||
|
ordered_network = ordered_networks[0]
|
||||||
|
|
||||||
|
self.assertEqual(ordered_network.name, "ssidEAP-TTLS")
|
||||||
|
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)
|
||||||
|
|
||||||
|
testutil.test_iface_operstate()
|
||||||
|
testutil.test_ifaces_connected()
|
||||||
|
|
||||||
|
device.disconnect()
|
||||||
|
|
||||||
|
condition = 'not obj.connected'
|
||||||
|
wd.wait_for_object_condition(ordered_network.network_object, condition)
|
||||||
|
|
||||||
|
wd.unregister_psk_agent(psk_agent)
|
||||||
|
|
||||||
|
@classmethod
|
||||||
|
def setUpClass(cls):
|
||||||
|
IWD.copy_to_storage('ssidEAP-TTLS.8021x')
|
||||||
|
|
||||||
|
@classmethod
|
||||||
|
def tearDownClass(cls):
|
||||||
|
IWD.clear_storage()
|
||||||
|
|
||||||
|
if __name__ == '__main__':
|
||||||
|
unittest.main(exit=True)
|
|
@ -0,0 +1,6 @@
|
||||||
|
[SETUP]
|
||||||
|
num_radios=2
|
||||||
|
tmpfs_extra_stuff=../misc/certs
|
||||||
|
|
||||||
|
[HOSTAPD]
|
||||||
|
rad0=ssidEAP-TTLS.conf
|
|
@ -0,0 +1,8 @@
|
||||||
|
[Security]
|
||||||
|
EAP-Method=TTLS
|
||||||
|
EAP-Identity=abc@example.com
|
||||||
|
EAP-TTLS-CACert=/tmp/certs/cert-ca.pem
|
||||||
|
EAP-TTLS-ClientCert=/tmp/certs/cert-client.pem
|
||||||
|
EAP-TTLS-ClientKey=/tmp/certs/cert-client-key-v2-des-ede3.pem
|
||||||
|
EAP-TTLS-Phase2-Method=MSCHAPV2
|
||||||
|
EAP-TTLS-Phase2-Identity=user
|
|
@ -0,0 +1,12 @@
|
||||||
|
hw_mode=g
|
||||||
|
channel=1
|
||||||
|
ssid=ssidEAP-TTLS
|
||||||
|
|
||||||
|
wpa=3
|
||||||
|
wpa_key_mgmt=WPA-EAP
|
||||||
|
ieee8021x=1
|
||||||
|
eap_server=1
|
||||||
|
eap_user_file=/tmp/certs/eap-user-ttls-mschapv2.text
|
||||||
|
ca_cert=/tmp/certs/cert-ca.pem
|
||||||
|
server_cert=/tmp/certs/cert-server.pem
|
||||||
|
private_key=/tmp/certs/cert-server-key.pem
|
Loading…
Reference in New Issue