mbed-os/features/cryptocell/FEATURE_CRYPTOCELL310
Ron Eldor 9f4e752ef3 Modify HW accelerator drivers to new error code
Have the HW accelearation drivers return the platform module
errors about feature unsupported, and hw acceleration failure,
because the moduel specific errors will be removed.
2018-11-11 09:59:18 +02:00
..
TARGET_MCU_NRF52840 Change Mbed TLS platform error code and value 2018-10-15 16:21:54 +03:00
binaries Remove redundant Cryptocell libraries 2018-05-31 18:15:25 +03:00
include Change Cryptocell target to a feature 2018-05-21 13:40:43 +03:00
Readme.md Add reference counter for platform context 2018-06-04 10:38:49 +03:00
cc_internal.c Modify HW accelerator drivers to new error code 2018-11-11 09:59:18 +02:00
cc_internal.h Modify HW accelerator drivers to new error code 2018-11-11 09:59:18 +02:00
ccm_alt.c Modify HW accelerator drivers to new error code 2018-11-11 09:59:18 +02:00
ccm_alt.h Change Cryptocell target to a feature 2018-05-21 13:40:43 +03:00
ecdh_alt.c Modify HW accelerator drivers to new error code 2018-11-11 09:59:18 +02:00
ecdsa_alt.c Modify HW accelerator drivers to new error code 2018-11-11 09:59:18 +02:00
ecdsa_alt.c.mod Change Cryptocell target to a feature 2018-05-21 13:40:43 +03:00
mbedtls_device.h Change Cryptocell target to a feature 2018-05-21 13:40:43 +03:00
objects_cryptocell.h Change Cryptocell target to a feature 2018-05-21 13:40:43 +03:00
sha1_alt.c Modify HW accelerator drivers to new error code 2018-11-11 09:59:18 +02:00
sha1_alt.h Change Cryptocell target to a feature 2018-05-21 13:40:43 +03:00
sha256_alt.c Modify HW accelerator drivers to new error code 2018-11-11 09:59:18 +02:00
sha256_alt.h Change Cryptocell target to a feature 2018-05-21 13:40:43 +03:00
trng.c Fix build error on IAR 2018-09-02 10:48:31 +03:00

Readme.md

Guidelines for porting Cryptocell to Mbed OS

Cryptocell (CC) 310 is a hardware accelerator that can be ported to several boards, assuming these boards have CC 310 embedded in their hardware.

The CC 310 driver consists of three libraries:

  • A common core library(libcc_core.a).
  • A platform-specific TRNG library, containing TRNG-related information, for sampling sufficient entropy on the specific platform(libcc_trng.a).
  • A platform-specific library containing extra information, such as the CC register's base addresses on the specific board. (libcc_ext.a)

To port your CC 310 driver to Mbed OS on your specific target, do the following:

  1. In targets.json add the following to your target:
    • MBEDTLS_CONFIG_HW_SUPPORT to macros_add key. This instructs Mbed TLS to look for an alternative cryptographic implementation.
    • CRYPTOCELL310 to feature. Use this in your common code that you need to remove from compilation in case CC exists in your board. Use #if !defined(FEATURE_CRYPTOCELL310) and #if defined(FEATURE_CRYPTOCELL310).
  2. In objects.h, include objects_cryptocell.h. You can use the FEATURE_CRYPTOCELL310 precompilation check as defined above.
  3. In features/cryptocell/FEATURE_CRYPTOCELL310/TARGET_<target name>, add your platform-specific libraries for all toolchains in TOOLCHAIN_ARM, TOOLCHAIN_GCC_ARM and TOOLCHAIN_IAR respectively.
  4. Add your CC setup code:
    • Implement crypto_platform_setup() and crypto_platform_terminate() to enable CC on your platform, in case you have board-specific setup functionality, required for CC setup. You MUST call 'SaSi_LibInit()` and 'SaSi_LibFini()' respectively in these functions.
    • Define crypto_platform_ctx in crypto_platform.h in a way that suits your implementation.