81 lines
3.2 KiB
Python
81 lines
3.2 KiB
Python
|
# hostapd configuration tests
|
||
|
# Copyright (c) 2014, Jouni Malinen <j@w1.fi>
|
||
|
#
|
||
|
# This software may be distributed under the terms of the BSD license.
|
||
|
# See README for more details.
|
||
|
|
||
|
import hostapd
|
||
|
|
||
|
def test_ap_config_errors(dev, apdev):
|
||
|
"""Various hostapd configuration errors"""
|
||
|
hapd_global = hostapd.HostapdGlobal()
|
||
|
ifname = apdev[0]['ifname']
|
||
|
|
||
|
# IEEE 802.11d without country code
|
||
|
params = { "ssid": "foo", "ieee80211d": "1" }
|
||
|
hapd = hostapd.add_ap(ifname, params, no_enable=True)
|
||
|
if "FAIL" not in hapd.request("ENABLE"):
|
||
|
raise Exception("Unexpected ENABLE success (ieee80211d without country_code)")
|
||
|
hapd_global.remove(ifname)
|
||
|
|
||
|
# IEEE 802.11h without IEEE 802.11d
|
||
|
params = { "ssid": "foo", "ieee80211h": "1" }
|
||
|
hapd = hostapd.add_ap(ifname, params, no_enable=True)
|
||
|
if "FAIL" not in hapd.request("ENABLE"):
|
||
|
raise Exception("Unexpected ENABLE success (ieee80211h without ieee80211d")
|
||
|
hapd_global.remove(ifname)
|
||
|
|
||
|
# Power Constraint without IEEE 802.11d
|
||
|
params = { "ssid": "foo", "local_pwr_constraint": "1" }
|
||
|
hapd = hostapd.add_ap(ifname, params, no_enable=True)
|
||
|
if "FAIL" not in hapd.request("ENABLE"):
|
||
|
raise Exception("Unexpected ENABLE success (local_pwr_constraint without ieee80211d)")
|
||
|
hapd_global.remove(ifname)
|
||
|
|
||
|
# Spectrum management without Power Constraint
|
||
|
params = { "ssid": "foo", "spectrum_mgmt_required": "1" }
|
||
|
hapd = hostapd.add_ap(ifname, params, no_enable=True)
|
||
|
if "FAIL" not in hapd.request("ENABLE"):
|
||
|
raise Exception("Unexpected ENABLE success (spectrum_mgmt_required without local_pwr_constraint)")
|
||
|
hapd_global.remove(ifname)
|
||
|
|
||
|
# IEEE 802.1X without authentication server
|
||
|
params = { "ssid": "foo", "ieee8021x": "1" }
|
||
|
hapd = hostapd.add_ap(ifname, params, no_enable=True)
|
||
|
if "FAIL" not in hapd.request("ENABLE"):
|
||
|
raise Exception("Unexpected ENABLE success (ieee8021x)")
|
||
|
hapd_global.remove(ifname)
|
||
|
|
||
|
# RADIUS-PSK without macaddr_acl=2
|
||
|
params = hostapd.wpa2_params(ssid="foo", passphrase="12345678")
|
||
|
params["wpa_psk_radius"] = "1"
|
||
|
hapd = hostapd.add_ap(ifname, params, no_enable=True)
|
||
|
if "FAIL" not in hapd.request("ENABLE"):
|
||
|
raise Exception("Unexpected ENABLE success (wpa_psk_radius)")
|
||
|
hapd_global.remove(ifname)
|
||
|
|
||
|
# FT without NAS-Identifier
|
||
|
params = { "wpa": "2",
|
||
|
"wpa_key_mgmt": "FT-PSK",
|
||
|
"rsn_pairwise": "CCMP",
|
||
|
"wpa_passphrase": "12345678" }
|
||
|
hapd = hostapd.add_ap(ifname, params, no_enable=True)
|
||
|
if "FAIL" not in hapd.request("ENABLE"):
|
||
|
raise Exception("Unexpected ENABLE success (FT without nas_identifier)")
|
||
|
hapd_global.remove(ifname)
|
||
|
|
||
|
# Hotspot 2.0 without WPA2/CCMP
|
||
|
params = hostapd.wpa2_params(ssid="foo")
|
||
|
params['wpa_key_mgmt'] = "WPA-EAP"
|
||
|
params['ieee8021x'] = "1"
|
||
|
params['auth_server_addr'] = "127.0.0.1"
|
||
|
params['auth_server_port'] = "1812"
|
||
|
params['auth_server_shared_secret'] = "radius"
|
||
|
params['interworking'] = "1"
|
||
|
params['hs20'] = "1"
|
||
|
params['wpa'] = "1"
|
||
|
hapd = hostapd.add_ap(ifname, params, no_enable=True)
|
||
|
if "FAIL" not in hapd.request("ENABLE"):
|
||
|
raise Exception("Unexpected ENABLE success (HS 2.0 without WPA2/CCMP)")
|
||
|
hapd_global.remove(ifname)
|