From 47183df78a0ecf60336be4ec37188f9c82169338 Mon Sep 17 00:00:00 2001 From: Jouni Malinen Date: Sun, 19 Nov 2017 11:33:22 +0200 Subject: [PATCH] tests: DPP protocol testing for invalid I/R-bootstrap key hash Signed-off-by: Jouni Malinen --- tests/hwsim/test_dpp.py | 39 ++++++++++++++++++++++++++++++++++++--- 1 file changed, 36 insertions(+), 3 deletions(-) diff --git a/tests/hwsim/test_dpp.py b/tests/hwsim/test_dpp.py index 37e2ce111..e32529b42 100644 --- a/tests/hwsim/test_dpp.py +++ b/tests/hwsim/test_dpp.py @@ -2394,7 +2394,10 @@ def run_dpp_proto_init(dev, test_dev, test, mutual=False): raise Exception("Failed to parse QR Code URI") id0b = int(res) - cmd = "DPP_LISTEN 2412" + cmd = "DPP_LISTEN 2412 qr=mutual" + else: + cmd = "DPP_LISTEN 2412" + if "OK" not in dev[0].request(cmd): raise Exception("Failed to start listen operation") @@ -2484,8 +2487,8 @@ def test_dpp_proto_zero_r_capab(dev, apdev): if ev is not None: raise Exception("Unexpected DPP message seen") -def run_dpp_proto_auth_req_missing(dev, test, reason): - run_dpp_proto_init(dev, 1, test) +def run_dpp_proto_auth_req_missing(dev, test, reason, mutual=False): + run_dpp_proto_init(dev, 1, test, mutual=mutual) ev = dev[0].wait_event(["DPP-FAIL"], timeout=5) if ev is None: raise Exception("DPP failure not seen") @@ -2499,10 +2502,24 @@ def test_dpp_proto_auth_req_no_r_bootstrap_key(dev, apdev): """DPP protocol testing - no R-bootstrap key in Auth Req""" run_dpp_proto_auth_req_missing(dev, 10, "Missing or invalid required Responder Bootstrapping Key Hash attribute") +def test_dpp_proto_auth_req_invalid_r_bootstrap_key(dev, apdev): + """DPP protocol testing - invalid R-bootstrap key in Auth Req""" + run_dpp_proto_auth_req_missing(dev, 68, "No matching own bootstrapping key found - ignore message") + def test_dpp_proto_auth_req_no_i_bootstrap_key(dev, apdev): """DPP protocol testing - no I-bootstrap key in Auth Req""" run_dpp_proto_auth_req_missing(dev, 11, "Missing or invalid required Initiator Bootstrapping Key Hash attribute") +def test_dpp_proto_auth_req_invalid_i_bootstrap_key(dev, apdev): + """DPP protocol testing - invalid I-bootstrap key in Auth Req""" + run_dpp_proto_init(dev, 1, 69, mutual=True) + ev = dev[0].wait_event(["DPP-SCAN-PEER-QR-CODE"], timeout=5) + if ev is None: + raise Exception("DPP scan request not seen") + ev = dev[1].wait_event(["DPP-RESPONSE-PENDING"], timeout=5) + if ev is None: + raise Exception("DPP response pending indivation not seen") + def test_dpp_proto_auth_req_no_i_proto_key(dev, apdev): """DPP protocol testing - no I-proto key in Auth Req""" run_dpp_proto_auth_req_missing(dev, 12, "Missing required Initiator Protocol Key attribute") @@ -2548,10 +2565,18 @@ def test_dpp_proto_auth_resp_no_r_bootstrap_key(dev, apdev): """DPP protocol testing - no R-bootstrap key in Auth Resp""" run_dpp_proto_auth_resp_missing(dev, 17, "Missing or invalid required Responder Bootstrapping Key Hash attribute") +def test_dpp_proto_auth_resp_invalid_r_bootstrap_key(dev, apdev): + """DPP protocol testing - invalid R-bootstrap key in Auth Resp""" + run_dpp_proto_auth_resp_missing(dev, 70, "Unexpected Responder Bootstrapping Key Hash value") + def test_dpp_proto_auth_resp_no_i_bootstrap_key(dev, apdev): """DPP protocol testing - no I-bootstrap key in Auth Resp""" run_dpp_proto_auth_resp_missing(dev, 18, None) +def test_dpp_proto_auth_resp_invalid_i_bootstrap_key(dev, apdev): + """DPP protocol testing - invalid I-bootstrap key in Auth Resp""" + run_dpp_proto_auth_resp_missing(dev, 71, "Initiator Bootstrapping Key Hash attribute did not match") + def test_dpp_proto_auth_resp_no_r_proto_key(dev, apdev): """DPP protocol testing - no R-Proto Key in Auth Resp""" run_dpp_proto_auth_resp_missing(dev, 19, "Missing required Responder Protocol Key attribute") @@ -2642,10 +2667,18 @@ def test_dpp_proto_auth_conf_no_r_bootstrap_key(dev, apdev): """DPP protocol testing - no R-bootstrap key in Auth Conf""" run_dpp_proto_auth_conf_missing(dev, 26, "Missing or invalid required Responder Bootstrapping Key Hash attribute") +def test_dpp_proto_auth_conf_invalid_r_bootstrap_key(dev, apdev): + """DPP protocol testing - invalid R-bootstrap key in Auth Conf""" + run_dpp_proto_auth_conf_missing(dev, 72, "Responder Bootstrapping Key Hash mismatch") + def test_dpp_proto_auth_conf_no_i_bootstrap_key(dev, apdev): """DPP protocol testing - no I-bootstrap key in Auth Conf""" run_dpp_proto_auth_conf_missing(dev, 27, "Missing Initiator Bootstrapping Key Hash attribute") +def test_dpp_proto_auth_conf_invalid_i_bootstrap_key(dev, apdev): + """DPP protocol testing - invalid I-bootstrap key in Auth Conf""" + run_dpp_proto_auth_conf_missing(dev, 73, "Initiator Bootstrapping Key Hash mismatch") + def test_dpp_proto_auth_conf_no_i_auth(dev, apdev): """DPP protocol testing - no I-Auth in Auth Conf""" run_dpp_proto_auth_conf_missing(dev, 28, "Missing or invalid Initiator Authenticating Tag")