mirror of
https://github.com/espressif/esp-idf.git
synced 2024-10-05 20:47:46 -04:00
esp_prov: Add support for sending some abstract custom data
To be used with the provisioning/wifi_prov_mgr example Signed-off-by: Piyush Shah <piyush@espressif.com>
This commit is contained in:
parent
9ee5f3e8ce
commit
62626ac4b9
@ -186,6 +186,16 @@ def custom_config(tp, sec, custom_info, custom_ver):
|
||||
return None
|
||||
|
||||
|
||||
def custom_data(tp, sec, custom_data):
|
||||
try:
|
||||
message = prov.custom_data_request(sec, custom_data)
|
||||
response = tp.send_data('custom-data', message)
|
||||
return (prov.custom_data_response(sec, response) == 0)
|
||||
except RuntimeError as e:
|
||||
on_except(e)
|
||||
return None
|
||||
|
||||
|
||||
def scan_wifi_APs(sel_transport, tp, sec):
|
||||
APs = []
|
||||
group_channels = 0
|
||||
@ -328,6 +338,11 @@ if __name__ == '__main__':
|
||||
'If Wi-Fi scanning is supported by the provisioning service, this need not '
|
||||
'be specified'))
|
||||
|
||||
parser.add_argument("--custom_data", dest='custom_data', type=str, default='',
|
||||
help=desc_format(
|
||||
'This is an optional parameter, only intended for use with '
|
||||
'"examples/provisioning/wifi_prov_mgr_custom_data"'))
|
||||
|
||||
parser.add_argument("--custom_config", action="store_true",
|
||||
help=desc_format(
|
||||
'This is an optional parameter, only intended for use with '
|
||||
@ -394,6 +409,13 @@ if __name__ == '__main__':
|
||||
exit(5)
|
||||
print("==== Custom config sent successfully ====")
|
||||
|
||||
if args.custom_data != '':
|
||||
print("\n==== Sending Custom data to esp32 ====")
|
||||
if not custom_data(obj_transport, obj_security, args.custom_data):
|
||||
print("---- Error in custom data ----")
|
||||
exit(5)
|
||||
print("==== Custom data sent successfully ====")
|
||||
|
||||
if args.ssid == '':
|
||||
if not has_capability(obj_transport, 'wifi_scan'):
|
||||
print("---- Wi-Fi Scan List is not supported by provisioning service ----")
|
||||
|
@ -44,3 +44,17 @@ def custom_config_response(security_ctx, response_data):
|
||||
cmd_resp.ParseFromString(decrypt)
|
||||
print_verbose(security_ctx, "CustomConfig status " + str(cmd_resp.status))
|
||||
return cmd_resp.status
|
||||
|
||||
|
||||
def custom_data_request(security_ctx, data):
|
||||
# Encrypt the custom data
|
||||
enc_cmd = security_ctx.encrypt_data(data)
|
||||
print_verbose(security_ctx, "Client -> Device (CustomData cmd) " + utils.str_to_hexstr(enc_cmd))
|
||||
return enc_cmd
|
||||
|
||||
|
||||
def custom_data_response(security_ctx, response_data):
|
||||
# Decrypt response packet
|
||||
decrypt = security_ctx.decrypt_data(tobytes(response_data))
|
||||
print("CustomData response: " + str(decrypt))
|
||||
return 0
|
||||
|
Loading…
Reference in New Issue
Block a user