mirror of
https://github.com/vanhoefm/fragattacks.git
synced 2024-12-03 12:48:35 -05:00
4441b9d571
The discovery and group formation test cases do not need to run the full scan as the first step, so get rid of it to make the tests complete more quickly. Signed-hostap: Jouni Malinen <jouni@qca.qualcomm.com>
77 lines
2.8 KiB
Python
77 lines
2.8 KiB
Python
#!/usr/bin/python
|
|
#
|
|
# P2P device discovery test cases
|
|
# Copyright (c) 2013, Jouni Malinen <j@w1.fi>
|
|
#
|
|
# This software may be distributed under the terms of the BSD license.
|
|
# See README for more details.
|
|
|
|
import logging
|
|
logger = logging.getLogger(__name__)
|
|
|
|
def test_discovery(dev):
|
|
"""P2P device discovery and provision discovery"""
|
|
addr0 = dev[0].p2p_dev_addr()
|
|
addr1 = dev[1].p2p_dev_addr()
|
|
logger.info("Start device discovery")
|
|
dev[0].p2p_find(social=True)
|
|
dev[1].p2p_find(social=True)
|
|
ev0 = dev[0].wait_event(["P2P-DEVICE-FOUND"], timeout=15)
|
|
if ev0 is None:
|
|
raise Exception("Device discovery timed out")
|
|
ev1 = dev[1].wait_event(["P2P-DEVICE-FOUND"], timeout=15)
|
|
if ev1 is None:
|
|
raise Exception("Device discovery timed out")
|
|
dev[0].dump_monitor()
|
|
dev[1].dump_monitor()
|
|
if addr1 not in ev0:
|
|
raise Exception("Dev1 not found properly")
|
|
if addr0 not in ev1:
|
|
raise Exception("Dev0 not found properly")
|
|
|
|
logger.info("Test provision discovery for display")
|
|
dev[0].request("P2P_PROV_DISC " + addr1 + " display")
|
|
ev1 = dev[1].wait_event(["P2P-PROV-DISC-SHOW-PIN"], timeout=15)
|
|
if ev1 is None:
|
|
raise Exception("Provision discovery timed out")
|
|
if addr0 not in ev1:
|
|
raise Exception("Dev0 not in provision discovery event")
|
|
ev0 = dev[0].wait_event(["P2P-PROV-DISC-ENTER-PIN"], timeout=15)
|
|
if ev0 is None:
|
|
raise Exception("Provision discovery timed out")
|
|
if addr1 not in ev0:
|
|
raise Exception("Dev1 not in provision discovery event")
|
|
|
|
logger.info("Test provision discovery for keypad")
|
|
dev[0].request("P2P_PROV_DISC " + addr1 + " keypad")
|
|
ev1 = dev[1].wait_event(["P2P-PROV-DISC-ENTER-PIN"], timeout=15)
|
|
if ev1 is None:
|
|
raise Exception("Provision discovery timed out")
|
|
if addr0 not in ev1:
|
|
raise Exception("Dev0 not in provision discovery event")
|
|
ev0 = dev[0].wait_event(["P2P-PROV-DISC-SHOW-PIN"], timeout=15)
|
|
if ev0 is None:
|
|
raise Exception("Provision discovery timed out")
|
|
if addr1 not in ev0:
|
|
raise Exception("Dev1 not in provision discovery event")
|
|
|
|
logger.info("Test provision discovery for push button")
|
|
dev[0].request("P2P_PROV_DISC " + addr1 + " pbc")
|
|
ev1 = dev[1].wait_event(["P2P-PROV-DISC-PBC-REQ"], timeout=15)
|
|
if ev1 is None:
|
|
raise Exception("Provision discovery timed out")
|
|
if addr0 not in ev1:
|
|
raise Exception("Dev0 not in provision discovery event")
|
|
ev0 = dev[0].wait_event(["P2P-PROV-DISC-PBC-RESP"], timeout=15)
|
|
if ev0 is None:
|
|
raise Exception("Provision discovery timed out")
|
|
if addr1 not in ev0:
|
|
raise Exception("Dev1 not in provision discovery event")
|
|
|
|
dev[0].p2p_stop_find
|
|
dev[1].p2p_stop_find
|
|
|
|
|
|
def add_tests(tests):
|
|
tests.append(test_discovery)
|