Commit d6bee549 authored by Tomi Fontanilles's avatar Tomi Fontanilles Committed by Carles Cufi
Browse files

samples: psa: its: add the psa_its sample



Add a sample to demonstrate direct use of the PSA ITS API.

The implementation of the API is provided either by the just-introduced
secure storage subsystem or by TF-M.

Signed-off-by: default avatarTomi Fontanilles <tomi.fontanilles@nordicsemi.no>
parent 85a56b5e
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -4113,6 +4113,7 @@ Secure storage:
    - tomi-font
  files:
    - subsys/secure_storage/
    - samples/psa/
    - tests/subsys/secure_storage/
  labels:
    - "area: Secure storage"

samples/psa/index.rst

0 → 100644
+6 −0
Original line number Diff line number Diff line
.. zephyr:code-sample-category:: psa
   :name: PSA
   :show-listing:

   The following samples demonstrate various uses of several of the
   `Platform Security Architecture (PSA) Certified APIs <https://arm-software.github.io/psa-api/>`_.
+7 −0
Original line number Diff line number Diff line
# SPDX-License-Identifier: Apache-2.0
cmake_minimum_required(VERSION 3.20.0)
find_package(Zephyr REQUIRED HINTS $ENV{ZEPHYR_BASE})

project(psa_its)

target_sources(app PRIVATE src/main.c)
+67 −0
Original line number Diff line number Diff line
.. zephyr:code-sample:: psa_its
   :name: PSA Internal Trusted Storage API
   :relevant-api: psa_secure_storage

   Use the PSA ITS API.

Overview
********

This sample demonstrates usage 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>`_,
which is part of the `PSA Secure Storage API <https://arm-software.github.io/psa-api/storage/>`_,
for storing and retrieving persistent data.

Requirements
************

An implementation of the PSA ITS API must be present for this sample to build.
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/its`.

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/its
         :tool: west
         :goals: build
         :board: <ns_board_target>
         :west-args: -T sample.psa.its.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/its
         :tool: west
         :goals: build
         :board: <board_target>
         :west-args: -T sample.psa.its.secure_storage.entropy_driver

      Or, to use an insecure entropy source (only for testing):

      .. zephyr-app-commands::
         :zephyr-app: samples/psa/its
         :tool: west
         :goals: build
         :board: <board_target>
         :west-args: -T sample.psa.its.secure_storage.entropy_not_secure

To flash it, see :ref:`west-flashing`.
+4 −0
Original line number Diff line number Diff line
# SPDX-License-Identifier: Apache-2.0

CONFIG_ENTROPY_GENERATOR=y
CONFIG_MBEDTLS_PSA_CRYPTO_EXTERNAL_RNG=y
Loading