tests: WEP Shared Key index change without deauth

Signed-off-by: Jouni Malinen <jouni@qca.qualcomm.com>
This commit is contained in:
Jouni Malinen 2014-11-19 17:57:49 +02:00 committed by Jouni Malinen
parent 168d4b097c
commit 41aa4bd739

View file

@ -12,6 +12,7 @@ import subprocess
import time
import hostapd
import hwsim_utils
from nl80211 import *
def nl80211_command(dev, cmd, attr):
@ -101,3 +102,36 @@ def test_cfg80211_tx_frame(dev, apdev, params):
raise Exception("First Action frame on unexpected channel: %s MHz" % freq[0])
if freq[1] != "2412":
raise Exception("Second Action frame on unexpected channel: %s MHz" % freq[1])
def test_cfg80211_wep_key_idx_change(dev, apdev):
"""WEP Shared Key authentication and key index change without deauth"""
hapd = hostapd.add_ap(apdev[0]['ifname'],
{ "ssid": "wep-shared-key",
"wep_key0": '"hello12345678"',
"wep_key1": '"other12345678"',
"auth_algs": "2" })
id = dev[0].connect("wep-shared-key", key_mgmt="NONE", auth_alg="SHARED",
wep_key0='"hello12345678"',
wep_key1='"other12345678"',
wep_tx_keyidx="0",
scan_freq="2412")
hwsim_utils.test_connectivity(dev[0], hapd)
dev[0].set_network(id, "wep_tx_keyidx", "1")
# clear cfg80211 auth state to allow new auth without deauth frame
ifindex = int(dev[0].get_driver_status_field("ifindex"))
attrs = build_nl80211_attr_u32('IFINDEX', ifindex)
attrs += build_nl80211_attr_u16('REASON_CODE', 1)
attrs += build_nl80211_attr_mac('MAC', apdev[0]['bssid'])
attrs += build_nl80211_attr_flag('LOCAL_STATE_CHANGE')
nl80211_command(dev[0], 'DEAUTHENTICATE', attrs)
ev = dev[0].wait_event(["CTRL-EVENT-DISCONNECTED"], timeout=5)
if ev is None:
raise Exception("Local-deauth timed out")
# the previous command results in deauth event followed by auto-reconnect
ev = dev[0].wait_event(["CTRL-EVENT-CONNECTED"], timeout=10)
if ev is None:
raise Exception("Reassociation with the AP timed out")
hwsim_utils.test_connectivity(dev[0], hapd)