zephyr/samples/psa/persistent_key/README.rst
Tomi Fontanilles c9a59dd02d samples: psa: persistent_key: add the persistent_key sample
Add a sample to demonstrate use of persistent keys in the PSA Crypto API.

The implementation of the PSA ITS API that allows storage of persistent
keys is provided either by the just-introduced secure storage subsystem
or by TF-M.

Signed-off-by: Tomi Fontanilles <tomi.fontanilles@nordicsemi.no>
2024-10-07 13:38:43 +02:00

71 lines
2.1 KiB
ReStructuredText

.. zephyr:code-sample:: persistent_key
:name: PSA Crypto persistent key
Manage and use persistent keys via the PSA Crypto API.
Overview
********
This sample demonstrates usage of persistent keys in the :ref:`PSA Crypto API <psa_crypto>`.
Requirements
************
In addition to the PSA Crypto API, an implementation of the
`PSA Internal Trusted Storage (ITS) API <https://arm-software.github.io/psa-api/storage/1.0/overview/architecture.html#the-internal-trusted-storage-api>`_
(for storage of the persistent keys) must be present for this sample to work.
It can be provided by:
* :ref:`tfm`, for ``*/ns`` :term:`board targets<board target>`.
* The :ref:`secure storage subsystem <secure_storage>`, for the other board targets.
Building
********
This sample is located in :zephyr_file:`samples/psa/persistent_key`.
Different configurations are defined in the :file:`sample.yaml` file.
You can use them to build the sample, depending on the PSA ITS provider, as follows:
.. tabs::
.. tab:: TF-M
For board targets with TF-M:
.. zephyr-app-commands::
:zephyr-app: samples/psa/persistent_key
:tool: west
:goals: build
:board: <ns_board_target>
:west-args: -T sample.psa.persistent_key.tfm
.. tab:: secure storage subsystem
For board targets without TF-M.
If the board target to compile for has an entropy driver (preferable):
.. zephyr-app-commands::
:zephyr-app: samples/psa/persistent_key
:tool: west
:goals: build
:board: <board_target>
:west-args: -T sample.psa.persistent_key.secure_storage.entropy_driver
Or, to use an insecure entropy source (only for testing):
.. zephyr-app-commands::
:zephyr-app: samples/psa/persistent_key
:tool: west
:goals: build
:board: <board_target>
:west-args: -T sample.psa.persistent_key.secure_storage.entropy_not_secure
To flash it, see :ref:`west-flashing`.
API reference
*************
`PSA Crypto key management API reference <https://arm-software.github.io/psa-api/crypto/1.2/api/keys/index.html>`_