mirror of
https://github.com/bluekitchen/btstack.git
synced 2025-04-01 04:20:33 +00:00
mesh: add iv_index to provisioning data
This commit is contained in:
parent
d46d01aaa4
commit
6c38b88869
@ -276,9 +276,6 @@ static void mesh_provisioning_message_handler (uint8_t packet_type, uint16_t cha
|
|||||||
// get provisioning data
|
// get provisioning data
|
||||||
provisioning_device_data_get(&provisioning_data);
|
provisioning_device_data_get(&provisioning_data);
|
||||||
|
|
||||||
// set iv_index
|
|
||||||
mesh_set_iv_index(provisioning_device_data_get_iv_index());
|
|
||||||
|
|
||||||
// setup primary network with provisioned netkey
|
// setup primary network with provisioned netkey
|
||||||
primary_network_key = provisioning_device_data_get_network_key();
|
primary_network_key = provisioning_device_data_get_network_key();
|
||||||
mesh_network_key_add(primary_network_key);
|
mesh_network_key_add(primary_network_key);
|
||||||
|
@ -1697,12 +1697,18 @@ static void mesh_access_secure_network_beacon_handler(uint8_t packet_type, uint1
|
|||||||
}
|
}
|
||||||
|
|
||||||
void mesh_access_setup_from_provisioning_data(const mesh_provisioning_data_t * provisioning_data){
|
void mesh_access_setup_from_provisioning_data(const mesh_provisioning_data_t * provisioning_data){
|
||||||
|
|
||||||
|
// set iv_index and iv index update active
|
||||||
|
int iv_index_update_active = (provisioning_data->flags & 2) >> 1;
|
||||||
|
mesh_iv_index_recovered(iv_index_update_active, provisioning_data->iv_index);
|
||||||
|
|
||||||
// set unicast address
|
// set unicast address
|
||||||
mesh_node_primary_element_address_set(provisioning_data->unicast_address);
|
mesh_node_primary_element_address_set(provisioning_data->unicast_address);
|
||||||
|
|
||||||
// set device_key
|
// set device_key
|
||||||
mesh_transport_set_device_key(provisioning_data->device_key);
|
mesh_transport_set_device_key(provisioning_data->device_key);
|
||||||
|
|
||||||
|
|
||||||
// Mesh Proxy
|
// Mesh Proxy
|
||||||
#ifdef ENABLE_MESH_PROXY_SERVER
|
#ifdef ENABLE_MESH_PROXY_SERVER
|
||||||
// Setup Proxy
|
// Setup Proxy
|
||||||
|
@ -134,6 +134,9 @@ typedef struct {
|
|||||||
// Key Refresh Phase 0 vs. 2, IV Update Active
|
// Key Refresh Phase 0 vs. 2, IV Update Active
|
||||||
uint8_t flags;
|
uint8_t flags;
|
||||||
|
|
||||||
|
// IV Index
|
||||||
|
uint32_t iv_index;
|
||||||
|
|
||||||
} mesh_provisioning_data_t;
|
} mesh_provisioning_data_t;
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
|
@ -903,6 +903,7 @@ mesh_network_key_t * provisioning_device_data_get_network_key(void){
|
|||||||
|
|
||||||
void provisioning_device_data_get(mesh_provisioning_data_t * provisioning_data){
|
void provisioning_device_data_get(mesh_provisioning_data_t * provisioning_data){
|
||||||
provisioning_data->unicast_address = unicast_address;
|
provisioning_data->unicast_address = unicast_address;
|
||||||
|
provisioning_data->iv_index = iv_index;
|
||||||
provisioning_data->flags = flags;
|
provisioning_data->flags = flags;
|
||||||
memcpy(provisioning_data->device_key, device_key, 16);
|
memcpy(provisioning_data->device_key, device_key, 16);
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user