tests: Add an EAP-TLS test case
This fixes the user.key file (incorrect key was copied previously) and adds a test case for EAP-TLS with WPA2-Enterprise. Signed-hostap: Jouni Malinen <j@w1.fi>
This commit is contained in:
		
							parent
							
								
									22b99086ce
								
							
						
					
					
						commit
						e114c49cfc
					
				
					 3 changed files with 31 additions and 16 deletions
				
			
		|  | @ -1,16 +1,16 @@ | ||||||
| -----BEGIN PRIVATE KEY----- | -----BEGIN PRIVATE KEY----- | ||||||
| MIICdQIBADANBgkqhkiG9w0BAQEFAASCAl8wggJbAgEAAoGBALBoVlPcsi29gqk6 | MIICeAIBADANBgkqhkiG9w0BAQEFAASCAmIwggJeAgEAAoGBAKaWLpsijN+UvouJ | ||||||
| U0WmBrfNjU9IM93x8gjxjrUAhpwTbc8TzXaoxWFL8WhD1M2MX1zhoTLhrbp1dSvC | SfZ4dqJgfhSV85b+qxklAzRkdAE+qJ988UdhYEyCkih8K6AOy4e/WevX82EiOxTz | ||||||
| JRY7dPWX4BOGivgpadUvbQAkz9ZKQw0RJtkp1z8LW2eLKAI7mSzAJkut+b0QHivK | qzH2WpUfuHq4LDypYVN4m+g+UOzC1kTnQ828Pk7nRv6SnsOYDylYyMuJAXVH6ZVX | ||||||
| +h/s2Ld0+opxwQyUZaizXxPf2q0pAgMBAAECgYBgj2wZkWdSlDZOLWfhauSofXJJ | D3bFLwVexx4N8jwSY125VBmvf0BrAgMBAAECgYEAkEoS0kKJ3Hqc1IW0r6xFrX2A | ||||||
| IGuLpGDotlh4CSaljhkATYWc2vrXrDsi6GY2cQzOCY80C8YNlzeg0S99wOPelW/3 | l1oOpCGvl1bswKuloxJfwczZu+cHHx4VdMWgj8Fg3xKJ03K4FtEsdYhdJyhn6c6G | ||||||
| VA9Frx4IBJRT5KLKELd7qHU8Bu/V8plDHcS84lw5JfrSrN/GAojSXmHCPYx7ZBfN | YsKF7HHGo2WA61VHxgqRB/CZzALy2JR/3rzElvrVQ5ZVh15DipNpwfwP9bW6P99A | ||||||
| h+jvTI8zDURRMyg81QJBAOZrm3YFtKqguuVACRKDIqYsDegn3SInq3Tv+iKDVS36 | omPQVnZ3p1HgU5WK68kCQQDXHbFUYX3I9SYlR4JhPy5ov2Q8WHu4p9rWXGBO75uS | ||||||
| JkTUk4Lk68ycJbvvlH7ak3rzAO3PLfP2aEbhOOtW+dcCQQDD/bkN9FAwHCsIxOSu | 7f3FZCbGULKZEOsiVFbloyUdpvLId7wvb343a1EAOnC9AkEAxj9UqsKMAdlXTDrT | ||||||
| eO1rfO+W1NWJIcWuY5Cyjgj3xriJqdG/NL0mxXKvlAN9BD/nbHuNP0hXEes/t0cU | 9NcQmJKWt568gEV4/45fjpTzbdndEOtCMwWBWEv/SyiWgWdwPeBViRGEyPrkLV/S | ||||||
| rLD/AkBagX3o18jlFIkUrxhhKx0bBEbaH35eghJ4tiIcGFYG3zDU7GKckWqFTfgM | teesRwJBAIfN6QuaWKyrh591W6xFFOlwGrm2KrVS0ucNfoeW4SKLOPCK36fHflj/ | ||||||
| X8iGIzi2nGiLAEvefbTr0l9XISy1AkB+KXaVN/7iaU9+bpgyg595gMwN0OXAR6Aj | w1Hy6MEkk+P6Z7+DR7yyqH4YNBTu0AkCQA7uZioWTQU2oWSUabJfIFjdcYyS4A+p | ||||||
| 2O3NMsctEJu76jgdmEpmidWAlowETtcAFwIVc3YSrnM76bP06BFrAkAJ7LK5Vn4H | K9vTlU7f2RXE+ulzTqEZIQzNbIT0oaFNcR637rlMIHwiqVzhgrVApbECQQDK5QqX | ||||||
| BWNwMHLUVaZoCbMXUwTfshlpnv1ctcOzUPExl/IlqbNl9cVeh/Ap2LQlSv2w5kPl | E6Z2VHTNEnCki9YvkgjPhLxSihQMDSaR0ENkre0OctFUufbwzH7DEhzV6CQ1Uw+9 | ||||||
| htcvTkfc8Pr6 | Au5AOFzcb1tfGczP | ||||||
| -----END PRIVATE KEY----- | -----END PRIVATE KEY----- | ||||||
|  |  | ||||||
|  | @ -17,12 +17,14 @@ import hostapd | ||||||
| 
 | 
 | ||||||
| def eap_connect(dev, method, identity, anonymous_identity=None, password=None, | def eap_connect(dev, method, identity, anonymous_identity=None, password=None, | ||||||
|                 phase1=None, phase2=None, ca_cert=None, |                 phase1=None, phase2=None, ca_cert=None, | ||||||
|                 domain_suffix_match=None, password_hex=None): |                 domain_suffix_match=None, password_hex=None, | ||||||
|  |                 client_cert=None, private_key=None): | ||||||
|     dev.connect("test-wpa2-eap", key_mgmt="WPA-EAP", eap=method, |     dev.connect("test-wpa2-eap", key_mgmt="WPA-EAP", eap=method, | ||||||
|                 identity=identity, anonymous_identity=anonymous_identity, |                 identity=identity, anonymous_identity=anonymous_identity, | ||||||
|                 password=password, phase1=phase1, phase2=phase2, |                 password=password, phase1=phase1, phase2=phase2, | ||||||
|                 ca_cert=ca_cert, domain_suffix_match=domain_suffix_match, |                 ca_cert=ca_cert, domain_suffix_match=domain_suffix_match, | ||||||
|                 wait_connect=False, scan_freq="2412", password_hex=password_hex) |                 wait_connect=False, scan_freq="2412", password_hex=password_hex, | ||||||
|  |                 client_cert=client_cert, private_key=private_key) | ||||||
|     ev = dev.wait_event(["CTRL-EVENT-EAP-STARTED"], timeout=10) |     ev = dev.wait_event(["CTRL-EVENT-EAP-STARTED"], timeout=10) | ||||||
|     if ev is None: |     if ev is None: | ||||||
|         raise Exception("Association and EAP start timed out") |         raise Exception("Association and EAP start timed out") | ||||||
|  | @ -155,6 +157,14 @@ def test_ap_wpa2_eap_peap_eap_mschapv2(dev, apdev): | ||||||
|                 ca_cert="auth_serv/ca.pem", phase2="auth=MSCHAPV2") |                 ca_cert="auth_serv/ca.pem", phase2="auth=MSCHAPV2") | ||||||
|     hwsim_utils.test_connectivity(dev[0].ifname, apdev[0]['ifname']) |     hwsim_utils.test_connectivity(dev[0].ifname, apdev[0]['ifname']) | ||||||
| 
 | 
 | ||||||
|  | def test_ap_wpa2_eap_tls(dev, apdev): | ||||||
|  |     """WPA2-Enterprise connection using EAP-TLS""" | ||||||
|  |     params = hostapd.wpa2_eap_params(ssid="test-wpa2-eap") | ||||||
|  |     hostapd.add_ap(apdev[0]['ifname'], params) | ||||||
|  |     eap_connect(dev[0], "TLS", "tls user", ca_cert="auth_serv/ca.pem", | ||||||
|  |                 client_cert="auth_serv/user.pem", | ||||||
|  |                 private_key="auth_serv/user.key") | ||||||
|  | 
 | ||||||
| def test_ap_wpa2_eap_tls_neg_incorrect_trust_root(dev, apdev): | def test_ap_wpa2_eap_tls_neg_incorrect_trust_root(dev, apdev): | ||||||
|     """WPA2-Enterprise negative test - incorrect trust root""" |     """WPA2-Enterprise negative test - incorrect trust root""" | ||||||
|     params = hostapd.wpa2_eap_params(ssid="test-wpa2-eap") |     params = hostapd.wpa2_eap_params(ssid="test-wpa2-eap") | ||||||
|  |  | ||||||
|  | @ -511,6 +511,7 @@ class WpaSupplicant: | ||||||
|                 eap=None, identity=None, anonymous_identity=None, |                 eap=None, identity=None, anonymous_identity=None, | ||||||
|                 password=None, phase1=None, phase2=None, ca_cert=None, |                 password=None, phase1=None, phase2=None, ca_cert=None, | ||||||
|                 domain_suffix_match=None, password_hex=None, |                 domain_suffix_match=None, password_hex=None, | ||||||
|  |                 client_cert=None, private_key=None, | ||||||
|                 wait_connect=True): |                 wait_connect=True): | ||||||
|         logger.info("Connect STA " + self.ifname + " to AP") |         logger.info("Connect STA " + self.ifname + " to AP") | ||||||
|         id = self.add_network() |         id = self.add_network() | ||||||
|  | @ -544,6 +545,10 @@ class WpaSupplicant: | ||||||
|             self.set_network(id, "password", password_hex) |             self.set_network(id, "password", password_hex) | ||||||
|         if ca_cert: |         if ca_cert: | ||||||
|             self.set_network_quoted(id, "ca_cert", ca_cert) |             self.set_network_quoted(id, "ca_cert", ca_cert) | ||||||
|  |         if client_cert: | ||||||
|  |             self.set_network_quoted(id, "client_cert", client_cert) | ||||||
|  |         if private_key: | ||||||
|  |             self.set_network_quoted(id, "private_key", private_key) | ||||||
|         if phase1: |         if phase1: | ||||||
|             self.set_network_quoted(id, "phase1", phase1) |             self.set_network_quoted(id, "phase1", phase1) | ||||||
|         if phase2: |         if phase2: | ||||||
|  |  | ||||||
		Loading…
	
		Reference in a new issue
	
	 Jouni Malinen
						Jouni Malinen