Hi Nordic team,
I'm currently working on a device onboarding flow using the nRF Connect SDK Toolchain v2.6.0 on an nRF52840 board. The onboarding process involves:
-
Generating RSA public/private key pairs
-
Performing AES-256 encryption
To improve performance, I have enabled the hardware crypto accelerator with:
CONFIG_PSA_CRYPTO_DRIVER_CC3XX=y
However, I discovered that the CC3XX does not support AES-256 key generation, so I need to fall back to software (e.g., Mbed TLS) for AES-256 operations.
The problem is, when I disable the hardware accelerator to make AES-256 work in software, the RSA key generation falls back to software as well, and takes more than 2 minutes, which is too slow for my use case.
What I'm Trying to Achieve:
I'd like to configure NCS v2.6.0 such that:
-
RSA key pair generation continues to use the CC3XX hardware accelerator
-
AES-256 encryption is performed using software fallback (Mbed TLS)
In short, I need selective hardware acceleration:
-
Use CC3XX only for RSA
-
Use software for AES-256
Questions:
-
Is this type of configuration supported in NCS v2.6.0 for the nRF52840?
-
If yes, what is the correct way to configure it (e.g.,
prj.conforoverlaysettings)? -
Is there a way to confirm which crypto backend (hardware vs. software) is being used for each operation?
Any guidance, configuration examples, or best practices would be greatly appreciated.
Thanks in advance!