tests: wpa_supplicant config file writing with SAE
Signed-off-by: Jouni Malinen <jouni@codeaurora.org>
This commit is contained in:
parent
21f835e640
commit
8b077a42e5
2 changed files with 54 additions and 0 deletions
|
@ -10,6 +10,7 @@ import os
|
||||||
|
|
||||||
from wpasupplicant import WpaSupplicant
|
from wpasupplicant import WpaSupplicant
|
||||||
import hostapd
|
import hostapd
|
||||||
|
from test_sae import check_sae_capab
|
||||||
|
|
||||||
config_checks = [("ap_scan", "0"),
|
config_checks = [("ap_scan", "0"),
|
||||||
("update_config", "1"),
|
("update_config", "1"),
|
||||||
|
@ -594,3 +595,52 @@ def test_wpas_config_file_key_mgmt(dev, apdev, params):
|
||||||
|
|
||||||
wpas.interface_remove("wlan5")
|
wpas.interface_remove("wlan5")
|
||||||
wpas.interface_add("wlan5", config=config)
|
wpas.interface_add("wlan5", config=config)
|
||||||
|
|
||||||
|
def check_network_config(config, network_expected, check=None):
|
||||||
|
with open(config, "r") as f:
|
||||||
|
data = f.read()
|
||||||
|
logger.info("Configuration file contents:\n" + data.rstrip())
|
||||||
|
if network_expected and "network=" not in data:
|
||||||
|
raise Exception("Missing network block in configuration data")
|
||||||
|
if not network_expected and "network=" in data:
|
||||||
|
raise Exception("Unexpected network block in configuration data")
|
||||||
|
if check and check not in data:
|
||||||
|
raise Exception("Missing " + check)
|
||||||
|
|
||||||
|
def test_wpas_config_file_sae(dev, apdev, params):
|
||||||
|
"""wpa_supplicant config file writing with SAE"""
|
||||||
|
config = os.path.join(params['logdir'], 'wpas_config_file_sae.conf')
|
||||||
|
with open(config, "w") as f:
|
||||||
|
f.write("update_config=1\n")
|
||||||
|
wpas = WpaSupplicant(global_iface='/tmp/wpas-wlan5')
|
||||||
|
wpas.interface_add("wlan5", config=config)
|
||||||
|
check_sae_capab(wpas)
|
||||||
|
|
||||||
|
# Valid SAE configuration with sae_password
|
||||||
|
wpas.connect("test-sae", sae_password="sae-password", key_mgmt="SAE",
|
||||||
|
only_add_network=True)
|
||||||
|
wpas.save_config()
|
||||||
|
check_network_config(config, True, check="key_mgmt=SAE")
|
||||||
|
|
||||||
|
wpas.request("REMOVE_NETWORK all")
|
||||||
|
wpas.save_config()
|
||||||
|
check_network_config(config, False)
|
||||||
|
|
||||||
|
# Valid SAE configuration with psk
|
||||||
|
wpas.connect("test-sae", psk="sae-password", key_mgmt="SAE",
|
||||||
|
only_add_network=True)
|
||||||
|
wpas.save_config()
|
||||||
|
check_network_config(config, True, check="key_mgmt=SAE")
|
||||||
|
wpas.request("REMOVE_NETWORK all")
|
||||||
|
|
||||||
|
# Invalid PSK configuration with sae_password
|
||||||
|
wpas.connect("test-psk", sae_password="sae-password", key_mgmt="WPA-PSK",
|
||||||
|
only_add_network=True)
|
||||||
|
wpas.save_config()
|
||||||
|
check_network_config(config, False)
|
||||||
|
|
||||||
|
# Invalid SAE configuration with raw_psk
|
||||||
|
wpas.connect("test-sae", raw_psk=32*"00", key_mgmt="SAE",
|
||||||
|
only_add_network=True)
|
||||||
|
wpas.save_config()
|
||||||
|
check_network_config(config, False)
|
||||||
|
|
|
@ -1434,6 +1434,10 @@ class WpaSupplicant:
|
||||||
def note(self, txt):
|
def note(self, txt):
|
||||||
self.request("NOTE " + txt)
|
self.request("NOTE " + txt)
|
||||||
|
|
||||||
|
def save_config(self):
|
||||||
|
if "OK" not in self.request("SAVE_CONFIG"):
|
||||||
|
raise Exception("Failed to save configuration file")
|
||||||
|
|
||||||
def wait_regdom(self, country_ie=False):
|
def wait_regdom(self, country_ie=False):
|
||||||
for i in range(5):
|
for i in range(5):
|
||||||
ev = self.wait_event(["CTRL-EVENT-REGDOM-CHANGE"], timeout=1)
|
ev = self.wait_event(["CTRL-EVENT-REGDOM-CHANGE"], timeout=1)
|
||||||
|
|
Loading…
Reference in a new issue