diff mbox series

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

Message ID 20200311223712.31784-1-inga.stotland@intel.com (mailing list archive)
State Accepted
Delegated to: Brian Gix
Headers show
Series [BlueZ] test/test-mesh: Add support for static OOB in the agent | expand

Commit Message

Stotland, Inga March 11, 2020, 10:37 p.m. UTC
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(+)

Comments

Brian Gix March 12, 2020, 6:20 p.m. UTC | #1
Applied, with Static OOB enabled by default
On Wed, 2020-03-11 at 15:37 -0700, Inga Stotland wrote:
> 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')
diff mbox series

Patch

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')