tests: WPA2-PSK AP and no random numbers available

Signed-off-by: Jouni Malinen <j@w1.fi>
This commit is contained in:
Jouni Malinen 2015-06-28 21:41:56 +03:00
parent aac1efec34
commit bf7071bb0c
2 changed files with 33 additions and 1 deletions

View file

@ -17,7 +17,7 @@ import subprocess
import time import time
import hostapd import hostapd
from utils import HwsimSkip from utils import HwsimSkip, fail_test
import hwsim_utils import hwsim_utils
from wpasupplicant import WpaSupplicant from wpasupplicant import WpaSupplicant
@ -1971,3 +1971,21 @@ def test_ap_wpa_ie_parsing(dev, apdev):
dev[0].request("DISCONNECT") dev[0].request("DISCONNECT")
finally: finally:
dev[0].request("VENDOR_ELEM_REMOVE 13 *") dev[0].request("VENDOR_ELEM_REMOVE 13 *")
def test_ap_wpa2_psk_no_random(dev, apdev):
"""WPA2-PSK AP and no random numbers available"""
ssid = "test-wpa2-psk"
passphrase = 'qwertyuiop'
psk = '602e323e077bc63bd80307ef4745b754b0ae0a925c2638ecd13a794b9527b9e6'
params = hostapd.wpa2_params(ssid=ssid)
params['wpa_psk'] = psk
hapd = hostapd.add_ap(apdev[0]['ifname'], params)
with fail_test(hapd, 1, "wpa_gmk_to_gtk"):
id = dev[0].connect(ssid, raw_psk=psk, scan_freq="2412",
wait_connect=False)
ev = dev[0].wait_event(["CTRL-EVENT-DISCONNECTED"], timeout=15)
if ev is None:
raise Exception("Disconnection event not reported")
dev[0].request("DISCONNECT")
dev[0].select_network(id, freq=2412)
dev[0].wait_connected()

View file

@ -36,6 +36,20 @@ class alloc_fail(object):
if self._dev.request("GET_ALLOC_FAIL") != "0:%s" % self._funcs: if self._dev.request("GET_ALLOC_FAIL") != "0:%s" % self._funcs:
raise Exception("Allocation failure did not trigger") raise Exception("Allocation failure did not trigger")
class fail_test(object):
def __init__(self, dev, count, funcs):
self._dev = dev
self._count = count
self._funcs = funcs
def __enter__(self):
cmd = "TEST_FAIL %d:%s" % (self._count, self._funcs)
if "OK" not in self._dev.request(cmd):
raise HwsimSkip("TEST_FAIL not supported")
def __exit__(self, type, value, traceback):
if type is None:
if self._dev.request("GET_FAIL") != "0:%s" % self._funcs:
raise Exception("Test failure did not trigger")
def require_under_vm(): def require_under_vm():
with open('/proc/1/cmdline', 'r') as f: with open('/proc/1/cmdline', 'r') as f:
cmd = f.read() cmd = f.read()