name=Network Creator Security

description=This plugin will perform the necessary security initialization to form a ZigBee 3.0 compliant network.

quality=production
qualityString=Production Ready

category=ZigBee 3.0

trigger.disable_plugin=ZIGBEE_DEVICE_TYPE:!COORDINATOR

providedApis=network-creator-security
api.network-creator-security.header=network-creator-security.h

implementedCallbacks=emberAfPluginNetworkCreatorSecurityStackStatusCallback

sourceFiles=network-creator-security.c, network-creator-security-cli.c

events=openNetwork

options=networkOpenTimeS,trustCenterSupport,allowHaDevicesToStay,bdbJoinUsesInstallCodeKey,allowTcRejoinWithWellKnownKey,allowTcRejoinsUsingWellKnownKeyTimeoutSec

networkOpenTimeS.name=Network Open Time (seconds)
networkOpenTimeS.description=The time, in seconds, that the network will remain open.
networkOpenTimeS.type=NUMBER:0,65535
networkOpenTimeS.default=300

trustCenterSupport.name=Trust Center Support
trustCenterSupport.description=Set this option to true to include trust center security support in this plugin. If the option is set to false, then the application will only support creating distributed security networks.
trustCenterSupport.type=BOOLEAN
trustCenterSupport.default=TRUE

allowHaDevicesToStay.name=Allow Home Automation Devices to remain on network (non-compliant)
allowHaDevicesToStay.description=Set this option to allow Home Automation devices to remain on the network after joining.
allowHaDevicesToStay.type=BOOLEAN
allowHaDevicesToStay.default=TRUE

bdbJoinUsesInstallCodeKey.name=Trust Center requires install code for joining
bdbJoinUsesInstallCodeKey.description=The TC will allow joining of a device through install code only. Applications that implement the emberAfPluginNetworkCreatorSecurityGetInstallCodeCallback callback will be given a chance to add an install code for a joining device during the join procedure.
bdbJoinUsesInstallCodeKey.type=BOOLEAN
bdbJoinUsesInstallCodeKey.default=FALSE

allowTcRejoinWithWellKnownKey.name=Allow Trust Center rejoin with well known key
allowTcRejoinWithWellKnownKey.description=The TC will allow rejoining of a device using the well known key for the number of seconds mentioned in the timeout option below.
allowTcRejoinWithWellKnownKey.type=BOOLEAN
allowTcRejoinWithWellKnownKey.default=FALSE

allowTcRejoinsUsingWellKnownKeyTimeoutSec.name=Allow Trust Center rejoin with well known key timeout (seconds)
allowTcRejoinsUsingWellKnownKeyTimeoutSec.description=The TC will allow rejoining of a device using the well known key for the seconds mentioned here unless it has been set to 0 in which case trust center rejoin with well known key will be allowed forever.
allowTcRejoinsUsingWellKnownKeyTimeoutSec.type=NUMBER:0,65535
allowTcRejoinsUsingWellKnownKeyTimeoutSec.default=0
allowTcRejoinsUsingWellKnownKeyTimeoutSec.dependsOn=allowTcRejoinWithWellKnownKey

setup(bookkeeping) {
  init=emberAfPluginNetworkCreatorSecurityInitCallback
  zigbeeKeyEstablishment=emberAfPluginNetworkCreatorSecurityZigbeeKeyEstablishmentCallback
}
