tests: Use a helper function for DPP_CONFIGURATOR_ADD/REMOVE
Signed-off-by: Jouni Malinen <jouni@codeaurora.org>
This commit is contained in:
		
							parent
							
								
									5725b3e355
								
							
						
					
					
						commit
						e105110f40
					
				
					 3 changed files with 64 additions and 194 deletions
				
			
		|  | @ -481,6 +481,22 @@ class Hostapd: | ||||||
|             raise Exception("Failed to set PKEX data (responder)") |             raise Exception("Failed to set PKEX data (responder)") | ||||||
|         self.dpp_listen(freq, role=listen_role) |         self.dpp_listen(freq, role=listen_role) | ||||||
| 
 | 
 | ||||||
|  |     def dpp_configurator_add(self, curve=None, key=None): | ||||||
|  |         cmd = "DPP_CONFIGURATOR_ADD" | ||||||
|  |         if curve: | ||||||
|  |             cmd += " curve=" + curve | ||||||
|  |         if key: | ||||||
|  |             cmd += " key=" + key | ||||||
|  |         res = self.request(cmd) | ||||||
|  |         if "FAIL" in res: | ||||||
|  |             raise Exception("Failed to add configurator") | ||||||
|  |         return int(res) | ||||||
|  | 
 | ||||||
|  |     def dpp_configurator_remove(self, conf_id): | ||||||
|  |         res = self.request("DPP_CONFIGURATOR_REMOVE %d" % conf_id) | ||||||
|  |         if "OK" not in res: | ||||||
|  |             raise Exception("DPP_CONFIGURATOR_REMOVE failed") | ||||||
|  | 
 | ||||||
| def add_ap(apdev, params, wait_enabled=True, no_enable=False, timeout=30, | def add_ap(apdev, params, wait_enabled=True, no_enable=False, timeout=30, | ||||||
|            global_ctrl_override=None): |            global_ctrl_override=None): | ||||||
|         if isinstance(apdev, dict): |         if isinstance(apdev, dict): | ||||||
|  |  | ||||||
|  | @ -270,14 +270,7 @@ def run_dpp_qr_code_auth_unicast(dev, apdev, curve, netrole=None, key=None, | ||||||
|     check_dpp_capab(dev[0], curve and "brainpool" in curve) |     check_dpp_capab(dev[0], curve and "brainpool" in curve) | ||||||
|     check_dpp_capab(dev[1], curve and "brainpool" in curve) |     check_dpp_capab(dev[1], curve and "brainpool" in curve) | ||||||
|     if configurator: |     if configurator: | ||||||
|         logger.info("Create configurator on dev1") |         conf_id = dev[1].dpp_configurator_add(curve=conf_curve) | ||||||
|         cmd = "DPP_CONFIGURATOR_ADD" |  | ||||||
|         if conf_curve: |  | ||||||
|             cmd += " curve=" + conf_curve |  | ||||||
|         res = dev[1].request(cmd) |  | ||||||
|         if "FAIL" in res: |  | ||||||
|             raise Exception("Failed to add configurator") |  | ||||||
|         conf_id = int(res) |  | ||||||
|     else: |     else: | ||||||
|         conf_id = None |         conf_id = None | ||||||
| 
 | 
 | ||||||
|  | @ -651,14 +644,7 @@ def test_dpp_qr_code_auth_neg_chan(dev, apdev): | ||||||
|     """DPP QR Code and authentication exchange with requested different channel""" |     """DPP QR Code and authentication exchange with requested different channel""" | ||||||
|     check_dpp_capab(dev[0]) |     check_dpp_capab(dev[0]) | ||||||
|     check_dpp_capab(dev[1]) |     check_dpp_capab(dev[1]) | ||||||
| 
 |     conf_id = dev[1].dpp_configurator_add() | ||||||
|     logger.info("Create configurator on dev1") |  | ||||||
|     cmd = "DPP_CONFIGURATOR_ADD" |  | ||||||
|     res = dev[1].request(cmd) |  | ||||||
|     if "FAIL" in res: |  | ||||||
|         raise Exception("Failed to add configurator") |  | ||||||
|     conf_id = int(res) |  | ||||||
| 
 |  | ||||||
|     logger.info("dev0 displays QR Code") |     logger.info("dev0 displays QR Code") | ||||||
|     id0 = dev[0].dpp_bootstrap_gen(chan="81/1", mac=True) |     id0 = dev[0].dpp_bootstrap_gen(chan="81/1", mac=True) | ||||||
|     uri0 = dev[0].request("DPP_BOOTSTRAP_GET_URI %d" % id0) |     uri0 = dev[0].request("DPP_BOOTSTRAP_GET_URI %d" % id0) | ||||||
|  | @ -1610,13 +1596,7 @@ def run_dpp_ap_config(dev, apdev, curve=None, conf_curve=None, | ||||||
|     id_h = hapd.dpp_bootstrap_gen(chan="81/1", mac=True, curve=curve) |     id_h = hapd.dpp_bootstrap_gen(chan="81/1", mac=True, curve=curve) | ||||||
|     uri = hapd.request("DPP_BOOTSTRAP_GET_URI %d" % id_h) |     uri = hapd.request("DPP_BOOTSTRAP_GET_URI %d" % id_h) | ||||||
| 
 | 
 | ||||||
|     cmd = "DPP_CONFIGURATOR_ADD" |     conf_id = dev[0].dpp_configurator_add(curve=conf_curve) | ||||||
|     if conf_curve: |  | ||||||
|         cmd += " curve=" + conf_curve |  | ||||||
|     res = dev[0].request(cmd) |  | ||||||
|     if "FAIL" in res: |  | ||||||
|         raise Exception("Failed to add configurator") |  | ||||||
|     conf_id = int(res) |  | ||||||
| 
 | 
 | ||||||
|     if reconf_configurator: |     if reconf_configurator: | ||||||
|         csign = dev[0].request("DPP_CONFIGURATOR_GET_KEY %d" % conf_id) |         csign = dev[0].request("DPP_CONFIGURATOR_GET_KEY %d" % conf_id) | ||||||
|  | @ -1631,17 +1611,8 @@ def run_dpp_ap_config(dev, apdev, curve=None, conf_curve=None, | ||||||
|     uri1 = dev[1].request("DPP_BOOTSTRAP_GET_URI %d" % id1) |     uri1 = dev[1].request("DPP_BOOTSTRAP_GET_URI %d" % id1) | ||||||
| 
 | 
 | ||||||
|     if reconf_configurator: |     if reconf_configurator: | ||||||
|         res = dev[0].request("DPP_CONFIGURATOR_REMOVE %d" % conf_id) |         dev[0].dpp_configurator_remove(conf_id) | ||||||
|         if "OK" not in res: |         conf_id = dev[0].dpp_configurator_add(curve=conf_curve, key=csign) | ||||||
|             raise Exception("DPP_CONFIGURATOR_REMOVE failed") |  | ||||||
|         cmd = "DPP_CONFIGURATOR_ADD" |  | ||||||
|         if conf_curve: |  | ||||||
|             cmd += " curve=" + conf_curve |  | ||||||
|         cmd += " key=" + csign |  | ||||||
|         res = dev[0].request(cmd) |  | ||||||
|         if "FAIL" in res: |  | ||||||
|             raise Exception("Failed to add configurator (reconf)") |  | ||||||
|         conf_id = int(res) |  | ||||||
| 
 | 
 | ||||||
|     dev[1].dpp_listen(2412) |     dev[1].dpp_listen(2412) | ||||||
|     dev[0].dpp_auth_init(uri=uri1, conf="sta-dpp", configurator=conf_id) |     dev[0].dpp_auth_init(uri=uri1, conf="sta-dpp", configurator=conf_id) | ||||||
|  | @ -1731,12 +1702,7 @@ def run_dpp_auto_connect(dev, apdev, processing): | ||||||
|     except: |     except: | ||||||
|         raise HwsimSkip("DPP not supported") |         raise HwsimSkip("DPP not supported") | ||||||
| 
 | 
 | ||||||
|     cmd = "DPP_CONFIGURATOR_ADD key=" + csign |     conf_id = dev[1].dpp_configurator_add(key=csign) | ||||||
|     res = dev[1].request(cmd) |  | ||||||
|     if "FAIL" in res: |  | ||||||
|         raise Exception("DPP_CONFIGURATOR_ADD failed") |  | ||||||
|     conf_id = int(res) |  | ||||||
| 
 |  | ||||||
|     dev[0].set("dpp_config_processing", str(processing)) |     dev[0].set("dpp_config_processing", str(processing)) | ||||||
|     id0 = dev[0].dpp_bootstrap_gen(chan="81/1", mac=True) |     id0 = dev[0].dpp_bootstrap_gen(chan="81/1", mac=True) | ||||||
|     uri0 = dev[0].request("DPP_BOOTSTRAP_GET_URI %d" % id0) |     uri0 = dev[0].request("DPP_BOOTSTRAP_GET_URI %d" % id0) | ||||||
|  | @ -1871,12 +1837,7 @@ def test_dpp_qr_code_auth_responder_configurator_group_id(dev, apdev): | ||||||
| def run_dpp_qr_code_auth_responder_configurator(dev, apdev, extra): | def run_dpp_qr_code_auth_responder_configurator(dev, apdev, extra): | ||||||
|     check_dpp_capab(dev[0]) |     check_dpp_capab(dev[0]) | ||||||
|     check_dpp_capab(dev[1]) |     check_dpp_capab(dev[1]) | ||||||
|     cmd = "DPP_CONFIGURATOR_ADD" |     conf_id = dev[0].dpp_configurator_add() | ||||||
|     res = dev[0].request(cmd) |  | ||||||
|     if "FAIL" in res: |  | ||||||
|         raise Exception("Failed to add configurator") |  | ||||||
|     conf_id = int(res) |  | ||||||
| 
 |  | ||||||
|     id0 = dev[0].dpp_bootstrap_gen(chan="81/1", mac=True) |     id0 = dev[0].dpp_bootstrap_gen(chan="81/1", mac=True) | ||||||
|     uri0 = dev[0].request("DPP_BOOTSTRAP_GET_URI %d" % id0) |     uri0 = dev[0].request("DPP_BOOTSTRAP_GET_URI %d" % id0) | ||||||
|     dev[0].set("dpp_configurator_params", |     dev[0].set("dpp_configurator_params", | ||||||
|  | @ -1885,7 +1846,6 @@ def run_dpp_qr_code_auth_responder_configurator(dev, apdev, extra): | ||||||
|     dev[1].dpp_auth_init(uri=uri0, role="enrollee") |     dev[1].dpp_auth_init(uri=uri0, role="enrollee") | ||||||
|     wait_auth_success(dev[0], dev[1], configurator=dev[0], enrollee=dev[1], |     wait_auth_success(dev[0], dev[1], configurator=dev[0], enrollee=dev[1], | ||||||
|                       stop_responder=True) |                       stop_responder=True) | ||||||
|     dev[1].dump_monitor() |  | ||||||
| 
 | 
 | ||||||
| def test_dpp_qr_code_hostapd_init(dev, apdev): | def test_dpp_qr_code_hostapd_init(dev, apdev): | ||||||
|     """DPP QR Code and hostapd as initiator""" |     """DPP QR Code and hostapd as initiator""" | ||||||
|  | @ -1893,13 +1853,7 @@ def test_dpp_qr_code_hostapd_init(dev, apdev): | ||||||
|     hapd = hostapd.add_ap(apdev[0], {"ssid": "unconfigured", |     hapd = hostapd.add_ap(apdev[0], {"ssid": "unconfigured", | ||||||
|                                      "channel": "6"}) |                                      "channel": "6"}) | ||||||
|     check_dpp_capab(hapd) |     check_dpp_capab(hapd) | ||||||
| 
 |     conf_id = dev[0].dpp_configurator_add() | ||||||
|     cmd = "DPP_CONFIGURATOR_ADD" |  | ||||||
|     res = dev[0].request(cmd) |  | ||||||
|     if "FAIL" in res: |  | ||||||
|         raise Exception("Failed to add configurator") |  | ||||||
|     conf_id = int(res) |  | ||||||
| 
 |  | ||||||
|     id0 = dev[0].dpp_bootstrap_gen(chan="81/6", mac=True) |     id0 = dev[0].dpp_bootstrap_gen(chan="81/6", mac=True) | ||||||
|     uri0 = dev[0].request("DPP_BOOTSTRAP_GET_URI %d" % id0) |     uri0 = dev[0].request("DPP_BOOTSTRAP_GET_URI %d" % id0) | ||||||
|     dev[0].set("dpp_configurator_params", |     dev[0].set("dpp_configurator_params", | ||||||
|  | @ -1922,16 +1876,9 @@ def run_dpp_qr_code_hostapd_init_offchannel(dev, apdev, extra): | ||||||
|     hapd = hostapd.add_ap(apdev[0], {"ssid": "unconfigured", |     hapd = hostapd.add_ap(apdev[0], {"ssid": "unconfigured", | ||||||
|                                      "channel": "6"}) |                                      "channel": "6"}) | ||||||
|     check_dpp_capab(hapd) |     check_dpp_capab(hapd) | ||||||
| 
 |     conf_id = dev[0].dpp_configurator_add() | ||||||
|     cmd = "DPP_CONFIGURATOR_ADD" |  | ||||||
|     res = dev[0].request(cmd) |  | ||||||
|     if "FAIL" in res: |  | ||||||
|         raise Exception("Failed to add configurator") |  | ||||||
|     conf_id = int(res) |  | ||||||
| 
 |  | ||||||
|     id0 = dev[0].dpp_bootstrap_gen(chan="81/1,81/11", mac=True) |     id0 = dev[0].dpp_bootstrap_gen(chan="81/1,81/11", mac=True) | ||||||
|     uri0 = dev[0].request("DPP_BOOTSTRAP_GET_URI %d" % id0) |     uri0 = dev[0].request("DPP_BOOTSTRAP_GET_URI %d" % id0) | ||||||
| 
 |  | ||||||
|     dev[0].set("dpp_configurator_params", |     dev[0].set("dpp_configurator_params", | ||||||
|                " conf=ap-dpp configurator=%d" % conf_id) |                " conf=ap-dpp configurator=%d" % conf_id) | ||||||
|     dev[0].dpp_listen(2462, role="configurator") |     dev[0].dpp_listen(2462, role="configurator") | ||||||
|  | @ -2079,13 +2026,7 @@ def test_dpp_pkex_bp512(dev, apdev): | ||||||
| def test_dpp_pkex_config(dev, apdev): | def test_dpp_pkex_config(dev, apdev): | ||||||
|     """DPP and PKEX with initiator as the configurator""" |     """DPP and PKEX with initiator as the configurator""" | ||||||
|     check_dpp_capab(dev[1]) |     check_dpp_capab(dev[1]) | ||||||
| 
 |     conf_id = dev[1].dpp_configurator_add() | ||||||
|     cmd = "DPP_CONFIGURATOR_ADD" |  | ||||||
|     res = dev[1].request(cmd) |  | ||||||
|     if "FAIL" in res: |  | ||||||
|         raise Exception("Failed to add configurator") |  | ||||||
|     conf_id = int(res) |  | ||||||
| 
 |  | ||||||
|     run_dpp_pkex(dev, apdev, |     run_dpp_pkex(dev, apdev, | ||||||
|                  init_extra="conf=sta-dpp configurator=%d" % (conf_id), |                  init_extra="conf=sta-dpp configurator=%d" % (conf_id), | ||||||
|                  check_config=True) |                  check_config=True) | ||||||
|  | @ -2290,13 +2231,7 @@ def test_dpp_pkex_commit_reveal_req_processing_failure(dev, apdev): | ||||||
| def test_dpp_pkex_config2(dev, apdev): | def test_dpp_pkex_config2(dev, apdev): | ||||||
|     """DPP and PKEX with responder as the configurator""" |     """DPP and PKEX with responder as the configurator""" | ||||||
|     check_dpp_capab(dev[0]) |     check_dpp_capab(dev[0]) | ||||||
| 
 |     conf_id = dev[0].dpp_configurator_add() | ||||||
|     cmd = "DPP_CONFIGURATOR_ADD" |  | ||||||
|     res = dev[0].request(cmd) |  | ||||||
|     if "FAIL" in res: |  | ||||||
|         raise Exception("Failed to add configurator") |  | ||||||
|     conf_id = int(res) |  | ||||||
| 
 |  | ||||||
|     dev[0].set("dpp_configurator_params", |     dev[0].set("dpp_configurator_params", | ||||||
|                " conf=sta-dpp configurator=%d" % conf_id) |                " conf=sta-dpp configurator=%d" % conf_id) | ||||||
|     run_dpp_pkex2(dev, apdev) |     run_dpp_pkex2(dev, apdev) | ||||||
|  | @ -2341,12 +2276,7 @@ def test_dpp_pkex_hostapd_responder(dev, apdev): | ||||||
|                                      "channel": "6"}) |                                      "channel": "6"}) | ||||||
|     check_dpp_capab(hapd) |     check_dpp_capab(hapd) | ||||||
|     hapd.dpp_pkex_resp(2437, identifier="test", code="secret") |     hapd.dpp_pkex_resp(2437, identifier="test", code="secret") | ||||||
| 
 |     conf_id = dev[0].dpp_configurator_add() | ||||||
|     cmd = "DPP_CONFIGURATOR_ADD" |  | ||||||
|     res = dev[0].request(cmd) |  | ||||||
|     if "FAIL" in res: |  | ||||||
|         raise Exception("Failed to add configurator") |  | ||||||
|     conf_id = int(res) |  | ||||||
|     dev[0].dpp_pkex_init(identifier="test", code="secret", |     dev[0].dpp_pkex_init(identifier="test", code="secret", | ||||||
|                          extra="conf=ap-dpp configurator=%d" % conf_id) |                          extra="conf=ap-dpp configurator=%d" % conf_id) | ||||||
|     wait_auth_success(hapd, dev[0], configurator=dev[0], enrollee=hapd, |     wait_auth_success(hapd, dev[0], configurator=dev[0], enrollee=hapd, | ||||||
|  | @ -2358,13 +2288,7 @@ def test_dpp_pkex_hostapd_initiator(dev, apdev): | ||||||
|     hapd = hostapd.add_ap(apdev[0], {"ssid": "unconfigured", |     hapd = hostapd.add_ap(apdev[0], {"ssid": "unconfigured", | ||||||
|                                      "channel": "6"}) |                                      "channel": "6"}) | ||||||
|     check_dpp_capab(hapd) |     check_dpp_capab(hapd) | ||||||
| 
 |     conf_id = dev[0].dpp_configurator_add() | ||||||
|     cmd = "DPP_CONFIGURATOR_ADD" |  | ||||||
|     res = dev[0].request(cmd) |  | ||||||
|     if "FAIL" in res: |  | ||||||
|         raise Exception("Failed to add configurator") |  | ||||||
|     conf_id = int(res) |  | ||||||
| 
 |  | ||||||
|     dev[0].set("dpp_configurator_params", |     dev[0].set("dpp_configurator_params", | ||||||
|                " conf=ap-dpp configurator=%d" % conf_id) |                " conf=ap-dpp configurator=%d" % conf_id) | ||||||
|     dev[0].dpp_pkex_resp(2437, identifier="test", code="secret", |     dev[0].dpp_pkex_resp(2437, identifier="test", code="secret", | ||||||
|  | @ -2379,16 +2303,9 @@ def test_dpp_hostapd_configurator(dev, apdev): | ||||||
|     hapd = hostapd.add_ap(apdev[0], {"ssid": "unconfigured", |     hapd = hostapd.add_ap(apdev[0], {"ssid": "unconfigured", | ||||||
|                                      "channel": "1"}) |                                      "channel": "1"}) | ||||||
|     check_dpp_capab(hapd) |     check_dpp_capab(hapd) | ||||||
| 
 |     conf_id = hapd.dpp_configurator_add() | ||||||
|     cmd = "DPP_CONFIGURATOR_ADD" |  | ||||||
|     res = hapd.request(cmd) |  | ||||||
|     if "FAIL" in res: |  | ||||||
|         raise Exception("Failed to add configurator") |  | ||||||
|     conf_id = int(res) |  | ||||||
| 
 |  | ||||||
|     id0 = dev[0].dpp_bootstrap_gen(chan="81/1", mac=True) |     id0 = dev[0].dpp_bootstrap_gen(chan="81/1", mac=True) | ||||||
|     uri0 = dev[0].request("DPP_BOOTSTRAP_GET_URI %d" % id0) |     uri0 = dev[0].request("DPP_BOOTSTRAP_GET_URI %d" % id0) | ||||||
| 
 |  | ||||||
|     id1 = hapd.dpp_qr_code(uri0) |     id1 = hapd.dpp_qr_code(uri0) | ||||||
|     res = hapd.request("DPP_BOOTSTRAP_INFO %d" % id1) |     res = hapd.request("DPP_BOOTSTRAP_INFO %d" % id1) | ||||||
|     if "FAIL" in res: |     if "FAIL" in res: | ||||||
|  | @ -2397,7 +2314,6 @@ def test_dpp_hostapd_configurator(dev, apdev): | ||||||
|         raise Exception("DPP_BOOTSTRAP_INFO did not report correct type") |         raise Exception("DPP_BOOTSTRAP_INFO did not report correct type") | ||||||
|     if "mac_addr=" + dev[0].own_addr() not in res: |     if "mac_addr=" + dev[0].own_addr() not in res: | ||||||
|         raise Exception("DPP_BOOTSTRAP_INFO did not report correct mac_addr") |         raise Exception("DPP_BOOTSTRAP_INFO did not report correct mac_addr") | ||||||
| 
 |  | ||||||
|     dev[0].dpp_listen(2412) |     dev[0].dpp_listen(2412) | ||||||
|     hapd.dpp_auth_init(peer=id1, configurator=conf_id, conf="sta-dpp") |     hapd.dpp_auth_init(peer=id1, configurator=conf_id, conf="sta-dpp") | ||||||
|     wait_auth_success(dev[0], hapd, configurator=hapd, enrollee=dev[0], |     wait_auth_success(dev[0], hapd, configurator=hapd, enrollee=dev[0], | ||||||
|  | @ -2409,16 +2325,9 @@ def test_dpp_hostapd_configurator_responder(dev, apdev): | ||||||
|     hapd = hostapd.add_ap(apdev[0], {"ssid": "unconfigured", |     hapd = hostapd.add_ap(apdev[0], {"ssid": "unconfigured", | ||||||
|                                      "channel": "1"}) |                                      "channel": "1"}) | ||||||
|     check_dpp_capab(hapd) |     check_dpp_capab(hapd) | ||||||
| 
 |     conf_id = hapd.dpp_configurator_add() | ||||||
|     cmd = "DPP_CONFIGURATOR_ADD" |  | ||||||
|     res = hapd.request(cmd) |  | ||||||
|     if "FAIL" in res: |  | ||||||
|         raise Exception("Failed to add configurator") |  | ||||||
|     conf_id = int(res) |  | ||||||
| 
 |  | ||||||
|     hapd.set("dpp_configurator_params", |     hapd.set("dpp_configurator_params", | ||||||
|              " conf=sta-dpp configurator=%d" % conf_id) |              " conf=sta-dpp configurator=%d" % conf_id) | ||||||
| 
 |  | ||||||
|     id0 = hapd.dpp_bootstrap_gen(chan="81/1", mac=True) |     id0 = hapd.dpp_bootstrap_gen(chan="81/1", mac=True) | ||||||
|     uri0 = hapd.request("DPP_BOOTSTRAP_GET_URI %d" % id0) |     uri0 = hapd.request("DPP_BOOTSTRAP_GET_URI %d" % id0) | ||||||
|     dev[0].dpp_auth_init(uri=uri0, role="enrollee") |     dev[0].dpp_auth_init(uri=uri0, role="enrollee") | ||||||
|  | @ -2451,16 +2360,9 @@ def run_dpp_own_config(dev, apdev, own_curve=None, expect_failure=False, | ||||||
|     check_dpp_capab(dev[0], own_curve and "BP" in own_curve) |     check_dpp_capab(dev[0], own_curve and "BP" in own_curve) | ||||||
|     hapd = hostapd.add_ap(apdev[0], {"ssid": "unconfigured"}) |     hapd = hostapd.add_ap(apdev[0], {"ssid": "unconfigured"}) | ||||||
|     check_dpp_capab(hapd) |     check_dpp_capab(hapd) | ||||||
| 
 |  | ||||||
|     id_h = hapd.dpp_bootstrap_gen(chan="81/1", mac=True) |     id_h = hapd.dpp_bootstrap_gen(chan="81/1", mac=True) | ||||||
|     uri = hapd.request("DPP_BOOTSTRAP_GET_URI %d" % id_h) |     uri = hapd.request("DPP_BOOTSTRAP_GET_URI %d" % id_h) | ||||||
| 
 |     conf_id = dev[0].dpp_configurator_add() | ||||||
|     cmd = "DPP_CONFIGURATOR_ADD" |  | ||||||
|     res = dev[0].request(cmd) |  | ||||||
|     if "FAIL" in res: |  | ||||||
|         raise Exception("Failed to add configurator") |  | ||||||
|     conf_id = int(res) |  | ||||||
| 
 |  | ||||||
|     dev[0].dpp_auth_init(uri=uri, conf="ap-dpp", configurator=conf_id, |     dev[0].dpp_auth_init(uri=uri, conf="ap-dpp", configurator=conf_id, | ||||||
|                          extra=extra) |                          extra=extra) | ||||||
|     wait_auth_success(hapd, dev[0], configurator=dev[0], enrollee=hapd) |     wait_auth_success(hapd, dev[0], configurator=dev[0], enrollee=hapd) | ||||||
|  | @ -2512,13 +2414,7 @@ def run_dpp_own_config_ap(dev, apdev, reconf_configurator=False, extra=None): | ||||||
|     check_dpp_capab(dev[0]) |     check_dpp_capab(dev[0]) | ||||||
|     hapd = hostapd.add_ap(apdev[0], {"ssid": "unconfigured"}) |     hapd = hostapd.add_ap(apdev[0], {"ssid": "unconfigured"}) | ||||||
|     check_dpp_capab(hapd) |     check_dpp_capab(hapd) | ||||||
| 
 |     conf_id = hapd.dpp_configurator_add() | ||||||
|     cmd = "DPP_CONFIGURATOR_ADD" |  | ||||||
|     res = hapd.request(cmd) |  | ||||||
|     if "FAIL" in res: |  | ||||||
|         raise Exception("Failed to add configurator") |  | ||||||
|     conf_id = int(res) |  | ||||||
| 
 |  | ||||||
|     if reconf_configurator: |     if reconf_configurator: | ||||||
|         csign = hapd.request("DPP_CONFIGURATOR_GET_KEY %d" % conf_id) |         csign = hapd.request("DPP_CONFIGURATOR_GET_KEY %d" % conf_id) | ||||||
|         if "FAIL" in csign or len(csign) == 0: |         if "FAIL" in csign or len(csign) == 0: | ||||||
|  | @ -2531,14 +2427,8 @@ def run_dpp_own_config_ap(dev, apdev, reconf_configurator=False, extra=None): | ||||||
|     update_hapd_config(hapd) |     update_hapd_config(hapd) | ||||||
| 
 | 
 | ||||||
|     if reconf_configurator: |     if reconf_configurator: | ||||||
|         res = hapd.request("DPP_CONFIGURATOR_REMOVE %d" % conf_id) |         hapd.dpp_configurator_remove(conf_id) | ||||||
|         if "OK" not in res: |         conf_id = hapd.dpp_configurator_add(key=csign) | ||||||
|             raise Exception("DPP_CONFIGURATOR_REMOVE failed") |  | ||||||
|         cmd = "DPP_CONFIGURATOR_ADD key=" + csign |  | ||||||
|         res = hapd.request(cmd) |  | ||||||
|         if "FAIL" in res: |  | ||||||
|             raise Exception("Failed to add configurator (reconf)") |  | ||||||
|         conf_id = int(res) |  | ||||||
| 
 | 
 | ||||||
|     id = dev[0].dpp_bootstrap_gen(chan="81/1", mac=True) |     id = dev[0].dpp_bootstrap_gen(chan="81/1", mac=True) | ||||||
|     uri = dev[0].request("DPP_BOOTSTRAP_GET_URI %d" % id) |     uri = dev[0].request("DPP_BOOTSTRAP_GET_URI %d" % id) | ||||||
|  | @ -2567,20 +2457,13 @@ def run_dpp_intro_mismatch(dev, apdev, wpas): | ||||||
|     check_dpp_capab(dev[0]) |     check_dpp_capab(dev[0]) | ||||||
|     check_dpp_capab(dev[1]) |     check_dpp_capab(dev[1]) | ||||||
|     check_dpp_capab(dev[2]) |     check_dpp_capab(dev[2]) | ||||||
| 
 |  | ||||||
|     logger.info("Start AP in unconfigured state") |     logger.info("Start AP in unconfigured state") | ||||||
|     hapd = hostapd.add_ap(apdev[0], {"ssid": "unconfigured"}) |     hapd = hostapd.add_ap(apdev[0], {"ssid": "unconfigured"}) | ||||||
|     check_dpp_capab(hapd) |     check_dpp_capab(hapd) | ||||||
| 
 |  | ||||||
|     id_h = hapd.dpp_bootstrap_gen(chan="81/1", mac=True) |     id_h = hapd.dpp_bootstrap_gen(chan="81/1", mac=True) | ||||||
|     uri = hapd.request("DPP_BOOTSTRAP_GET_URI %d" % id_h) |     uri = hapd.request("DPP_BOOTSTRAP_GET_URI %d" % id_h) | ||||||
| 
 |  | ||||||
|     logger.info("Provision AP with DPP configuration") |     logger.info("Provision AP with DPP configuration") | ||||||
|     res = dev[1].request("DPP_CONFIGURATOR_ADD") |     conf_id = dev[1].dpp_configurator_add() | ||||||
|     if "FAIL" in res: |  | ||||||
|         raise Exception("Failed to add configurator") |  | ||||||
|     conf_id = int(res) |  | ||||||
| 
 |  | ||||||
|     dev[1].set("dpp_groups_override", '[{"groupId":"a","netRole":"ap"}]') |     dev[1].set("dpp_groups_override", '[{"groupId":"a","netRole":"ap"}]') | ||||||
|     dev[1].dpp_auth_init(uri=uri, conf="ap-dpp", configurator=conf_id) |     dev[1].dpp_auth_init(uri=uri, conf="ap-dpp", configurator=conf_id) | ||||||
|     update_hapd_config(hapd) |     update_hapd_config(hapd) | ||||||
|  | @ -2599,10 +2482,7 @@ def run_dpp_intro_mismatch(dev, apdev, wpas): | ||||||
|     id2 = dev[2].dpp_bootstrap_gen(chan="81/1", mac=True) |     id2 = dev[2].dpp_bootstrap_gen(chan="81/1", mac=True) | ||||||
|     uri2 = dev[2].request("DPP_BOOTSTRAP_GET_URI %d" % id2) |     uri2 = dev[2].request("DPP_BOOTSTRAP_GET_URI %d" % id2) | ||||||
|     dev[2].dpp_listen(2412) |     dev[2].dpp_listen(2412) | ||||||
|     res = dev[1].request("DPP_CONFIGURATOR_ADD") |     conf_id_2 = dev[1].dpp_configurator_add() | ||||||
|     if "FAIL" in res: |  | ||||||
|         raise Exception("Failed to add configurator") |  | ||||||
|     conf_id_2 = int(res) |  | ||||||
|     dev[1].set("dpp_groups_override", '') |     dev[1].set("dpp_groups_override", '') | ||||||
|     dev[1].dpp_auth_init(uri=uri2, conf="sta-dpp", configurator=conf_id_2) |     dev[1].dpp_auth_init(uri=uri2, conf="sta-dpp", configurator=conf_id_2) | ||||||
|     wait_auth_success(dev[2], dev[1], configurator=dev[1], enrollee=dev[2]) |     wait_auth_success(dev[2], dev[1], configurator=dev[1], enrollee=dev[2]) | ||||||
|  | @ -2641,16 +2521,10 @@ def run_dpp_proto_init(dev, test_dev, test, mutual=False, unicast=True, | ||||||
|     check_dpp_capab(dev[0]) |     check_dpp_capab(dev[0]) | ||||||
|     check_dpp_capab(dev[1]) |     check_dpp_capab(dev[1]) | ||||||
|     dev[test_dev].set("dpp_test", str(test)) |     dev[test_dev].set("dpp_test", str(test)) | ||||||
| 
 |  | ||||||
|     cmd = "DPP_CONFIGURATOR_ADD" |  | ||||||
|     if init_enrollee: |     if init_enrollee: | ||||||
|         res = dev[0].request(cmd) |         conf_id = dev[0].dpp_configurator_add() | ||||||
|     else: |     else: | ||||||
|         res = dev[1].request(cmd) |         conf_id = dev[1].dpp_configurator_add() | ||||||
|     if "FAIL" in res: |  | ||||||
|         raise Exception("Failed to add configurator") |  | ||||||
|     conf_id = int(res) |  | ||||||
| 
 |  | ||||||
|     id0 = dev[0].dpp_bootstrap_gen(chan=chan, mac=unicast) |     id0 = dev[0].dpp_bootstrap_gen(chan=chan, mac=unicast) | ||||||
|     uri0 = dev[0].request("DPP_BOOTSTRAP_GET_URI %d" % id0) |     uri0 = dev[0].request("DPP_BOOTSTRAP_GET_URI %d" % id0) | ||||||
| 
 | 
 | ||||||
|  | @ -3505,11 +3379,7 @@ def test_dpp_pkex_alloc_fail(dev, apdev): | ||||||
|             if "FAIL" not in res: |             if "FAIL" not in res: | ||||||
|                 raise Exception("Unexpected DPP_CONFIGURATOR_ADD success") |                 raise Exception("Unexpected DPP_CONFIGURATOR_ADD success") | ||||||
| 
 | 
 | ||||||
|     cmd = "DPP_CONFIGURATOR_ADD" |     conf_id = dev[1].dpp_configurator_add() | ||||||
|     res = dev[1].request(cmd) |  | ||||||
|     if "FAIL" in res: |  | ||||||
|         raise Exception("Failed to add configurator") |  | ||||||
|     conf_id = int(res) |  | ||||||
| 
 | 
 | ||||||
|     id0 = None |     id0 = None | ||||||
|     id1 = None |     id1 = None | ||||||
|  | @ -3637,11 +3507,7 @@ def test_dpp_pkex_test_fail(dev, apdev): | ||||||
|             if "FAIL" not in res: |             if "FAIL" not in res: | ||||||
|                 raise Exception("Unexpected DPP_BOOTSTRAP_GEN success") |                 raise Exception("Unexpected DPP_BOOTSTRAP_GEN success") | ||||||
| 
 | 
 | ||||||
|     cmd = "DPP_CONFIGURATOR_ADD" |     conf_id = dev[1].dpp_configurator_add() | ||||||
|     res = dev[1].request(cmd) |  | ||||||
|     if "FAIL" in res: |  | ||||||
|         raise Exception("Failed to add configurator") |  | ||||||
|     conf_id = int(res) |  | ||||||
| 
 | 
 | ||||||
|     id0 = None |     id0 = None | ||||||
|     id1 = None |     id1 = None | ||||||
|  | @ -4042,10 +3908,7 @@ def test_dpp_invalid_configurator_key(dev, apdev): | ||||||
| def test_dpp_own_config_sign_fail(dev, apdev): | def test_dpp_own_config_sign_fail(dev, apdev): | ||||||
|     """DPP own config signing failure""" |     """DPP own config signing failure""" | ||||||
|     check_dpp_capab(dev[0]) |     check_dpp_capab(dev[0]) | ||||||
|     res = dev[0].request("DPP_CONFIGURATOR_ADD") |     conf_id = dev[0].dpp_configurator_add() | ||||||
|     if "FAIL" in res: |  | ||||||
|         raise Exception("Failed to add configurator") |  | ||||||
|     conf_id = int(res) |  | ||||||
|     tests = ["", |     tests = ["", | ||||||
|              " ", |              " ", | ||||||
|              " conf=sta-dpp", |              " conf=sta-dpp", | ||||||
|  | @ -4067,18 +3930,12 @@ def run_dpp_peer_intro_failures(dev, apdev): | ||||||
|     hapd = hostapd.add_ap(apdev[0], {"ssid": "unconfigured"}) |     hapd = hostapd.add_ap(apdev[0], {"ssid": "unconfigured"}) | ||||||
|     check_dpp_capab(hapd) |     check_dpp_capab(hapd) | ||||||
| 
 | 
 | ||||||
|     res = hapd.request("DPP_CONFIGURATOR_ADD key=" + dpp_key_p256) |     conf_id = hapd.dpp_configurator_add(key=dpp_key_p256) | ||||||
|     if "FAIL" in res: |  | ||||||
|         raise Exception("Failed to add configurator") |  | ||||||
|     conf_id = int(res) |  | ||||||
|     csign = hapd.request("DPP_CONFIGURATOR_GET_KEY %d" % conf_id) |     csign = hapd.request("DPP_CONFIGURATOR_GET_KEY %d" % conf_id) | ||||||
|     if "FAIL" in csign or len(csign) == 0: |     if "FAIL" in csign or len(csign) == 0: | ||||||
|         raise Exception("DPP_CONFIGURATOR_GET_KEY failed") |         raise Exception("DPP_CONFIGURATOR_GET_KEY failed") | ||||||
| 
 | 
 | ||||||
|     res = dev[0].request("DPP_CONFIGURATOR_ADD key=" + csign) |     conf_id2 = dev[0].dpp_configurator_add(key=csign) | ||||||
|     if "FAIL" in res: |  | ||||||
|         raise Exception("Failed to add configurator") |  | ||||||
|     conf_id2 = int(res) |  | ||||||
|     csign2 = dev[0].request("DPP_CONFIGURATOR_GET_KEY %d" % conf_id2) |     csign2 = dev[0].request("DPP_CONFIGURATOR_GET_KEY %d" % conf_id2) | ||||||
| 
 | 
 | ||||||
|     if csign != csign2: |     if csign != csign2: | ||||||
|  | @ -4214,10 +4071,7 @@ def test_dpp_peer_intro_local_failures(dev, apdev): | ||||||
| 
 | 
 | ||||||
| def run_dpp_configurator_id_unknown(dev): | def run_dpp_configurator_id_unknown(dev): | ||||||
|     check_dpp_capab(dev) |     check_dpp_capab(dev) | ||||||
|     res = dev.request("DPP_CONFIGURATOR_ADD") |     conf_id = dev.dpp_configurator_add() | ||||||
|     if "FAIL" in res: |  | ||||||
|         raise Exception("Failed to add configurator") |  | ||||||
|     conf_id = int(res) |  | ||||||
|     if "FAIL" not in dev.request("DPP_CONFIGURATOR_GET_KEY %d" % (conf_id + 1)): |     if "FAIL" not in dev.request("DPP_CONFIGURATOR_GET_KEY %d" % (conf_id + 1)): | ||||||
|         raise Exception("DPP_CONFIGURATOR_GET_KEY with incorrect id accepted") |         raise Exception("DPP_CONFIGURATOR_GET_KEY with incorrect id accepted") | ||||||
| 
 | 
 | ||||||
|  | @ -4302,12 +4156,7 @@ def test_dpp_network_addition_failure(dev, apdev): | ||||||
| 
 | 
 | ||||||
| def run_dpp_network_addition_failure(dev, apdev): | def run_dpp_network_addition_failure(dev, apdev): | ||||||
|     check_dpp_capab(dev[0]) |     check_dpp_capab(dev[0]) | ||||||
| 
 |     conf_id = dev[0].dpp_configurator_add() | ||||||
|     res = dev[0].request("DPP_CONFIGURATOR_ADD") |  | ||||||
|     if "FAIL" in res: |  | ||||||
|         raise Exception("Failed to add configurator") |  | ||||||
|     conf_id = int(res) |  | ||||||
| 
 |  | ||||||
|     dev[0].set("dpp_config_processing", "1") |     dev[0].set("dpp_config_processing", "1") | ||||||
|     cmd = "DPP_CONFIGURATOR_SIGN  conf=sta-dpp configurator=%d" % conf_id |     cmd = "DPP_CONFIGURATOR_SIGN  conf=sta-dpp configurator=%d" % conf_id | ||||||
|     tests = [(1, "=wpas_dpp_add_network"), |     tests = [(1, "=wpas_dpp_add_network"), | ||||||
|  | @ -4453,13 +4302,7 @@ def test_dpp_enrollee_ap_reject_config(dev, apdev): | ||||||
|     hapd = hostapd.add_ap(apdev[0], {"ssid": "unconfigured"}) |     hapd = hostapd.add_ap(apdev[0], {"ssid": "unconfigured"}) | ||||||
|     check_dpp_capab(hapd) |     check_dpp_capab(hapd) | ||||||
|     hapd.set("dpp_test", "91") |     hapd.set("dpp_test", "91") | ||||||
| 
 |     conf_id = dev[0].dpp_configurator_add() | ||||||
|     cmd = "DPP_CONFIGURATOR_ADD" |  | ||||||
|     res = dev[0].request(cmd) |  | ||||||
|     if "FAIL" in res: |  | ||||||
|         raise Exception("Failed to add configurator") |  | ||||||
|     conf_id = int(res) |  | ||||||
| 
 |  | ||||||
|     id_h = hapd.dpp_bootstrap_gen(chan="81/1", mac=True) |     id_h = hapd.dpp_bootstrap_gen(chan="81/1", mac=True) | ||||||
|     uri = hapd.request("DPP_BOOTSTRAP_GET_URI %d" % id_h) |     uri = hapd.request("DPP_BOOTSTRAP_GET_URI %d" % id_h) | ||||||
|     dev[0].dpp_auth_init(uri=uri, conf="ap-dpp", configurator=conf_id) |     dev[0].dpp_auth_init(uri=uri, conf="ap-dpp", configurator=conf_id) | ||||||
|  | @ -4500,12 +4343,7 @@ def run_dpp_legacy_and_dpp_akm(dev, apdev): | ||||||
|     except: |     except: | ||||||
|         raise HwsimSkip("DPP not supported") |         raise HwsimSkip("DPP not supported") | ||||||
| 
 | 
 | ||||||
|     cmd = "DPP_CONFIGURATOR_ADD key=" + csign |     conf_id = dev[1].dpp_configurator_add(key=csign) | ||||||
|     res = dev[1].request(cmd) |  | ||||||
|     if "FAIL" in res: |  | ||||||
|         raise Exception("DPP_CONFIGURATOR_ADD failed") |  | ||||||
|     conf_id = int(res) |  | ||||||
| 
 |  | ||||||
|     dev[0].set("dpp_config_processing", "1") |     dev[0].set("dpp_config_processing", "1") | ||||||
|     id0 = dev[0].dpp_bootstrap_gen(chan="81/1", mac=True) |     id0 = dev[0].dpp_bootstrap_gen(chan="81/1", mac=True) | ||||||
|     uri0 = dev[0].request("DPP_BOOTSTRAP_GET_URI %d" % id0) |     uri0 = dev[0].request("DPP_BOOTSTRAP_GET_URI %d" % id0) | ||||||
|  |  | ||||||
|  | @ -1505,3 +1505,19 @@ class WpaSupplicant: | ||||||
|             raise Exception("Failed to set PKEX data (responder)") |             raise Exception("Failed to set PKEX data (responder)") | ||||||
|         self.dpp_listen(freq, role=listen_role) |         self.dpp_listen(freq, role=listen_role) | ||||||
|         return id0 |         return id0 | ||||||
|  | 
 | ||||||
|  |     def dpp_configurator_add(self, curve=None, key=None): | ||||||
|  |         cmd = "DPP_CONFIGURATOR_ADD" | ||||||
|  |         if curve: | ||||||
|  |             cmd += " curve=" + curve | ||||||
|  |         if key: | ||||||
|  |             cmd += " key=" + key | ||||||
|  |         res = self.request(cmd) | ||||||
|  |         if "FAIL" in res: | ||||||
|  |             raise Exception("Failed to add configurator") | ||||||
|  |         return int(res) | ||||||
|  | 
 | ||||||
|  |     def dpp_configurator_remove(self, conf_id): | ||||||
|  |         res = self.request("DPP_CONFIGURATOR_REMOVE %d" % conf_id) | ||||||
|  |         if "OK" not in res: | ||||||
|  |             raise Exception("DPP_CONFIGURATOR_REMOVE failed") | ||||||
|  |  | ||||||
		Loading…
	
		Reference in a new issue
	
	 Jouni Malinen
						Jouni Malinen