[PATCH BlueZ] test/test-mesh: Add support for static OOB in the agent

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



This allows to display a 16-octet key to be entered on the remote
device during provisioning.
---
 test/agent.py | 19 +++++++++++++++++++
 1 file changed, 19 insertions(+)

diff --git a/test/agent.py b/test/agent.py
index 778dbe092..af9edd35c 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')
-- 
2.21.1




[Index of Archives]     [Bluez Devel]     [Linux Wireless Networking]     [Linux Wireless Personal Area Networking]     [Linux ATH6KL]     [Linux USB Devel]     [Linux Media Drivers]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [Big List of Linux Books]

  Powered by Linux