test_tnc.py 3.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293
  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. import os.path
  8. import hostapd
  9. from test_ap_eap import int_eap_server_params
  10. def test_tnc_peap_soh(dev, apdev):
  11. """TNC PEAP-SoH"""
  12. params = int_eap_server_params()
  13. params["tnc"] = "1"
  14. hostapd.add_ap(apdev[0]['ifname'], params)
  15. dev[0].connect("test-wpa2-eap", key_mgmt="WPA-EAP",
  16. eap="PEAP", identity="user", password="password",
  17. ca_cert="auth_serv/ca.pem",
  18. phase1="peapver=0 tnc=soh cryptobinding=0",
  19. phase2="auth=MSCHAPV2",
  20. wait_connect=False)
  21. ev = dev[0].wait_event(["CTRL-EVENT-CONNECTED"], timeout=10)
  22. if ev is None:
  23. raise Exception("Connection timed out")
  24. dev[1].connect("test-wpa2-eap", key_mgmt="WPA-EAP",
  25. eap="PEAP", identity="user", password="password",
  26. ca_cert="auth_serv/ca.pem",
  27. phase1="peapver=0 tnc=soh1 cryptobinding=1",
  28. phase2="auth=MSCHAPV2",
  29. wait_connect=False)
  30. ev = dev[1].wait_event(["CTRL-EVENT-CONNECTED"], timeout=10)
  31. if ev is None:
  32. raise Exception("Connection timed out")
  33. dev[2].connect("test-wpa2-eap", key_mgmt="WPA-EAP",
  34. eap="PEAP", identity="user", password="password",
  35. ca_cert="auth_serv/ca.pem",
  36. phase1="peapver=0 tnc=soh2 cryptobinding=2",
  37. phase2="auth=MSCHAPV2",
  38. wait_connect=False)
  39. ev = dev[2].wait_event(["CTRL-EVENT-CONNECTED"], timeout=10)
  40. if ev is None:
  41. raise Exception("Connection timed out")
  42. def test_tnc_ttls(dev, apdev):
  43. """TNC TTLS"""
  44. params = int_eap_server_params()
  45. params["tnc"] = "1"
  46. hostapd.add_ap(apdev[0]['ifname'], params)
  47. if not os.path.exists("tnc/libhostap_imc.so"):
  48. logger.info("No IMC installed - skip")
  49. return "skip"
  50. dev[0].connect("test-wpa2-eap", key_mgmt="WPA-EAP",
  51. eap="TTLS", identity="DOMAIN\mschapv2 user",
  52. anonymous_identity="ttls", password="password",
  53. phase2="auth=MSCHAPV2",
  54. ca_cert="auth_serv/ca.pem",
  55. wait_connect=False)
  56. ev = dev[0].wait_event(["CTRL-EVENT-CONNECTED"], timeout=10)
  57. if ev is None:
  58. raise Exception("Connection timed out")
  59. def test_tnc_fast(dev, apdev):
  60. """TNC FAST"""
  61. params = int_eap_server_params()
  62. params["tnc"] = "1"
  63. params["pac_opaque_encr_key"] ="000102030405060708090a0b0c0d0e00"
  64. params["eap_fast_a_id"] = "101112131415161718191a1b1c1d1e00"
  65. params["eap_fast_a_id_info"] = "test server2"
  66. hostapd.add_ap(apdev[0]['ifname'], params)
  67. if not os.path.exists("tnc/libhostap_imc.so"):
  68. logger.info("No IMC installed - skip")
  69. return "skip"
  70. dev[0].connect("test-wpa2-eap", key_mgmt="WPA-EAP",
  71. eap="FAST", identity="user",
  72. anonymous_identity="FAST", password="password",
  73. phase2="auth=GTC",
  74. phase1="fast_provisioning=2",
  75. pac_file="blob://fast_pac_auth_tnc",
  76. ca_cert="auth_serv/ca.pem",
  77. wait_connect=False)
  78. ev = dev[0].wait_event(["CTRL-EVENT-CONNECTED"], timeout=10)
  79. if ev is None:
  80. raise Exception("Connection timed out")