This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

Crypto libraries for PCA10056

Hello !

I try to understand all available crypto libraries in SDK 17.1.0 what is applicable for nRF52840 and CC310 cryptocell.

https://infocenter.nordicsemi.com/topic/sdk_nrf5_v17.1.0/lib_crypto.html

 I would like to evaluate performance of cc310 enabled libraries with and without interrupts for gcc compiler.

I can see folders like nrf_cc310, nrf_cc310_bl, pca10056_bl_noint

Could you explain to me all difference between those notations and multiple tests.

I need to identify cc310 enabled tests with and without interrupts for nRF52840 only.

Do you have any own performance benchmarks for cc310 cryptocell ?

Regards,

Eugene

  • Hello !

    I forgot one other option. Can I use mbedtls's crypto API where some algos accelerated by cc310 ?

    Do you have this kind of binding in SDK ? How stable it for nRF52840 ?

    Regards,

    Eugene

  • Hello Eugene,

    Thanks for your queries. Here are some answers:

    ''I would like to evaluate performance of cc310 enabled libraries with and without interrupts for gcc compiler.

    I can see folders like nrf_cc310, nrf_cc310_bl, pca10056_bl_noint. Could you explain to me all difference between those notations and multiple tests?''

    In nRF5 SDK, the CC310 functionality is mostly used through the nrf_crypto APIs , the link you gave in your description. The nrf_cc310 library handles enabling/disabling of CryptoCell HW and interrupts internally. This is for backend operation. This nrf_cc310 library has single user requirement as it ca not allow multiple calls to access HW at a time (read moe here: Nordic Semiconductor Infocenter). The way you can enable an nrf_crypto backend is like - You have to set the NRF_CRYPTO_<XXXX>_BACKEND_ENABLED . 

    For example (Nordic Semiconductor Infocenter): 

    #ifndef NRF_CRYPTO_BACKEND_CC310_ENABLED
    #define NRF_CRYPTO_BACKEND_CC310_ENABLED 1
    #endif
     
    nrf_cc310_bl:  This runtime library is also for backend operation which provides selected cryptographic functionality for use in bootloader and DFU (Device Firmware Update) specific use case for hardware accelerated cryptography through the Arm CC310 cryptocell.  It also cannot facilitate multiple calls that require hardware access at the same time. The configuration is same as the previous library we discussed. For further knowing,  you can follow this link Nordic Semiconductor Infocenter
    Regarding with and without interrupts for GCC compiler- It comes from the CC310 runtime library binaries being available in two variants. One use interrupts so that the CPU can do other things or go to sleep while waiting for CryptoCell to preform an operation, and other do not use interrupts and instead simply wait for a event to be occurred (have a while loop). We have both for with and without interrupts. 
    ''Do you have any own performance benchmarks for cc310 cryptocell ?''
    I have asked this to our team. Will get back to you when I will have the answer. 
    Best Regards,
    Kazi Afroza Sultana
  • Regarding performance benchmarks, we actually do not have anything specific to share with customer. In this link you can find cryptography test  Cryptography tests — nRF Connect SDK 1.8.99 documentation (nordicsemi.com) in NCS. And here is the test examples for nRF5 SDK (Nordic Semiconductor Infocenter). None of them are benchmarks though. You can run these crypto tests which will print execution time for different algorithms. There are some crypto tests in 17.1; examples/crypto/nrf_crypto/test_app/..

Related