mesh: add iv_index to provisioning data

This commit is contained in:
Matthias Ringwald 2019-07-11 17:38:09 +02:00
parent d46d01aaa4
commit 6c38b88869
4 changed files with 10 additions and 3 deletions

View File

@ -276,9 +276,6 @@ static void mesh_provisioning_message_handler (uint8_t packet_type, uint16_t cha
// 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
primary_network_key = provisioning_device_data_get_network_key();
mesh_network_key_add(primary_network_key);

View File

@ -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){
// 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
mesh_node_primary_element_address_set(provisioning_data->unicast_address);
// set device_key
mesh_transport_set_device_key(provisioning_data->device_key);
// Mesh Proxy
#ifdef ENABLE_MESH_PROXY_SERVER
// Setup Proxy

View File

@ -134,6 +134,9 @@ typedef struct {
// Key Refresh Phase 0 vs. 2, IV Update Active
uint8_t flags;
// IV Index
uint32_t iv_index;
} mesh_provisioning_data_t;
#ifdef __cplusplus

View File

@ -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){
provisioning_data->unicast_address = unicast_address;
provisioning_data->iv_index = iv_index;
provisioning_data->flags = flags;
memcpy(provisioning_data->device_key, device_key, 16);
}