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:
Andrew Zaborowski 2018-04-26 11:29:28 +02:00 committed by Denis Kenzior
parent 25a9d2a71f
commit baf965ed76
5 changed files with 98 additions and 0 deletions

View File

@ -0,0 +1,4 @@
# Phase 1 users
* TTLS
# Phase 2
"user" MSCHAPV2 "testpasswd" [2]

View File

@ -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)

View File

@ -0,0 +1,6 @@
[SETUP]
num_radios=2
tmpfs_extra_stuff=../misc/certs
[HOSTAPD]
rad0=ssidEAP-TTLS.conf

View File

@ -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

View File

@ -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