From 4a5a5792f1619d1f9886876d9b8a42f11f0f3461 Mon Sep 17 00:00:00 2001 From: Jouni Malinen Date: Sat, 28 Dec 2013 11:43:42 +0200 Subject: [PATCH] tests: Verify PeerKey handshake NOTE: Actual use of the direct link (DLS) is not supported in mac80211_hwsim, so this operation fails at setting the keys after successfully completed 4-way handshake. This test case does allow the key negotiation part to be tested for coverage, though. Signed-hostap: Jouni Malinen --- tests/hwsim/test_peerkey.py | 33 +++++++++++++++++++++++++++++++++ tests/hwsim/wpasupplicant.py | 4 +++- 2 files changed, 36 insertions(+), 1 deletion(-) create mode 100644 tests/hwsim/test_peerkey.py diff --git a/tests/hwsim/test_peerkey.py b/tests/hwsim/test_peerkey.py new file mode 100644 index 000000000..f4da06a06 --- /dev/null +++ b/tests/hwsim/test_peerkey.py @@ -0,0 +1,33 @@ +#!/usr/bin/python +# +# PeerKey tests +# Copyright (c) 2013, Jouni Malinen +# +# This software may be distributed under the terms of the BSD license. +# See README for more details. + +import logging +logger = logging.getLogger() +import time + +import hwsim_utils +import hostapd + +def test_peerkey(dev, apdev): + """RSN AP and PeerKey between two STAs""" + ssid = "test-peerkey" + passphrase = "12345678" + params = hostapd.wpa2_params(ssid=ssid, passphrase=passphrase) + params['peerkey'] = "1" + hostapd.add_ap(apdev[0]['ifname'], params) + + dev[0].connect(ssid, psk=passphrase, scan_freq="2412", peerkey=True) + dev[1].connect(ssid, psk=passphrase, scan_freq="2412", peerkey=True) + hwsim_utils.test_connectivity_sta(dev[0], dev[1]) + + dev[0].request("STKSTART " + dev[1].p2p_interface_addr()) + time.sleep(0.5) + # NOTE: Actual use of the direct link (DLS) is not supported in + # mac80211_hwsim, so this operation fails at setting the keys after + # successfully completed 4-way handshake. This test case does allow the + # key negotiation part to be tested for coverage, though. diff --git a/tests/hwsim/wpasupplicant.py b/tests/hwsim/wpasupplicant.py index 9844ae6d6..977eeb237 100644 --- a/tests/hwsim/wpasupplicant.py +++ b/tests/hwsim/wpasupplicant.py @@ -532,7 +532,7 @@ class WpaSupplicant: eap=None, identity=None, anonymous_identity=None, password=None, phase1=None, phase2=None, ca_cert=None, domain_suffix_match=None, password_hex=None, - client_cert=None, private_key=None, + client_cert=None, private_key=None, peerkey=False, wait_connect=True): logger.info("Connect STA " + self.ifname + " to AP") id = self.add_network() @@ -577,6 +577,8 @@ class WpaSupplicant: if domain_suffix_match: self.set_network_quoted(id, "domain_suffix_match", domain_suffix_match) + if peerkey: + self.set_network(id, "peerkey", "1") if wait_connect: self.connect_network(id) else: