API Documentation

List of modules
API version
Ash
Asn1_module
Asymmetric cryptography
Authenticated encryption with associated data (AEAD)
Built-in keys
CPC CPC
Command Line Interface
CLI Commands in NVM3 Support for CLI commands stored in and executed from NVM3
CLI Commands in RAM Support for CLI commands stored in and executed from RAM
CLI Delay CLI Delay
Cpc_security_secondary CPC Security Secondary
Cpc_system_common CPC System Endpoint Common
Device Initialization Device Initialization
Clock Initialization Initialize the clock tree
DCDC Initialization Initialize the DC-DC converter
DPLL Initialization Initialize the Digital PLL
EMU Initialization Initialize the Energy Management Unit
HFRCO Initialization Initialize the HFRCO oscillator
HFXO Initialization Initialize the HFXO oscillator
LFRCO Initialization Initialize the LFRCO oscillator
LFXO Initialization Initialize the LFXO oscillator
NVIC Initialization Initialize the NVIC Interrupt Handlers priority
USB PLL Initialization Initialize the USB PLL
Em2xx_resets
Error codes
External random generator
HFXO Manager HFXO Manager
Helper macros
I/O Stream I/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 EUSART I/O Stream EUSART
I/O Stream LEUART I/O Stream LEUART
I/O Stream RTT I/O Stream RTT
I/O Stream STDLIB Configuration I/O Stream STDLIB Configuration
I/O Stream SWO I/O Stream SWO
I/O Stream UART I/O Stream UART
I/O Stream USART I/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 HAL The 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 Interface Definition of the application bootloader interface
Button Sample API functions for using push-buttons
Common Bootloader Common bootloader interface defines and functions
Cyclic Redundancy Check Functions that provide access to cyclic redundancy code (CRC) calculation. See crc.h for source code
Diagnostics Crash and watchdog diagnostic functions
LED Sample API funtions for controlling LEDs
Microcontroller functions Microcontroller functions
Random generation Functions that provide access to random numbers
Reset Cause Definitions Definitions for all the reset cause types
SimEE2 to NVM3 Upgrade
Simulated EEPROM 1 and 2 Simulated EEPROM 1 and 2 legacy storage
Standalone Bootloader Definition of the standalone bootloader interface
Library initialization
Message authentication codes
Message digests
Microsecond Delay Microsecond 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 disable RAM execution disable utilities can be used to disable execution from RAM and other selected memory regions
RAM interrupt vector initialization Simple utility to move the interrupt vector table to RAM
Secure Element Asymmetric Cryptography Since 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 Data Authenticated 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 Agreement Key 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 Management Currently, 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 Codes Generation 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 Ciphers Encryption and Decryption using secure element keys in block modes other than ECB must be done in multiple parts, using the following flow:
Secure Engine Manager Silicon Labs Secure Engine Manager
Attestation System and configuration attestation
Cipher Symmetric encryption, AEAD and MAC
Core Secure Engine Manager Core API
Entropy Random number generators
Hashing Provides cryptographic hash functions (SHA-1, SHA-224, SHA-256, SHA-384, SHA-512)
Key derivation API for key derivation and key agreement (ECDH, EC J-PAKE, HKDF, PBKDF2)
Key handling Secure Engine key handling API
Signature Digital Signature Algorithms (ECDSA, EdDSA)
Utilities Device initialisation, debug lock, upgrade functionality, user data..
Tamper options Tamper configuration options. Levels, signals and filter options
Secure element driver initialization
Secure element driver registration
Sl_crypto
Accelerated AES Block Cipher Accelerated AES block cipher for the mbed TLS API using the AES, CRYPTO, CRYPTOACC or SE peripheral
Accelerated AES-CCM AEAD Cipher Accelerated AES-CCM AEAD cipher for the mbed TLS API using the CRYPTOACC or SE peripheral
Accelerated AES-CMAC Cipher Accelerated 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-PAKE Accelerated Elliptic Curve J-PAKE for the mbed TLS API using the SE peripheral
Accelerated GCM AES-128 Cipher Accelerated AES-GCM-128 cipher for the mbed TLS API using the CRYPTOACC or SE peripheral
Accelerated SHA-1 Hash Function Accelerated 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 Function Accelerated 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 Function Accelerated 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 Configuration Configuration macros for Silicon Labs CRYPTO hardware acceleration mbed TLS plugins
Threading Primitives Threading primitive implementation for mbed TLS
Sleep Timer
Symmetric ciphers
System Initialization and Action Processing System Initialization and Action Processing
TLS helper functions
Token Manager Routines for working with tokens
X509_module