diff options
author | Inga Stotland <inga.stotland@intel.com> | 2020-03-11 15:37:12 -0700 |
---|---|---|
committer | Brian Gix <brian.gix@intel.com> | 2020-03-12 11:19:14 -0700 |
commit | 14151f9b528c654fd4b092b06ddb55d37f80aeb1 (patch) | |
tree | cd5234d740529ca6e7d5088f9684978971c8ba6c /test | |
parent | 65e38696a2da1825e0f1623210c9803892bbb6d7 (diff) | |
download | bluez-14151f9b528c654fd4b092b06ddb55d37f80aeb1.tar.gz |
test/test-mesh: Add support for static OOB in the agent
This allows to display a 16-octet key to be entered on the remote
device during provisioning.
Diffstat (limited to 'test')
-rwxr-xr-x | test/agent.py | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/test/agent.py b/test/agent.py index 778dbe092..d8e5534d8 100755 --- a/test/agent.py +++ b/test/agent.py @@ -3,6 +3,7 @@ import sys import dbus import dbus.service +import numpy try: from termcolor import colored, cprint @@ -17,6 +18,12 @@ AGENT_PATH = "/mesh/test/agent" bus = None +def array_to_string(b_array): + str_value = "" + for b in b_array: + str_value += "%02x" % b + return str_value + class Agent(dbus.service.Object): def __init__(self, bus): self.path = AGENT_PATH @@ -27,6 +34,7 @@ class Agent(dbus.service.Object): caps = [] oob = [] caps.append('out-numeric') + caps.append('static-oob') oob.append('other') return { AGENT_IFACE: { @@ -46,3 +54,14 @@ class Agent(dbus.service.Object): def DisplayNumeric(self, type, value): print(set_cyan('DisplayNumeric ('), type, set_cyan(') number ='), set_green(value)) + + @dbus.service.method(AGENT_IFACE, in_signature="s", out_signature="ay") + def PromptStatic(self, type): + static_key = numpy.random.randint(0, 255, 16) + key_str = array_to_string(static_key) + + print(set_cyan('PromptStatic ('), type, set_cyan(')')) + print(set_cyan('Enter 16 octet key on remote device: '), + set_green(key_str)); + + return dbus.Array(static_key, signature='y') |