Hello,
my application is running without TF-M and I store a password persistently in trusted memory using "psa_import_key()".
This works with SDK 2.4.2. After that I made a new firmware using 2.6.1. and changed CONFIG_PSA_NATIVE_ITS to CONFIG_TRUSTED_STORAGE. After the firmware update (No mass erase!) the application doesn't find the password anymore.
For SDK 2.6.x there is a migration guide which explains this behavior:
Migration guide for nRF Connect SDK v2.6.0 (nordicsemi.com)
"The Kconfig option ``CONFIG_PSA_NATIVE_ITS`` is replaced by the Kconfig option :kconfig:option:`CONFIG_TRUSTED_STORAGE`, which enables the new :ref:`trusted_storage_readme` library.
The :ref:`trusted_storage_readme` library provides the PSA Internal Trusted Storage (ITS) API for build targets without TF-M.
It is not backward compatible with the previous PSA ITS implementation.
Migrating from the PSA ITS implementation, enabled by the ``CONFIG_PSA_NATIVE_ITS`` option, to the new :ref:`trusted_storage_readme` library requires manual data migration."
So, is my understanding right: If I do use TF-M with 2.4.2 and update to 2.6.1 the password could be still accessed without manual data migration?
Currently my application is in the development phase. So the lost of the password (without manual data migration) is not a big problem.
Due to secure development life cycle in production phase there is the need to update the application regularly by the customer with the newest SDK. So I cannot use this SDK version forever.
Is it in future guaranteed that there are no more migrations / changes to the "persistent security data" - API?
Or is there another way to store the password secure independently from API changes?
Do you have a example how to manually migrate the data?
Best regards,
Jan