API Documentation
List of modules
API version | |
Ash | |
Asn1_module | |
Asymmetric cryptography | |
Authenticated encryption with associated data (AEAD) | |
Built-in keys | |
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 |
RFFPLL Initialization | Initialize the Digital RFFPLL (Radio Frequency Friendly Phase Locked Loop) |
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 CPC | I/O Stream CPC |
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) |
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 |