Commit Graph

32 Commits (99cf33c20205a03fa7582325daa2008b051fe40c)

Author SHA1 Message Date
Martin Kojtal 9f35f294fe
Merge pull request #14582 from LDong-Arm/TF-Mv1.3.0_update
Update TF-M to v1.3.0
2021-04-30 12:13:56 +01:00
Jaeden Amero 032fe4a6f7 tfm: Add mbedtls_ecc_group_to_psa.h to crypto_extra.h
Include mbedtls_ecc_group_to_psa.h from crypto_extra.h so that clients
of PSA within Mbed OS do not need to behave differently depending on
which PSA implementation they are using.

This solution is not ideal as it makes it more difficult to update the
TF-M-provided psa/crypto_extra.h. We'll have to see what other options
we have for including additional headers based on the Mbed OS
configuration.
2021-04-30 11:28:20 +01:00
Jaeden Amero 07d8aefe51 mbedtls: Add mbedtls_ecc_group_to_psa()
We'd like to enable Mbed TLS's PK module in using TF-M's PSA
implementation, even if it doesn't expose the same set of PSA extensions
as Mbed TLS's PSA implementation. To do this, we add
mbedtls_ecc_group_to_psa() in its own header available when using the
latest TF-M.

Add mbedtls_ecc_group_to_psa(), one of Mbed TLS's PSA compatibility
helpers, for internal use by the Mbed TLS PK module. Without this
conversion function, the Mbed TLS PK module is unable to use any PSA
implementation other than one which provides a compatible set of PSA
extensions.
2021-04-30 09:04:08 +01:00
Lingkai Dong b8969e0072 Updated directory platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_TFM/TARGET_TFM_LATEST 2021-04-29 11:09:20 +01:00
Lingkai Dong 23824b44b5 Updated directory platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_TFM/TARGET_TFM_LATEST 2021-04-29 11:09:14 +01:00
plan-do-break-fix 915b45af23 fix(docs): corrects various typos in project documentation 2021-04-23 23:31:11 -05:00
Martin Kojtal 121c8286da CMake: set CMAKE_MODULE_PATH in the Mbed OS CMakelists.txt
Update CMAKE_MODULE_PATH at once place.

Note, we update also CMAKE_MODULE_PATH in app.cmake. This is temporary until we get a proper way to include
Mbed Os (removing app.cmake need to be included by an application).
2021-04-14 13:09:28 +01:00
Martin Kojtal b6a90c4ae1 CMake: fix for CMAKE_CURRENT_LIST_DIR in functions
CMAKE_CURRENT_LIST_DIR behaves differently in functions. We store it in the CMakeLists itself, so anyone
calling a function would get the actual list dir where the scripts are.

To illustrate: if I call a function from src/CMakelists.txt, function located in src/scripts, `CMAKE_CURRENT_LIST_DIR` in the function would point
to the src/ folder but not to src/scripts.
2021-04-14 13:09:27 +01:00
Martin Kojtal afd938491a CMake platform: remove MBED_PATH, use standard variables
As we still use target labels, TFM is not visible to CMake. Protect include of their scripts with the same mechanism.
2021-04-14 13:09:26 +01:00
Lingkai Dong e6fd25df83 Enforce full-qualified path for `os_wrapper/*.h`
Some host operating systems are case-insensitive and cannot
distinguish (for example) `semaphore.h` in `os_wrapper` from
`Semaphore.h` from Mbed OS `rtos`. This causes the wrong header to be
included.

By adding `os_wrapper/.mbedignore`, we guarantee that

    #include "Semaphore.h"

always points to `rtos/Semaphore.h`, while the fully-qualified include

    #include "os_wrapper/semaphore.h"

continues to work because its parent directory is still in the include
path.
2021-03-22 16:41:52 +00:00
Lingkai Dong a6081e5681 Update VERSION.txt for imported TF-M files 2021-03-22 10:01:46 +00:00
Lingkai Dong eeae3d73dd Import OS wrapper from the vanilla TF-M
Previous, we patched TF-M to replace its OS wrapper with CMSIS RTOS
to resolve manage management issue when integrated with Mbed OS. But
as of TF-M v1.2, the OS wrapper has been reworked in the vanilla TF-M,
and now it makes identical calls to its underlying CMSIS RTOS as our
patches do. So, we remove our patches and use vanilla TF-M's OS
wrapper instead to avoid extra maintenance overhead.

This commit re-imports TF-M files associated with the OS wrapper.
2021-03-17 09:41:56 +00:00
Lingkai Dong 31cc82dabb "Updated secure binaries for [(ARM_MUSCA_S1, ARMCLANG)]"
This brings in the platform init fix:

    https://github.com/ARMmbed/trusted-firmware-m/pull/15
2021-03-09 10:22:58 +00:00
Lingkai Dong f225791fee CMake: Support signing and merging TF-M binaries
This commit adds post binary hook support for TF-M targets.

To apply this hook to a TF-M target, do the following in the target's
`CMakeLists.txt`:
* include `mbed_set_post_build_tfm.cmake`
* call `mbed_post_build_tfm_sign_image()`, passing
  - Mbed OS target name
  - TF-M target name
  - path containing the target's bootloader, layout files and signing
    keys
  - path to the secure binary
  - path to the non-secure binary (i.e. the "raw" Mbed application)
2021-03-05 16:16:26 +00:00
Lingkai Dong 62c8379d8d TARGET_TFM_V1_0: compatibility with Mbed TLS 2.24.0
Mbed TLS 2.24.0 requires a few new macros and an inline function in
the PSA Crypto header. This PR adds them to make sure the TF-M v1.0
target (specifically CYTFM_064B0S2_4343W) continues to compile with
the new Mbed TLS.

Note: Support for older versions of TF-M than v1.2 will be dropped,
so existing TF-M targets should migrate to TF-M v1.2 as soon as
possible.
2021-02-25 15:40:57 +00:00
Lingkai Dong 2807a01fd3 "Updated directory platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_TFM/TARGET_TFM_LATEST " 2021-02-25 14:02:57 +00:00
Lingkai Dong eb0ac59494 Deprecation warnings for key enrollment algorithm
Setting/getting key enrollment algorithm is not recommended and not
part of the vanilla PSA or TF-M. For now keep the API just for
backward compatibility with existing projects, and this commit
adds deprecation warnings.
2021-02-25 14:02:57 +00:00
Lingkai Dong 12b2c89962 PSA/TF-M: support key enrollment algorithm
Add `psa_set_key_enrollment_algorithm()` and
`psa_get_key_enrollment_algorithm()` for TF-M targets.

Note: This is deprecated and for backward compatibility only.
Setting an enrollment algorithm is not recommended, because
using the same key with different algorithms can allow some
attacks based on arithmetic relations between different
computations made with the same key, or can escalate harmless
side channels into exploitable ones. Use this function only
if it is necessary to support a protocol for which it has been
verified that the usage of the key with multiple algorithms
is safe.
2021-02-25 14:02:57 +00:00
Vikas Katariya ab09a6934b Add mbedtls_ecc_group_to_psa() to PSA in TF-M 1.2
The PSA headers imported from TF-M does not contain a declaration of
mbedtls_ecc_group_to_psa(), which is expected by pk.c from Mbed TLS.
This leads to an "undefined symbol" error when using the ARM toolchain
to compile an application for a TF-M target.
2021-02-25 14:02:56 +00:00
Vikas Katariya 260a33574b core: Upgrade TFM v1.2 related files
These files have been imported/copied from:
* ARMmbed/trusted-firmware-m
* ARMmbed/tf-m-tests

These are generic files, which are required for TF-M v1.2 integration
with Mbed OS for PSA_V8M and PSA_DUAL_CORE targets.
2021-02-25 14:02:56 +00:00
Vikas Katariya b0da9d0cdf Switch to using `TARGET_TFM_LATEST`
Rather than maintaining a specific `TARGET_TFM_V1_x`, its better to use
more generic name `TARGET_TFM_LATEST` to avoid confusion on the latest
TFM version supported by Mbed OS

* Rename the folder from `TARGET_TFM_V1_1` to `TARGET_TFM_LATEST`
* Update the CmakeLists.txt
* Change the name of the MUSCA targets to maintain uniformity
with TF-M v1.2
* Update target.json for PSA_V8_M to use `TFM_LATEST`
2021-02-25 14:02:55 +00:00
Lingkai Dong 410a1bad6b Import mbedtls-2.24 and Mbed PSA Service (non-TFM)
Files have been automatically imported by setting MBED_TLS_RELEASE to
mbedtls-2.24.0 in connectivity/mbedtls/tools/importer/Makefile and
running `make` in that directory.
2021-02-25 14:02:55 +00:00
Hugues Kamba c724d790c0 CMake: Add mbed-psa library as a dependency to mbed-core if PSA is used
Include PSA source files only if a given Mbed target needs it.
This commit also consolidates CMakeLists.txt files within the platform
directory
2021-01-18 17:39:13 +00:00
Lingkai Dong c2cc43875a CMake: add missing linkages of storage libraries 2020-12-09 17:26:32 +00:00
Hugues Kamba 794e32df74 CMake: Use relative paths to list source files and directories
The absolute path is still required for listing linker
files as they are referenced from a function in the top
level CMake input source file.
2020-11-09 12:32:30 +00:00
Hugues Kamba bf84a5b329 CMake: Rename CMake targets
* mbed-os renamed mbed-core
* mbed-os-<COMPONENT> renamed mbed-<COMPONENT>
2020-11-06 17:25:22 +00:00
Hugues Kamba fa98689639 CMake: Componentize Mbed OS into multiple CMake targets (#13732)
Aside from the core mbed-os CMake target, a number of targets have been created so they can optionally be included by application executables that require them using `target_link_libraries()`.

Co-authored-by: Martin Kojtal <martin.kojtal@arm.com>
Co-authored-by: Rajkumar Kanagaraj <rajkumar.kanagaraj@arm.com>
2020-11-06 17:25:21 +00:00
Hugues Kamba 4fc678c30d CMake: Correct file listing for PSA 2020-11-06 17:25:20 +00:00
Hugues Kamba 0c8cb3134c CMake: Fix build failure due to PSA dir move 2020-11-06 17:25:20 +00:00
Moshe Shahar eaf9601bc9 remove redundant call to generate_root_of_trust from its test 2020-09-10 19:44:52 +03:00
Moshe Shahar 5954267859 PSA - Generate root of trust before accessing kvstore 2020-09-10 19:25:59 +03:00
Rajkumar Kanagaraj 118c01016b Move FEATURE_EXPERIMENTAL_API for PSA to platform 2020-08-21 14:35:10 +01:00