API Documentation

List of modules
API version
Asymmetric cryptography
Authenticated encryption with associated data (AEAD)
Built-in keys
Command Line Interface
CLI Commands in NVM3Support for CLI commands stored in and executed from NVM3
CLI Commands in RAMSupport for CLI commands stored in and executed from RAM
CLI DelayCLI Delay
Cpc_security_secondaryCPC Security Secondary
Cpc_system_commonCPC System Endpoint Common
Device InitializationDevice Initialization
Clock InitializationInitialize the clock tree
DCDC Boost InitializationInitialize the DC-DC Boost converter
DCDC InitializationInitialize the DC-DC converter
DPLL InitializationInitialize the Digital PLL
EMU InitializationInitialize the Energy Management Unit
HFRCO InitializationInitialize the HFRCO oscillator
HFXO InitializationInitialize the HFXO oscillator
LFRCO InitializationInitialize the LFRCO oscillator
LFXO InitializationInitialize the LFXO oscillator
NVIC InitializationInitialize the NVIC Interrupt Handlers priority
USB PLL InitializationInitialize the USB PLL
Error codes
External random generator
HFXO ManagerHFXO Manager
Helper macros
I/O StreamI/O Stream can be used to read/write different formats of data to various streams. The source files for I/O Stream platform software module are present under platform/services/iostream
I/O Stream CPCI/O Stream CPC
I/O Stream RTTI/O Stream RTT
I/O Stream STDLIB ConfigurationI/O Stream STDLIB Configuration
I/O Stream SWOI/O Stream SWO
I/O Stream UARTI/O Stream UART
I/O Stream USARTI/O Stream USART
Key and algorithm types
Key attributes
Key derivation
Key derivation and pseudorandom generation
Key import and export
Key lifetimes
Key management
Key policies
Legacy HALThe Legacy HAL is an implementation of the Hardware Abstraction Layer (HAL) that was used by the Zigbee EmberZNet and Flex Connect stacks before their transition to the new component-based architecture (Zigbee version 7.0 and Connect version 3.0). This component is not a complete duplicate of the old HAL. It only contains the most commonly used pieces to enable our networking stacks and sample applications and to support porting customer applications to the new component-based implementation. Currently, Zigbee and Connect sample applications are dependent on this component. Eventually, they will be ported to use new HAL components directly so that this component can become optional or be deprecated
Application Bootloader InterfaceDefinition of the application bootloader interface
ButtonSample API functions for using push-buttons
Common BootloaderCommon bootloader interface defines and functions
Cyclic Redundancy CheckFunctions that provide access to cyclic redundancy code (CRC) calculation. See crc.h for source code
DiagnosticsCrash and watchdog diagnostic functions
LEDSample API funtions for controlling LEDs
Microcontroller functionsMicrocontroller functions
Random generationFunctions that provide access to random numbers
Reset Cause DefinitionsDefinitions for all the reset cause types
SimEE2 to NVM3 Upgrade
Simulated EEPROM 1 and 2Simulated EEPROM 1 and 2 legacy storage
Standalone BootloaderDefinition of the standalone bootloader interface
Library initialization
Message authentication codes
Message digests
Microsecond DelayMicrosecond delay function
Password-authenticated key exchange (PAKE)This is a proposed PAKE interface for the PSA Crypto API. It is not part of the official PSA Crypto API yet
Power Manager
RAM execution disableRAM execution disable utilities can be used to disable execution from RAM and other selected memory regions
RAM interrupt vector initializationSimple utility to move the interrupt vector table to RAM
Secure Element Asymmetric CryptographySince the amount of data that can (or should) be encrypted or signed using asymmetric keys is limited by the key size, asymmetric key operations using keys in a secure element must be done in single function calls
Secure Element Authenticated Encryption with Additional DataAuthenticated Encryption with Additional Data (AEAD) operations with secure elements must be done in one function call. While this creates a burden for implementers as there must be sufficient space in memory for the entire message, it prevents decrypted data from being made available before the authentication operation is complete and the data is known to be authentic
Secure Element Key Derivation and AgreementKey derivation is the process of generating new key material using an existing key and additional parameters, iterating through a basic cryptographic function, such as a hash. Key agreement is a part of cryptographic protocols that allows two parties to agree on the same key value, but starting from different original key material. The flows are similar, and the PSA Crypto Driver Model uses the same functions for both of the flows
Secure Element Key ManagementCurrently, key management is limited to importing keys in the clear, destroying keys, and exporting keys in the clear. Whether a key may be exported is determined by the key policies in place on the key slot
Secure Element Message Authentication CodesGeneration and authentication of Message Authentication Codes (MACs) using a secure element can be done either as a single function call (via the psa_drv_se_mac_generate_t or psa_drv_se_mac_verify_t functions), or in parts using the following sequence:
Secure Element Symmetric CiphersEncryption and Decryption using secure element keys in block modes other than ECB must be done in multiple parts, using the following flow:
Secure Engine ManagerSilicon Labs Secure Engine Manager
AttestationSystem and configuration attestation
CipherSymmetric encryption, AEAD and MAC
CoreSecure Engine Manager Core API
EntropyRandom number generators
HashingProvides cryptographic hash functions (SHA-1, SHA-224, SHA-256, SHA-384, SHA-512)
Key derivationAPI for key derivation and key agreement (ECDH, EC J-PAKE, HKDF, PBKDF2)
Key handlingSecure Engine key handling API
SignatureDigital Signature Algorithms (ECDSA, EdDSA)
UtilitiesDevice initialisation, debug lock, upgrade functionality, user data..
Tamper optionsTamper configuration options. Levels, signals and filter options
Secure element driver initialization
Secure element driver registration
Accelerated AES Block CipherAccelerated AES block cipher for the mbed TLS API using the AES, CRYPTO, CRYPTOACC or SE peripheral
Accelerated AES-CCM AEAD CipherAccelerated AES-CCM AEAD cipher for the mbed TLS API using the CRYPTOACC or SE peripheral
Accelerated AES-CMAC CipherAccelerated AES-CMAC cipher for the mbed TLS API using the CRYPTOACC or SE peripheral. This implementation builds on the PSA Crypto drivers (sl_psa_drivers)
Accelerated Elliptic Curve J-PAKEAccelerated Elliptic Curve J-PAKE for the mbed TLS API using the SE peripheral
Accelerated GCM AES-128 CipherAccelerated AES-GCM-128 cipher for the mbed TLS API using the CRYPTOACC or SE peripheral
Accelerated SHA-1 Hash FunctionAccelerated mbed TLS SHA-1 cryptographic hash function for the mbed TLS API using Silicon Labs peripherals. This implementation builds on the PSA Crypto drivers (sl_psa_drivers)
Accelerated SHA-224/SHA-256 Hash FunctionAccelerated mbed TLS SHA-224/SHA-256 cryptographic hash functions for the mbed TLS API using Silicon Labs peripherals. This implementation builds on the PSA Crypto drivers (sl_psa_drivers)
Accelerated SHA-384/SHA-512 Hash FunctionAccelerated mbed TLS SHA-384/SHA-512 cryptographic hash function for the mbed TLS API using Silicon Labs peripherals. This implementation builds on the PSA Crypto drivers (sl_psa_drivers)
Cryptography Hardware Acceleration ConfigurationConfiguration macros for Silicon Labs CRYPTO hardware acceleration mbed TLS plugins
Threading PrimitivesThreading primitive implementation for mbed TLS
Sleep Timer
Symmetric ciphers
System Initialization and Action ProcessingSystem Initialization and Action Processing
TLS helper functions
Token ManagerRoutines for working with tokens