test_tnc.py 3.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104
  1. # -*- coding: utf-8 -*-
  2. # TNC tests
  3. # Copyright (c) 2014-2015, 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 utils import HwsimSkip
  10. from test_ap_eap import int_eap_server_params, check_eap_capa
  11. def test_tnc_peap_soh(dev, apdev):
  12. """TNC PEAP-SoH"""
  13. params = int_eap_server_params()
  14. params["tnc"] = "1"
  15. hostapd.add_ap(apdev[0]['ifname'], params)
  16. dev[0].connect("test-wpa2-eap", key_mgmt="WPA-EAP",
  17. eap="PEAP", identity="user", password="password",
  18. ca_cert="auth_serv/ca.pem",
  19. phase1="peapver=0 tnc=soh cryptobinding=0",
  20. phase2="auth=MSCHAPV2",
  21. wait_connect=False)
  22. dev[0].wait_connected(timeout=10)
  23. dev[1].connect("test-wpa2-eap", key_mgmt="WPA-EAP",
  24. eap="PEAP", identity="user", password="password",
  25. ca_cert="auth_serv/ca.pem",
  26. phase1="peapver=0 tnc=soh1 cryptobinding=1",
  27. phase2="auth=MSCHAPV2",
  28. wait_connect=False)
  29. dev[1].wait_connected(timeout=10)
  30. dev[2].connect("test-wpa2-eap", key_mgmt="WPA-EAP",
  31. eap="PEAP", identity="user", password="password",
  32. ca_cert="auth_serv/ca.pem",
  33. phase1="peapver=0 tnc=soh2 cryptobinding=2",
  34. phase2="auth=MSCHAPV2",
  35. wait_connect=False)
  36. dev[2].wait_connected(timeout=10)
  37. def test_tnc_ttls(dev, apdev):
  38. """TNC TTLS"""
  39. check_eap_capa(dev[0], "MSCHAPV2")
  40. params = int_eap_server_params()
  41. params["tnc"] = "1"
  42. hostapd.add_ap(apdev[0]['ifname'], params)
  43. if not os.path.exists("tnc/libhostap_imc.so"):
  44. raise HwsimSkip("No IMC installed")
  45. dev[0].connect("test-wpa2-eap", key_mgmt="WPA-EAP",
  46. eap="TTLS", identity="DOMAIN\mschapv2 user",
  47. anonymous_identity="ttls", password="password",
  48. phase2="auth=MSCHAPV2",
  49. ca_cert="auth_serv/ca.pem",
  50. wait_connect=False)
  51. dev[0].wait_connected(timeout=10)
  52. def test_tnc_ttls_fragmentation(dev, apdev):
  53. """TNC TTLS with fragmentation"""
  54. check_eap_capa(dev[0], "MSCHAPV2")
  55. params = int_eap_server_params()
  56. params["tnc"] = "1"
  57. params["fragment_size"] = "150"
  58. hostapd.add_ap(apdev[0]['ifname'], params)
  59. if not os.path.exists("tnc/libhostap_imc.so"):
  60. raise HwsimSkip("No IMC installed")
  61. dev[0].connect("test-wpa2-eap", key_mgmt="WPA-EAP",
  62. eap="TTLS", identity="DOMAIN\mschapv2 user",
  63. anonymous_identity="ttls", password="password",
  64. phase2="auth=MSCHAPV2",
  65. ca_cert="auth_serv/ca.pem",
  66. fragment_size="150",
  67. wait_connect=False)
  68. dev[0].wait_connected(timeout=10)
  69. def test_tnc_fast(dev, apdev):
  70. """TNC FAST"""
  71. check_eap_capa(dev[0], "FAST")
  72. params = int_eap_server_params()
  73. params["tnc"] = "1"
  74. params["pac_opaque_encr_key"] ="000102030405060708090a0b0c0d0e00"
  75. params["eap_fast_a_id"] = "101112131415161718191a1b1c1d1e00"
  76. params["eap_fast_a_id_info"] = "test server2"
  77. hostapd.add_ap(apdev[0]['ifname'], params)
  78. if not os.path.exists("tnc/libhostap_imc.so"):
  79. raise HwsimSkip("No IMC installed")
  80. dev[0].connect("test-wpa2-eap", key_mgmt="WPA-EAP",
  81. eap="FAST", identity="user",
  82. anonymous_identity="FAST", password="password",
  83. phase2="auth=GTC",
  84. phase1="fast_provisioning=2",
  85. pac_file="blob://fast_pac_auth_tnc",
  86. ca_cert="auth_serv/ca.pem",
  87. wait_connect=False)
  88. dev[0].wait_connected(timeout=10)