2020-01-09 11:32:11

by Michał Lowas-Rzechonek

[permalink] [raw]
Subject: [PATCH BlueZ] mesh: Allow apps to receive DevKey messages from external nodes

After introducing "remote" flag for DevKeyMessageReceived in
c8cd5b04ccd865deeb90b70ea649c0b6cc0385e6, we can now allow applications
to received DevKey messages from external addresses as well as from
local ones.

This enables applications to properly implement models using DevKey
security, by accepting only requests with "remote" flag set to false.
---
mesh/model.c | 3 +--
1 file changed, 1 insertion(+), 2 deletions(-)

diff --git a/mesh/model.c b/mesh/model.c
index acdd94f7b..6d7674ee5 100644
--- a/mesh/model.c
+++ b/mesh/model.c
@@ -1066,8 +1066,7 @@ bool mesh_model_rx(struct mesh_node *node, bool szmict, uint32_t seq0,
forward.app_idx, forward.size,
forward.data);
else if (decrypt_idx == APP_IDX_DEV_REMOTE ||
- (decrypt_idx == APP_IDX_DEV_LOCAL &&
- mesh_net_is_local_address(net, src, 1)))
+ decrypt_idx == APP_IDX_DEV_LOCAL)
send_dev_key_msg_rcvd(node, i, src, decrypt_idx,
0, forward.size, forward.data);
}
--
2.19.1


2020-01-14 14:39:43

by Gix, Brian

[permalink] [raw]
Subject: Re: [PATCH BlueZ] mesh: Allow apps to receive DevKey messages from external nodes

Applied
On Thu, 2020-01-09 at 11:32 +0100, Michał Lowas-Rzechonek wrote:
> After introducing "remote" flag for DevKeyMessageReceived in
> c8cd5b04ccd865deeb90b70ea649c0b6cc0385e6, we can now allow applications
> to received DevKey messages from external addresses as well as from
> local ones.
>
> This enables applications to properly implement models using DevKey
> security, by accepting only requests with "remote" flag set to false.
> ---
> mesh/model.c | 3 +--
> 1 file changed, 1 insertion(+), 2 deletions(-)
>
> diff --git a/mesh/model.c b/mesh/model.c
> index acdd94f7b..6d7674ee5 100644
> --- a/mesh/model.c
> +++ b/mesh/model.c
> @@ -1066,8 +1066,7 @@ bool mesh_model_rx(struct mesh_node *node, bool szmict, uint32_t seq0,
> forward.app_idx, forward.size,
> forward.data);
> else if (decrypt_idx == APP_IDX_DEV_REMOTE ||
> - (decrypt_idx == APP_IDX_DEV_LOCAL &&
> - mesh_net_is_local_address(net, src, 1)))
> + decrypt_idx == APP_IDX_DEV_LOCAL)
> send_dev_key_msg_rcvd(node, i, src, decrypt_idx,
> 0, forward.size, forward.data);
> }