Network Creator Security#

API and Callbacks for the Network Creator Security Component.

This component performs the necessary security initialization to form a Zigbee 3.0-compliant network. To enable "Allow Trust Center rejoin with well known key", the "sl_zigbee_xncp_security_trust_center_join_cb()" function (on the NCP side) may need to be implemented. For more details about this callback function, see "https://www.silabs.com/community/wireless/zigbee-and-thread/knowledge-base.entry.html/2018/12/26/how_to_allow_unsecur-sa3C". If the link does not work, go to our community website and search "How to allow unsecure rejoins on the Ember ZNet stack".

API#

Initialize the security needed for forming and then operating on a network.

sl_zigbee_af_network_creator_security_open_network_with_key_pair(sl_802154_long_addr_t eui64, sl_zigbee_key_data_t keyData)

Set the network to accept the install code only.

Set the insecure rejoin policy for devices using the well-known key.

Variables#

Macros#

#define
SL_ZIGBEE_AF_PLUGIN_NETWORK_CREATOR_SECURITY_PLUGIN_NAME "NWK Creator Security"

API Documentation#

sl_zigbee_af_network_creator_security_start#

sl_status_t sl_zigbee_af_network_creator_security_start (bool centralizedNetwork)

Initialize the security needed for forming and then operating on a network.

Parameters
TypeDirectionArgument NameDescription
boolN/AcentralizedNetwork

Whether or not the network that the caller plans to form will use centralized or distributed security.

The centralizedNetwork parameter allows the caller to specify whether or not the network that they plan to form will use centralized or distributed security.

Returns

  • Status of the commencement of the network creator process.


sl_zigbee_af_network_creator_security_open_network#

sl_status_t sl_zigbee_af_network_creator_security_open_network (void )

Open a network for joining.

Parameters
TypeDirectionArgument NameDescription
voidN/A

This API broadcasts a permit join to the network and adds a transient link key of ZigBeeAlliance09 if this device is a trust center.

Returns

  • An sl_status_t value describing the success or failure of the network opening procedure. If this node is not currently on a network, this will return SL_STATUS_FAIL.


sl_zigbee_af_network_creator_security_close_network#

sl_status_t sl_zigbee_af_network_creator_security_close_network (void )

Close the network.

Parameters
TypeDirectionArgument NameDescription
voidN/A

This API closes the network for joining. It broadcasts a permit join to the network with time 0, as well as clears any transient link keys in the stack.

Returns

  • An sl_status_t value describing closing the network. If this node is not currently on a network, this will return SL_STATUS_FAIL. This API will also return an error code based on the success or failure of the broadcast permit join.


sl_zigbee_af_network_creator_security_open_network_with_key_pair#

sl_status_t sl_zigbee_af_network_creator_security_open_network_with_key_pair (sl_802154_long_addr_t eui64, sl_zigbee_key_data_t keyData)

Set the network to accept the install code only.

Parameters
TypeDirectionArgument NameDescription
sl_802154_long_addr_tN/Aeui64

EUI 64 of the joining node.

sl_zigbee_key_data_tN/AkeyData

the link key to be used by the joining node.

This API opens a network for joining. It broadcasts a permit join to the network and adds a specified EUI64 and transient key pair if this device is a trust center. Only the node that matches the specified key pair is allowed to join the network.

Returns

  • An sl_status_t value describing the success or failure of the network opening procedure. If this node is not currently on a network, this will return SL_STATUS_FAIL.


sl_zigbee_af_network_creator_security_set_allow_rejoins_with_well_known_key#

sl_status_t sl_zigbee_af_network_creator_security_set_allow_rejoins_with_well_known_key (bool allow)

Set the insecure rejoin policy for devices using the well-known key.

Parameters
TypeDirectionArgument NameDescription
boolN/Aallow

This API sets the policy for Trust Center (insecure) rejoins for devices using the well-known key. Sending a network key to devices using the well- known key is a security risk and the default policy of the stack is to deny such rejoins. Calling this function to allow rejoins with the well-known key will allow the rejoins for a period of sli_zigbee_allow_tc_rejoins_using_well_known_key_timeout_sec seconds.

Returns

  • An sl_status_t value describing the success or failure of the policy change. If this node is not currently on a network, this will return SL_STATUS_FAIL.


Variable Documentation#

allowHaDevices#

bool allowHaDevices