mbed-os/features/cryptocell/FEATURE_CRYPTOCELL310
Ron Eldor 479438953f Rename error codes
1. Rename error codes to fit Mbed TLS error code names.
2. Remove the Invalid input error code, as it's not used anymore.
2018-08-29 19:02:57 +03:00
..
TARGET_MCU_NRF52840 Rename error codes 2018-08-29 19:02:57 +03:00
binaries Change Cryptocell target to a feature 2018-05-21 13:40:43 +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 Change Cryptocell target to a feature 2018-05-21 13:40:43 +03:00
cc_internal.h Change Cryptocell target to a feature 2018-05-21 13:40:43 +03:00
ccm_alt.c Check the size_t isn't larger than 32 bit 2018-05-23 08:37:27 +03:00
ccm_alt.h Change Cryptocell target to a feature 2018-05-21 13:40:43 +03:00
ecdh_alt.c Change Cryptocell target to a feature 2018-05-21 13:40:43 +03:00
ecdsa_alt.c Check the size_t isn't larger than 32 bit 2018-05-23 08:37:27 +03: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 Change Cryptocell target to a feature 2018-05-21 13:40:43 +03:00
sha1_alt.h Change Cryptocell target to a feature 2018-05-21 13:40:43 +03:00
sha256_alt.c Change Cryptocell target to a feature 2018-05-21 13:40:43 +03:00
sha256_alt.h Change Cryptocell target to a feature 2018-05-21 13:40:43 +03:00
trng.c Make the platform context a global variable 2018-08-28 20:29:26 +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.