tests: EAP-TNC fragmentation
[mech_eap.git] / tests / hwsim / test_tnc.py
1 # -*- coding: utf-8 -*-
2 # TNC tests
3 # Copyright (c) 2014, Jouni Malinen <j@w1.fi>
4 #
5 # This software may be distributed under the terms of the BSD license.
6 # See README for more details.
7
8 import os.path
9
10 import hostapd
11 from utils import HwsimSkip
12 from test_ap_eap import int_eap_server_params, check_eap_capa
13
14 def test_tnc_peap_soh(dev, apdev):
15     """TNC PEAP-SoH"""
16     params = int_eap_server_params()
17     params["tnc"] = "1"
18     hostapd.add_ap(apdev[0]['ifname'], params)
19
20     dev[0].connect("test-wpa2-eap", key_mgmt="WPA-EAP",
21                    eap="PEAP", identity="user", password="password",
22                    ca_cert="auth_serv/ca.pem",
23                    phase1="peapver=0 tnc=soh cryptobinding=0",
24                    phase2="auth=MSCHAPV2",
25                    wait_connect=False)
26     dev[0].wait_connected(timeout=10)
27
28     dev[1].connect("test-wpa2-eap", key_mgmt="WPA-EAP",
29                    eap="PEAP", identity="user", password="password",
30                    ca_cert="auth_serv/ca.pem",
31                    phase1="peapver=0 tnc=soh1 cryptobinding=1",
32                    phase2="auth=MSCHAPV2",
33                    wait_connect=False)
34     dev[1].wait_connected(timeout=10)
35
36     dev[2].connect("test-wpa2-eap", key_mgmt="WPA-EAP",
37                    eap="PEAP", identity="user", password="password",
38                    ca_cert="auth_serv/ca.pem",
39                    phase1="peapver=0 tnc=soh2 cryptobinding=2",
40                    phase2="auth=MSCHAPV2",
41                    wait_connect=False)
42     dev[2].wait_connected(timeout=10)
43
44 def test_tnc_ttls(dev, apdev):
45     """TNC TTLS"""
46     params = int_eap_server_params()
47     params["tnc"] = "1"
48     hostapd.add_ap(apdev[0]['ifname'], params)
49
50     if not os.path.exists("tnc/libhostap_imc.so"):
51         raise HwsimSkip("No IMC installed")
52
53     dev[0].connect("test-wpa2-eap", key_mgmt="WPA-EAP",
54                    eap="TTLS", identity="DOMAIN\mschapv2 user",
55                    anonymous_identity="ttls", password="password",
56                    phase2="auth=MSCHAPV2",
57                    ca_cert="auth_serv/ca.pem",
58                    wait_connect=False)
59     dev[0].wait_connected(timeout=10)
60
61 def test_tnc_ttls_fragmentation(dev, apdev):
62     """TNC TTLS with fragmentation"""
63     params = int_eap_server_params()
64     params["tnc"] = "1"
65     params["fragment_size"] = "150"
66     hostapd.add_ap(apdev[0]['ifname'], params)
67
68     if not os.path.exists("tnc/libhostap_imc.so"):
69         raise HwsimSkip("No IMC installed")
70
71     dev[0].connect("test-wpa2-eap", key_mgmt="WPA-EAP",
72                    eap="TTLS", identity="DOMAIN\mschapv2 user",
73                    anonymous_identity="ttls", password="password",
74                    phase2="auth=MSCHAPV2",
75                    ca_cert="auth_serv/ca.pem",
76                    fragment_size="150",
77                    wait_connect=False)
78     dev[0].wait_connected(timeout=10)
79
80 def test_tnc_fast(dev, apdev):
81     """TNC FAST"""
82     check_eap_capa(dev[0], "FAST")
83     params = int_eap_server_params()
84     params["tnc"] = "1"
85     params["pac_opaque_encr_key"] ="000102030405060708090a0b0c0d0e00"
86     params["eap_fast_a_id"] = "101112131415161718191a1b1c1d1e00"
87     params["eap_fast_a_id_info"] = "test server2"
88
89     hostapd.add_ap(apdev[0]['ifname'], params)
90
91     if not os.path.exists("tnc/libhostap_imc.so"):
92         raise HwsimSkip("No IMC installed")
93
94     dev[0].connect("test-wpa2-eap", key_mgmt="WPA-EAP",
95                    eap="FAST", identity="user",
96                    anonymous_identity="FAST", password="password",
97                    phase2="auth=GTC",
98                    phase1="fast_provisioning=2",
99                    pac_file="blob://fast_pac_auth_tnc",
100                    ca_cert="auth_serv/ca.pem",
101                    wait_connect=False)
102     dev[0].wait_connected(timeout=10)