Edited: It appears any use of NRF_CRYPTO_BACKEND_CC310_BL breaks joining.
Environment: nRF52840; SES; nRF5_SDK_for_Thread_and_Zigbee_v4.0.0_dc7186b
I am implementing Thread DFU on nRF52840 and would like to use CC310 hardware crypto wherever possible. I understand the OpenThread stack for nRF52840 also uses the CC310 backend, especially for Joining.
I found that if I enable (in sdk_config.h):
NRF_CRYPTO_BACKEND_CC310_BL_ENABLED,
NRF_CRYPTO_BACKEND_CC310_BL_HASH_SHA256R1_ENABLED, and
NRF_CRYPTO_BACKEND_CC310_BL_ECC_SECP256R1_ENABLED
the device is unable to complete the Joiner (Commissioning) process successfully. Join attempts timeout.
I notice that the example 'thread_secure_dfu_client_pca10056' uses micro_ecc for SECP256K1 and nrf_sw_hash for SHA-256. I had previously assumed this was to be compatible with the devices that lack a CC310, but now I am starting to wonder.
Are there any restrictions on *application* use of the CC310_BL or CC310 backends for projects using the OpenThread library?
Thanks,
Rob