Commit Graph

68 Commits (tools-release-6.1.0)

Author SHA1 Message Date
Jaeden Amero 4961d4a52d psa: Configure Mbed TLS to use PSA as needed
Configure Mbed TLS to automatically enable PSA as needed. When Mbed OS
is configured to use PSA, configure Mbed TLS to use PSA. This prevents
leaking of the "how to make Mbed TLS use PSA" knowledge up into
targets.json, and thus makes porting simpler. There is now one place
where "how to make TLS use PSA" exists rather than repeated throughout
targets.json for each target that can't inherit from PSA_Target.
2020-06-18 12:18:12 +01:00
Devaraj Ranganna 76e911c5ef psa: Replace Mbed PSA with TF-M
Add TF-M to Mbed OS, replacing the previous PSA implementation for
TF-M-capable targets. This commit adds files imported from TF-M, without
modification. The version of TF-M imported can be found in
`features/FEATURE_PSA/TARGET_TFM/VERSION.txt`.

These changes switch to TF-M as the sole PSA implementation for v8-M and
dual core targets, with TF-M running on the secure side and Mbed OS
running on the non-secure side. Single core v7-M targets will continue
to have PSA implemented via PSA emulation, implemented by Mbed OS.

Move or remove many PSA-implementing files, as PSA will be provided by
TF-M on non-single-v7-M targets. Delete any files that are not relevant
for PSA emulation mode.
 - Remove imported TF-M SPM
 - Remove Mbed SPM and tests
 - Remove Mbed-implemented PSA services and tests
 - Remove PSA_SRV_IMPL, PSA_SRV_IPC, PSA_SRV_EMUL and NSPE.
 - Replace PSA_SRV_EMUL and PSA_SRV_IMPL with MBED_PSA_SRV
 - Remove any files autogenerated by
   "tools/psa/generate_partition_code.py", which no longer exists.

Add new feature `PSA` to support PSA in Mbed OS.

Move the Mbed OS implementation of PSA services for v7-M targets (which
employ PSA emulation, and don't yet use TF-M) to
features/FEATURE_PSA/TARGET_MBED_PSA_SRV. Update the `requires`
attribute in TESTS/configs/baremetal.json to avoid breaking baremetal
testing builds.

Update .astyleignore to match new directory structure

Update Mbed TLS importer to place files into FEATURE_PSA

Create the following generic PSA targets:

* `PSA_Target` (Root level PSA generic target)
* `PSA_V7_M` (Single v7-M PSA generic target)
* `PSA_DUAL_CORE` (Dual-core PSA generic target)
* `PSA_V8_M` (v8-M PSA generic target)

Flatten MUSCA_NS and private MUSCA targets into public MUSCA targets.

Move mcuboot.bin to flat location (removing prebuilt folder)

Signed-off-by: Devaraj Ranganna <devaraj.ranganna@arm.com>
Signed-off-by: Jaeden Amero <jaeden.amero@arm.com>
2020-06-18 12:16:20 +01:00
Martin Kojtal 0bdc712167
Merge pull request #12998 from sbutcher-arm/fix-adjust-config
Fix Mbed TLS `adjust-config.sh` script
2020-06-18 09:43:59 +02:00
Darryl Green 0e07dff0a4 Move TARGET_MBED_PSA_SRV to FEATURE_EXPERIMENTAL_API
Signed-off-by: Darryl Green <darryl.green@arm.com>
2020-05-29 13:19:12 +01:00
Jaeden Amero 5d6ec71171 crypto: Move PSA Crypto headers to MBED_PSA_SRV
TF-M provides its own PSA headers for TF-M targets. Single v7-M targets
need to get PSA crypto from Mbed Crypto.

Note that we don't yet move crypto_struct.h to its new location. This is
to avoid breaking v8-M targets for the time being. When TF-M provides
the PSA implementation on v8-M, we will add crypto_struct.h to the
correct place.

Likewise, none of the PSA-implementing source is moved out of
COMPONENT_PSA_SRV_IMPL yet, as still must not be built for PSA NS
targets. When PSA NS targets switch to using TF-M provided
implementations rather than MBED_PSA_SRV, we can take the source out of
COMPONENT_PSA_SRV_IMPL.

Signed-off-by: Jaeden Amero <jaeden.amero@arm.com>
2020-05-29 13:19:11 +01:00
Simon Butcher 5b0316832d Fix Mbed TLS adjust-config.sh script
The Mbed TLS import script is quite fragile, and depends on certain lines to be
present in the files it adjusts to be able to do the modifications it needs to
to allow Mbed TLS to build within Mbed OS.

Thsi commit changes the `adjust-config.sh` script to look for a the end of the
config.h file, defined as "#endif /* MBEDTLS_CONFIG_H */" rather than the
include line for "check_config.h".

That's because the inclusion of "check_config.h" is being removed upstream in
Mbed TLS to fix another issue.
2020-05-19 23:19:38 +01:00
Darryl Green b91fe62c96 Adjust Mbed TLS importer and config script
Mbed Crypto has been remerged back into Mbed TLS. Update the
Mbed TLS importer script with the relevant parts of the
Mbed Crypto importer.

Signed-off-by: Darryl Green <darryl.green@arm.com>
2020-04-30 11:27:54 +01:00
Devaraj Ranganna 4773a219b8 tls: Remove apache-2.0.txt from importer script
Both Mbed TLS and Mbed Crypto libraries doesn't contain
`apache-2.0.txt` anymore. Do not access those files in the importer
script.

Signed-off-by: Devaraj Ranganna <devaraj.ranganna@arm.com>
2020-03-06 11:26:45 +00:00
Jaeden Amero cfc9e9fa65 tls: Update Mbed TLS to 2.20.0d1 2019-12-20 11:54:44 +00:00
Jaeden Amero f2d42bfa31 Update Mbed TLS to version 2.20.0d0 2019-10-15 14:14:01 +01:00
Jaeden Amero eb00fbadb4 tls: Update to Mbed TLS 2.19.1
Update Mbed TLS to Mbed TLS 2.19.1.
2019-09-17 15:24:09 +01:00
Jaeden Amero 612255f8c3 tls: Update to Mbed TLS 2.19.0 2019-09-06 16:15:47 +01:00
Jaeden Amero ea17d58b49 mbedtls: Update Mbed TLS and Mbed Crypto
Update Mbed TLS to 2.19.0d0 and Mbed Crypto to 2.0.0d1.
2019-08-29 14:55:05 +01:00
Jaeden Amero b6c24e2e09 crypto: Copy legacy crypto from Mbed Crypto
Mbed TLS no longer provides legacy crypto C or H files. Obtain the files
from Mbed Crypto instead.
2019-08-16 09:20:03 +01:00
Jaeden Amero 045cd67e6d mbedtls: Update to Mbed TLS 2.18.1
Update to Mbed TLS 2.18.1 and Mbed Crypto 1.1.1.
2019-07-12 16:07:43 +01:00
Darryl Green 8f6667d3d2 Add adjust-check-config script to mbedtls importer
In Mbed OS, there are configuration options with Mbed TLS that we
are more comfortable allowing than we do with Mbed TLS on its own.
Add a check-config adjusting script to enable removing or changing
options in check_config.h
2019-06-26 13:26:18 +01:00
Jaeden Amero 4917b10725 mbedtls: Update to Mbed TLS 2.18.0-rc3 2019-06-10 13:05:46 +01:00
k-stachowiak 948d4379d8 Update Mbed TLS feature to 2.18.0-rc2 2019-05-28 11:00:16 +01:00
Jaeden Amero 60252b9988 mbedtls: Update to Mbed TLS 2.18.0-rc1
Update Mbed TLS to 2.18.0-rc1. Update Mbed Crypto to 1.1.0d0.
2019-05-23 14:47:42 +01:00
Jaeden Amero 262617935d mbedtls: Update submodules after checkout
When importing, after checking out the specified release, update any
submodules present.
2019-05-23 14:47:42 +01:00
Jaeden Amero ce2de9a9bf mbedtls: Fetch instead of pull
Do a git fetch of mbedtls instead of a pull. We don't need to checkout
development, only the release specified.
2019-05-23 14:47:42 +01:00
Jaeden Amero bb17408a14 mbedtls: Make imported version tag more verbose
When importing development releases of Mbed TLS into Mbed OS, it is
useful to be able to know a the particular git commit hash that was
imported. This change avoids ever creating a VERSION.txt for Mbed TLS
containing only "development", which is fairly useless since one doesn't
know where the development branch was at the time of import.
2019-05-23 14:47:42 +01:00
Jaeden Amero e3d1e27b89 mbedtls: Source crypto from Mbed Crypto
Use Mbed Crypto implementations of crypto. For example, use aes.c from
Mbed Crypto instead of the Mbed TLS copy.
2019-05-23 12:27:34 +01:00
Jaeden Amero 20598bcea1 tls: Update Mbed TLS to 2.17.0
There are no differences from the previously imported version of Mbed
TLS other than the version number.
2019-03-19 16:55:56 +00:00
Simon Butcher 86825a65b6 Move the Mbed TLS target to the development branch
Before moving to the new release of Mbed TLS, this moves the default imported
version of Mbed TLS to the development branch, and will import the HEAD of the
branch, not just a specific release.
2019-03-03 22:59:00 +00:00
Simon Butcher 21c6c90519 Make the storage configs dependent on the PSA label
This commit makes the storage configurations - setting
MBEDTLS_PSA_CRYPTO_STORAGE_C, MBEDTLS_PSA_CRYPTO_STORAGE_ITS_C and unsetting
MBEDTLS_PSA_CRYPTO_STORAGE_FILE_C - dependent on the PSA label being defined for
the target.

Previously these symbols were always defined for all platforms which could
cause problems for targets that don't yet support PSA.
2019-03-03 22:55:38 +00:00
Jaeden Amero b5cf455bb7 tls/crypto: Make mbed-crypto importer independent
Obtain the version of Mbed Crypto to use not from the Mbed TLS
submodule, but independently through the Mbed Crypto importer instead.
2019-01-29 11:43:24 +02:00
Simon Butcher 7bf33f01f9 Parameterise repo used in Mbed TLS importer script
This commit makes the repo used to import new Mbed TLS versions into Mbed OS
a parameter, to allow CI scripts (and any other script or users) to specify
specific repos to use for testing.
2019-01-11 13:51:19 +00:00
Cruz Monrreal 3325070701
Merge pull request #8936 from RonEld/reduce_default_mpi_max_size
Reduce default MBEDTLS_MPI_MAX_SIZE
2018-12-04 12:22:15 -06:00
Ron Eldor edc09cf087 Add comment for reasoning for changing default
Add a comment in the `adjust-config.sh` script, for effects
and benefits of the new value.
2018-12-03 18:59:25 +02:00
Ron Eldor 097996c25a Reduce default MBEDTLS_MPI_MAX_SIZE
Reduce the default size of `MBEDTLS_MPI_MAX_SIZE` to 512 bytes,
as the default 1024 consumes much stack, and supporting RSA 4096 bit
may suffice at the moment.
2018-12-03 18:59:25 +02:00
Jaeden Amero 74f93271ab mbedtls: Update Mbed TLS to 2.15.1 2018-11-30 15:29:34 +00:00
Jaeden Amero 3900b81d02 Update Mbed TLS to mbedtls-2.15.0 2018-11-23 22:54:09 +00:00
Hanno Becker 70f9497918 Mbed TLS importer: Call `config.pl --force` to accept unknown option
The new PSA-aware Mbed TLS importer script calls `config.pl` on the
Mbed TLS config.h to set the PSA configuration option
MBEDTLS_PSA_CRYPTO_STORAGE_C which isn't documented in config.h.
config.pl therefore fails, and so does the importer.

This commit fixes this by calling `config.pl` with the `--force`
option which amends the given `config.h` by a `#define` for the
requested option if the option isn't present in the file.
2018-11-23 22:54:07 +00:00
itayzafrir b85db484b0 Update adjust-config.sh to enable persistent keys
In adjust-config.h, set and unset Mbed Crypto storage configuration options
in order to use persistent keys with PSA ITS storage.
2018-11-23 22:54:04 +00:00
Mohammad AboMokh 15945687bc Record Mbed Crypto version
Record the version of Mbed Crypto into VERSION.txt for easy reference.
2018-11-23 22:54:03 +00:00
Mohammad AboMokh 7ba359a4a6 Update mbedtls importer to import mbed-crypto 2018-11-23 22:54:01 +00:00
Cruz Monrreal 0cf26eb1cb
Merge pull request #7877 from TomoYamanaka/improve_nv_seed_of_tls
Improve the config ajustment script of TLS for ENTROPY_NV_SEED
2018-10-10 08:40:06 -05:00
Simon Butcher 15785191e7 Update Mbed TLS version to 2.13.1 2018-09-06 19:32:03 +01:00
Krzysztof Stachowiak 7d7b8d4a07 Disable the OFB cipher mode in Mbed TLS 2018-09-03 16:20:55 +01:00
Krzysztof Stachowiak f1d76691b6 Update to Mbed TLS 2.13.0 2018-09-03 16:20:46 +01:00
TomoYamanaka 7c90a9e314 Improve the config adjustment script for ENTROPY_NV_SEED
Although "nv_seed" is one of "entropy", it doesn't included to the "!defined" lineup in the following config file.
Therefore, when MBEDTLS_ENTROPY_NV_SEED is defined, it is accidently invoked "mbedtls/config-no-entropy.h".
mbed-os\features\mbedtls\inc\mbedtls\config.h
I think that correct processing should go to line 47, not line 40.
2018-08-31 12:14:32 +09:00
Krzysztof Stachowiak 7b22ede77a Disable XTS cipher mode by default when importing Mbed TLS 2018-06-18 16:48:33 +02:00
Martin Kojtal 73cfc7baea
Merge pull request #7135 from k-stachowiak/update-mbedtls-2.10.0-rc1
Update Mbed TLS to version 2.10.0
2018-06-08 10:18:06 +02:00
Krzysztof Stachowiak 7eeb694dd9 Update MbedTLS to 2.10.0 (from an RC) 2018-06-06 17:31:18 +02:00
Krzysztof Stachowiak 8c9a967ef2 Improve the documenting comment in a config adjustment script 2018-06-06 15:33:28 +02:00
Krzysztof Stachowiak 9c6a85a6e9 Add configuration options to enable CMAC in mbedtls by default 2018-06-06 13:36:28 +02:00
Krzysztof Stachowiak f85e3f6177 Update Mbed TLS do version 2.10.0-rc1 2018-06-06 09:13:06 +02:00
Krzysztof Stachowiak 4f9c6ba300 Update the version in the importing makefile 2018-05-10 17:49:33 +02:00
Martin Kojtal 495ae06c70
Merge pull request #6509 from k-stachowiak/nvseed-check
Add an NV_SEED test to the config adjustment script
2018-04-10 14:38:47 +02:00