summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorInga Stotland <inga.stotland@intel.com>2020-03-11 15:37:12 -0700
committerBrian Gix <brian.gix@intel.com>2020-03-12 11:19:14 -0700
commit14151f9b528c654fd4b092b06ddb55d37f80aeb1 (patch)
treecd5234d740529ca6e7d5088f9684978971c8ba6c /test
parent65e38696a2da1825e0f1623210c9803892bbb6d7 (diff)
downloadbluez-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-xtest/agent.py19
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')