diff --git a/tests/hwsim/test_tnc.py b/tests/hwsim/test_tnc.py index 25f7be0d1..20bb41ecd 100644 --- a/tests/hwsim/test_tnc.py +++ b/tests/hwsim/test_tnc.py @@ -8,7 +8,7 @@ import os.path import hostapd -from utils import HwsimSkip, alloc_fail, wait_fail_trigger +from utils import HwsimSkip, alloc_fail, fail_test, wait_fail_trigger from test_ap_eap import int_eap_server_params, check_eap_capa def test_tnc_peap_soh(dev, apdev): @@ -41,6 +41,37 @@ def test_tnc_peap_soh(dev, apdev): wait_connect=False) dev[2].wait_connected(timeout=10) +def test_tnc_peap_soh_errors(dev, apdev): + """TNC PEAP-SoH local error cases""" + params = int_eap_server_params() + params["tnc"] = "1" + hostapd.add_ap(apdev[0]['ifname'], params) + + tests = [ (1, "tncc_build_soh"), + (1, "eap_msg_alloc;=eap_peap_phase2_request") ] + for count, func in tests: + with alloc_fail(dev[0], count, func): + dev[0].connect("test-wpa2-eap", key_mgmt="WPA-EAP", + eap="PEAP", identity="user", password="password", + ca_cert="auth_serv/ca.pem", + phase1="peapver=0 tnc=soh cryptobinding=0", + phase2="auth=MSCHAPV2", + scan_freq="2412", wait_connect=False) + wait_fail_trigger(dev[0], "GET_ALLOC_FAIL") + dev[0].request("REMOVE_NETWORK all") + dev[0].wait_disconnected() + + with fail_test(dev[0], 1, "os_get_random;tncc_build_soh"): + dev[0].connect("test-wpa2-eap", key_mgmt="WPA-EAP", + eap="PEAP", identity="user", password="password", + ca_cert="auth_serv/ca.pem", + phase1="peapver=0 tnc=soh cryptobinding=0", + phase2="auth=MSCHAPV2", + scan_freq="2412", wait_connect=False) + wait_fail_trigger(dev[0], "GET_FAIL") + dev[0].request("REMOVE_NETWORK all") + dev[0].wait_disconnected() + def test_tnc_ttls(dev, apdev): """TNC TTLS""" check_eap_capa(dev[0], "MSCHAPV2")