The nrf_cc310_bl backend provides functionality to use the nrf_cc310_bl runtime library in nrf_crypto. This runtime library is only available in nRF52840 devices that provide hardware accelerated cryptography through the ARM CC310. This runtime library provides selected cryptographic functionality for use in bootloader-specific use cases.
- Note
- All APIs in this backend are intended to be internal to nrf_crypto.
Configuration
See Configuring nrf_crypto frontend and backends for details on enabling this backend.
Available frontend API
See Cryptography library - nrf_crypto for nrf_crypto APIs that can use this backend.
nrf_cc310_bl runtime library
The nrf_cc310_bl is a runtime library designed to perform selected cryptographic functionality on devices that feature the ARM TrustZone CC310 CryptoCell hardware. It is designed to be size-optimized and intended for use cases involving the bootloader and DFU.
For more information about CC310, see nRF52840 Product Specification .
- Note
- In the nRF5 SDK, the CC310 functionality is most commonly used through the nrf_crypto APIs. See Cryptography library - nrf_crypto .
The nrf_cc310_bl runtime library provides functionality to do ECDSA verify using curve secp256r1 and secp224r1 using SHA-256.
Header files for this library are available in the folder
<InstallFolder>\sdk\nrf5\external\nrf_cc310_bl\include
.
The library in its different versions is available in the folder
<InstallFolder>\sdk\nrf5\external\nrf_cc310_bl\lib
.
- Note
- The ARM CryptoCell 310 hardware with the accompanying nrf_cc310_bl library has a single user requirement, which means it cannot facilitate multiple calls that require hardware access at the same time. If the nrf_cc310 library is used directly through its APIs, it uses a different mutex strategy, where multiple access to the hardware is protected by a mutex that is acquired with an infinite lock. Note that calling the APIs from different interrupt priorities can potentially lead to deadlock scenarios due to the infinite locking strategy.
- The nrf_cc310 library handles enabling and disabling of the CryptoCell hardware and interrupts internally.
Supported IDEs
| IDE | Library file name |
|---|---|
| GCC and IAR 8.x | <arch>/hard-float/libnrf_cc310_bl_<version>.a |
| IAR 7.80.x | <arch>/hard-float/short_vchar/libnrf_cc310_bl_<version>.a |
| Keil | <arch>/hard-float/short_wchar/nrf_cc310_bl_<version>.lib |