From 2f2e4a95a161ec9ae44744b96e8a7d75cc2ad9f7 Mon Sep 17 00:00:00 2001 From: Jaeden Amero Date: Thu, 9 Jul 2020 15:20:43 +0100 Subject: [PATCH] psa: Update TF-M for ARM_MUSCA_B1 --- .../FEATURE_PSA/TARGET_TFM/VERSION.txt | 2 +- .../TARGET_TFM/include/psa/crypto.h | 8 +- .../include/psa/crypto_client_struct.h | 49 +++++++ .../TARGET_TFM/include/psa/crypto_extra.h | 47 ++++++- .../TARGET_TFM/include/psa/crypto_struct.h | 126 +++--------------- .../TARGET_TFM/include/psa/crypto_types.h | 6 +- .../TARGET_TFM/include/psa/crypto_values.h | 8 +- .../TARGET_TFM/include/psa_manifest/sid.h | 28 ++-- .../TARGET_TFM/include/tfm_crypto_defs.h | 1 + .../TARGET_TFM/include/tfm_veneers.h | 24 ++-- .../{tfm_sst_ipc_api.c => tfm_ps_ipc_api.c} | 10 +- .../TARGET_MUSCA_B1/mcuboot.bin | Bin 19684 -> 19764 bytes .../TARGET_ARM_SSG/TARGET_MUSCA_B1/tfm_s.axf | Bin 362020 -> 362092 bytes .../TARGET_ARM_SSG/TARGET_MUSCA_B1/tfm_s.bin | Bin 389408 -> 389408 bytes tools/psa/tfm/bin_utils/imgtool.py | 40 +++++- 15 files changed, 201 insertions(+), 148 deletions(-) create mode 100644 features/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_TFM/include/psa/crypto_client_struct.h rename features/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_TFM/src/{tfm_sst_ipc_api.c => tfm_ps_ipc_api.c} (92%) diff --git a/features/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_TFM/VERSION.txt b/features/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_TFM/VERSION.txt index 32a958e6c45..ae133181a4c 100644 --- a/features/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_TFM/VERSION.txt +++ b/features/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_TFM/VERSION.txt @@ -1 +1 @@ -1d1faca481c3 +52261ca41663 diff --git a/features/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_TFM/include/psa/crypto.h b/features/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_TFM/include/psa/crypto.h index 91581172c2b..14591957b81 100644 --- a/features/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_TFM/include/psa/crypto.h +++ b/features/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_TFM/include/psa/crypto.h @@ -12,8 +12,6 @@ #ifndef PSA_CRYPTO_H #define PSA_CRYPTO_H -#include "psa/crypto_platform.h" - #include #ifdef __DOXYGEN_ONLY__ @@ -3759,6 +3757,12 @@ psa_status_t psa_generate_key(const psa_key_attributes_t *attributes, * macros whose definitions are implementation-specific. */ #include "psa/crypto_sizes.h" +/* The file "crypto_client_struct.h" contains definitions for structures + * whose definitions differ in the client view and the PSA server + * implementation in TF-M. */ +#include "psa/crypto_client_struct.h" + + /* The file "crypto_struct.h" contains definitions for * implementation-specific structs that are declared above. */ #include "psa/crypto_struct.h" diff --git a/features/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_TFM/include/psa/crypto_client_struct.h b/features/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_TFM/include/psa/crypto_client_struct.h new file mode 100644 index 00000000000..ce0a7defba0 --- /dev/null +++ b/features/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_TFM/include/psa/crypto_client_struct.h @@ -0,0 +1,49 @@ +/* + * Copyright (c) 2020, Arm Limited. All rights reserved. + * + * SPDX-License-Identifier: BSD-3-Clause + * + */ +/** + * \file psa/crypto_client_struct.h + * + * \brief PSA cryptography client key attribute definitions + * + * \note This file may not be included directly. Applications must + * include psa/crypto.h. + * + * This file contains the definitions of some data structures with + * PSA crypto client specific definitions. This is for implementations + * with isolation between the Client applications and the Crypto + * Server module, it is expected that the front-end and the back-end + * would have different versions of the data structure. + */ +#ifndef PSA_CRYPTO_CLIENT_STRUCT_H +#define PSA_CRYPTO_CLIENT_STRUCT_H + +#ifdef __cplusplus +extern "C" { +#endif + +/* This is the client view of the `key_attributes` structure. Only + * fields which need to be set by the PSA crypto client are present. + * The PSA crypto service will maintain a different version of the + * data structure internally. */ +struct psa_client_key_attributes_s +{ + uint32_t type; + uint32_t lifetime; + uint32_t id; + uint32_t alg; + uint32_t alg2; + uint32_t usage; + uint16_t bits; +}; + +#define PSA_CLIENT_KEY_ATTRIBUTES_INIT {0, 0, 0, 0, 0, 0} + +#ifdef __cplusplus +} +#endif + +#endif /* PSA_CRYPTO_CLIENT_STRUCT_H */ diff --git a/features/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_TFM/include/psa/crypto_extra.h b/features/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_TFM/include/psa/crypto_extra.h index 33c9c0537a8..d658b7664cd 100644 --- a/features/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_TFM/include/psa/crypto_extra.h +++ b/features/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_TFM/include/psa/crypto_extra.h @@ -24,6 +24,39 @@ extern "C" { #endif +/** \addtogroup crypto_types + * @{ + */ + +/** DSA public key. + * + * The import and export format is the + * representation of the public key `y = g^x mod p` as a big-endian byte + * string. The length of the byte string is the length of the base prime `p` + * in bytes. + */ +#define PSA_KEY_TYPE_DSA_PUBLIC_KEY ((psa_key_type_t)0x60020000) + +/** DSA key pair (private and public key). + * + * The import and export format is the + * representation of the private key `x` as a big-endian byte string. The + * length of the byte string is the private key size in bytes (leading zeroes + * are not stripped). + * + * Determinstic DSA key derivation with psa_generate_derived_key follows + * FIPS 186-4 §B.1.2: interpret the byte string as integer + * in big-endian order. Discard it if it is not in the range + * [0, *N* - 2] where *N* is the boundary of the private key domain + * (the prime *p* for Diffie-Hellman, the subprime *q* for DSA, + * or the order of the curve's base point for ECC). + * Add 1 to the resulting integer and use this as the private key *x*. + * + */ +#define PSA_KEY_TYPE_DSA_KEY_PAIR ((psa_key_type_t)0x70020000) + +/**@}*/ + /** \brief Declare the enrollment algorithm for a key. * * An operation on a key may indifferently use the algorithm set with @@ -47,7 +80,19 @@ static inline void psa_set_key_enrollment_algorithm( psa_key_attributes_t *attributes, psa_algorithm_t alg2) { - attributes->core.policy.alg2 = alg2; + attributes->alg2 = alg2; +} + +/** Retrieve the enrollment algorithm policy from key attributes. + * + * \param[in] attributes The key attribute structure to query. + * + * \return The enrollment algorithm stored in the attribute structure. + */ +static inline psa_algorithm_t psa_get_key_enrollment_algorithm( + const psa_key_attributes_t *attributes) +{ + return attributes->alg2; } #ifdef __cplusplus diff --git a/features/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_TFM/include/psa/crypto_struct.h b/features/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_TFM/include/psa/crypto_struct.h index 403a734000b..ac08987ca0a 100644 --- a/features/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_TFM/include/psa/crypto_struct.h +++ b/features/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_TFM/include/psa/crypto_struct.h @@ -104,21 +104,6 @@ static inline struct psa_key_derivation_s psa_key_derivation_operation_init( voi return( v ); } -struct psa_key_policy_s -{ - psa_key_usage_t usage; - psa_algorithm_t alg; - psa_algorithm_t alg2; -}; -typedef struct psa_key_policy_s psa_key_policy_t; - -#define PSA_KEY_POLICY_INIT {0, 0, 0} -static inline struct psa_key_policy_s psa_key_policy_init( void ) -{ - const struct psa_key_policy_s v = PSA_KEY_POLICY_INIT; - return( v ); -} - /* The type used internally for key sizes. * Public interfaces use size_t, but internally we use a smaller type. */ typedef uint16_t psa_key_bits_t; @@ -132,166 +117,93 @@ typedef uint16_t psa_key_bits_t; * conditionals. */ #define PSA_MAX_KEY_BITS 0xfff8 -/** A mask of flags that can be stored in key attributes. - * - * This type is also used internally to store flags in slots. Internal - * flags are defined in library/psa_crypto_core.h. Internal flags may have - * the same value as external flags if they are properly handled during - * key creation and in psa_get_key_attributes. - */ -typedef uint16_t psa_key_attributes_flag_t; - -#define MBEDTLS_PSA_KA_FLAG_HAS_SLOT_NUMBER \ - ( (psa_key_attributes_flag_t) 0x0001 ) - -/* A mask of key attribute flags used externally only. - * Only meant for internal checks inside the library. */ -#define MBEDTLS_PSA_KA_MASK_EXTERNAL_ONLY ( \ - MBEDTLS_PSA_KA_FLAG_HAS_SLOT_NUMBER | \ - 0 ) +#define PSA_KEY_ATTRIBUTES_INIT PSA_CLIENT_KEY_ATTRIBUTES_INIT -/* A mask of key attribute flags used both internally and externally. - * Currently there aren't any. */ -#define MBEDTLS_PSA_KA_MASK_DUAL_USE ( \ - 0 ) - -typedef struct +static inline struct psa_client_key_attributes_s psa_key_attributes_init( void ) { - psa_key_type_t type; - psa_key_lifetime_t lifetime; - psa_key_id_t id; - psa_key_policy_t policy; - psa_key_bits_t bits; - psa_key_attributes_flag_t flags; -} psa_core_key_attributes_t; - -#define PSA_CORE_KEY_ATTRIBUTES_INIT {0, 0, PSA_KEY_ID_INIT, PSA_KEY_POLICY_INIT, 0, 0} - -struct psa_key_attributes_s -{ - psa_core_key_attributes_t core; -#if defined(MBEDTLS_PSA_CRYPTO_SE_C) - psa_key_slot_number_t slot_number; -#endif /* MBEDTLS_PSA_CRYPTO_SE_C */ - void *domain_parameters; - size_t domain_parameters_size; -}; - -#if defined(MBEDTLS_PSA_CRYPTO_SE_C) -#define PSA_KEY_ATTRIBUTES_INIT {PSA_CORE_KEY_ATTRIBUTES_INIT, 0, NULL, 0} -#else -#define PSA_KEY_ATTRIBUTES_INIT {PSA_CORE_KEY_ATTRIBUTES_INIT, NULL, 0} -#endif - -static inline struct psa_key_attributes_s psa_key_attributes_init( void ) -{ - const struct psa_key_attributes_s v = PSA_KEY_ATTRIBUTES_INIT; + const struct psa_client_key_attributes_s v = PSA_KEY_ATTRIBUTES_INIT; return( v ); } static inline void psa_set_key_id(psa_key_attributes_t *attributes, psa_key_id_t id) { - attributes->core.id = id; - if( attributes->core.lifetime == PSA_KEY_LIFETIME_VOLATILE ) - attributes->core.lifetime = PSA_KEY_LIFETIME_PERSISTENT; + attributes->id = id; + if( attributes->lifetime == PSA_KEY_LIFETIME_VOLATILE ) + attributes->lifetime = PSA_KEY_LIFETIME_PERSISTENT; } static inline psa_key_id_t psa_get_key_id( const psa_key_attributes_t *attributes) { - return( attributes->core.id ); + return( attributes->id ); } static inline void psa_set_key_lifetime(psa_key_attributes_t *attributes, psa_key_lifetime_t lifetime) { - attributes->core.lifetime = lifetime; + attributes->lifetime = lifetime; if( lifetime == PSA_KEY_LIFETIME_VOLATILE ) { -#ifdef MBEDTLS_PSA_CRYPTO_KEY_FILE_ID_ENCODES_OWNER - attributes->core.id.key_id = 0; - attributes->core.id.owner = 0; -#else - attributes->core.id = 0; -#endif + attributes->id = 0; } } static inline psa_key_lifetime_t psa_get_key_lifetime( const psa_key_attributes_t *attributes) { - return( attributes->core.lifetime ); + return( attributes->lifetime ); } static inline void psa_set_key_usage_flags(psa_key_attributes_t *attributes, psa_key_usage_t usage_flags) { - attributes->core.policy.usage = usage_flags; + attributes->usage = usage_flags; } static inline psa_key_usage_t psa_get_key_usage_flags( const psa_key_attributes_t *attributes) { - return( attributes->core.policy.usage ); + return( attributes->usage ); } static inline void psa_set_key_algorithm(psa_key_attributes_t *attributes, psa_algorithm_t alg) { - attributes->core.policy.alg = alg; + attributes->alg = alg; } static inline psa_algorithm_t psa_get_key_algorithm( const psa_key_attributes_t *attributes) { - return( attributes->core.policy.alg ); + return( attributes->alg ); } -/* This function is declared in crypto_extra.h, which comes after this - * header file, but we need the function here, so repeat the declaration. */ -psa_status_t psa_set_key_domain_parameters(psa_key_attributes_t *attributes, - psa_key_type_t type, - const uint8_t *data, - size_t data_length); - static inline void psa_set_key_type(psa_key_attributes_t *attributes, psa_key_type_t type) { - if( attributes->domain_parameters == NULL ) - { - /* Common case: quick path */ - attributes->core.type = type; - } - else - { - /* Call the bigger function to free the old domain paramteres. - * Ignore any errors which may arise due to type requiring - * non-default domain parameters, since this function can't - * report errors. */ - (void) psa_set_key_domain_parameters( attributes, type, NULL, 0 ); - } + attributes->type = type; } static inline psa_key_type_t psa_get_key_type( const psa_key_attributes_t *attributes) { - return( attributes->core.type ); + return( attributes->type ); } static inline void psa_set_key_bits(psa_key_attributes_t *attributes, size_t bits) { if( bits > PSA_MAX_KEY_BITS ) - attributes->core.bits = PSA_KEY_BITS_TOO_LARGE; + attributes->bits = PSA_KEY_BITS_TOO_LARGE; else - attributes->core.bits = (psa_key_bits_t) bits; + attributes->bits = bits; } static inline size_t psa_get_key_bits( const psa_key_attributes_t *attributes) { - return( attributes->core.bits ); + return( attributes->bits ); } #ifdef __cplusplus diff --git a/features/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_TFM/include/psa/crypto_types.h b/features/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_TFM/include/psa/crypto_types.h index 690999f79c4..6ac95a8d9fb 100644 --- a/features/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_TFM/include/psa/crypto_types.h +++ b/features/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_TFM/include/psa/crypto_types.h @@ -49,6 +49,10 @@ typedef int32_t psa_status_t; * @{ */ +/* Integral type representing a key handle. */ +typedef uint16_t psa_key_handle_t; + + /** \brief Encoding of a key type. */ typedef uint32_t psa_key_type_t; @@ -297,7 +301,7 @@ typedef uint32_t psa_key_usage_t; * * Once a key has been created, it is impossible to change its attributes. */ -typedef struct psa_key_attributes_s psa_key_attributes_t; +typedef struct psa_client_key_attributes_s psa_key_attributes_t; /**@}*/ diff --git a/features/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_TFM/include/psa/crypto_values.h b/features/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_TFM/include/psa/crypto_values.h index 7fde07385fa..e21ef273e99 100644 --- a/features/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_TFM/include/psa/crypto_values.h +++ b/features/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_TFM/include/psa/crypto_values.h @@ -1556,16 +1556,16 @@ /** The minimum value for a key identifier chosen by the application. */ -#define PSA_KEY_ID_USER_MIN ((psa_app_key_id_t)0x00000001) +#define PSA_KEY_ID_USER_MIN ((psa_key_id_t)0x00000001) /** The maximum value for a key identifier chosen by the application. */ -#define PSA_KEY_ID_USER_MAX ((psa_app_key_id_t)0x3fffffff) +#define PSA_KEY_ID_USER_MAX ((psa_key_id_t)0x3fffffff) /** The minimum value for a key identifier chosen by the implementation. */ -#define PSA_KEY_ID_VENDOR_MIN ((psa_app_key_id_t)0x40000000) +#define PSA_KEY_ID_VENDOR_MIN ((psa_key_id_t)0x40000000) /** The maximum value for a key identifier chosen by the implementation. */ -#define PSA_KEY_ID_VENDOR_MAX ((psa_app_key_id_t)0x7fffffff) +#define PSA_KEY_ID_VENDOR_MAX ((psa_key_id_t)0x7fffffff) /**@}*/ diff --git a/features/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_TFM/include/psa_manifest/sid.h b/features/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_TFM/include/psa_manifest/sid.h index 4b9b8c9c52e..f9bdf7cf37d 100644 --- a/features/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_TFM/include/psa_manifest/sid.h +++ b/features/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_TFM/include/psa_manifest/sid.h @@ -14,17 +14,17 @@ extern "C" { #endif -/******** TFM_SP_STORAGE ********/ -#define TFM_SST_SET_SID (0x00000060U) -#define TFM_SST_SET_VERSION (1U) -#define TFM_SST_GET_SID (0x00000061U) -#define TFM_SST_GET_VERSION (1U) -#define TFM_SST_GET_INFO_SID (0x00000062U) -#define TFM_SST_GET_INFO_VERSION (1U) -#define TFM_SST_REMOVE_SID (0x00000063U) -#define TFM_SST_REMOVE_VERSION (1U) -#define TFM_SST_GET_SUPPORT_SID (0x00000064U) -#define TFM_SST_GET_SUPPORT_VERSION (1U) +/******** TFM_SP_PS ********/ +#define TFM_PS_SET_SID (0x00000060U) +#define TFM_PS_SET_VERSION (1U) +#define TFM_PS_GET_SID (0x00000061U) +#define TFM_PS_GET_VERSION (1U) +#define TFM_PS_GET_INFO_SID (0x00000062U) +#define TFM_PS_GET_INFO_VERSION (1U) +#define TFM_PS_REMOVE_SID (0x00000063U) +#define TFM_PS_REMOVE_VERSION (1U) +#define TFM_PS_GET_SUPPORT_SID (0x00000064U) +#define TFM_PS_GET_SUPPORT_VERSION (1U) /******** TFM_SP_ITS ********/ #define TFM_ITS_SET_SID (0x00000070U) @@ -126,9 +126,9 @@ extern "C" { #define SPM_CORE_IRQ_TEST_1_EXECUTE_TEST_SCENARIO_SID (0x0000F0A1U) #define SPM_CORE_IRQ_TEST_1_EXECUTE_TEST_SCENARIO_VERSION (1U) -/******** TFM_SP_SST_TEST ********/ -#define TFM_SST_TEST_PREPARE_SID (0x0000F0C0U) -#define TFM_SST_TEST_PREPARE_VERSION (1U) +/******** TFM_SP_PS_TEST ********/ +#define TFM_PS_TEST_PREPARE_SID (0x0000F0C0U) +#define TFM_PS_TEST_PREPARE_VERSION (1U) /******** TFM_SP_SECURE_CLIENT_2 ********/ #define TFM_SECURE_CLIENT_2_SID (0x0000F0E0U) diff --git a/features/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_TFM/include/tfm_crypto_defs.h b/features/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_TFM/include/tfm_crypto_defs.h index 53c03ce0223..dd45e3b62db 100644 --- a/features/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_TFM/include/tfm_crypto_defs.h +++ b/features/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_TFM/include/tfm_crypto_defs.h @@ -40,6 +40,7 @@ struct tfm_crypto_pack_iovec { uint16_t step; /*!< Key derivation step */ psa_key_handle_t key_handle; /*!< Key handle */ psa_algorithm_t alg; /*!< Algorithm */ + psa_algorithm_t alg2; /*!< Enrollment Algorithm */ uint32_t op_handle; /*!< Frontend context handle associated to a * multipart operation */ diff --git a/features/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_TFM/include/tfm_veneers.h b/features/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_TFM/include/tfm_veneers.h index d2d9207ffc2..c66006a7501 100644 --- a/features/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_TFM/include/tfm_veneers.h +++ b/features/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_TFM/include/tfm_veneers.h @@ -16,14 +16,14 @@ extern "C" { #endif -#ifdef TFM_PARTITION_SECURE_STORAGE -/******** TFM_SP_STORAGE ********/ -psa_status_t tfm_tfm_sst_set_req_veneer(psa_invec *in_vec, size_t in_len, psa_outvec *out_vec, size_t out_len); -psa_status_t tfm_tfm_sst_get_req_veneer(psa_invec *in_vec, size_t in_len, psa_outvec *out_vec, size_t out_len); -psa_status_t tfm_tfm_sst_get_info_req_veneer(psa_invec *in_vec, size_t in_len, psa_outvec *out_vec, size_t out_len); -psa_status_t tfm_tfm_sst_remove_req_veneer(psa_invec *in_vec, size_t in_len, psa_outvec *out_vec, size_t out_len); -psa_status_t tfm_tfm_sst_get_support_req_veneer(psa_invec *in_vec, size_t in_len, psa_outvec *out_vec, size_t out_len); -#endif /* TFM_PARTITION_SECURE_STORAGE */ +#ifdef TFM_PARTITION_PROTECTED_STORAGE +/******** TFM_SP_PS ********/ +psa_status_t tfm_tfm_ps_set_req_veneer(psa_invec *in_vec, size_t in_len, psa_outvec *out_vec, size_t out_len); +psa_status_t tfm_tfm_ps_get_req_veneer(psa_invec *in_vec, size_t in_len, psa_outvec *out_vec, size_t out_len); +psa_status_t tfm_tfm_ps_get_info_req_veneer(psa_invec *in_vec, size_t in_len, psa_outvec *out_vec, size_t out_len); +psa_status_t tfm_tfm_ps_remove_req_veneer(psa_invec *in_vec, size_t in_len, psa_outvec *out_vec, size_t out_len); +psa_status_t tfm_tfm_ps_get_support_req_veneer(psa_invec *in_vec, size_t in_len, psa_outvec *out_vec, size_t out_len); +#endif /* TFM_PARTITION_PROTECTED_STORAGE */ #ifdef TFM_PARTITION_INTERNAL_TRUSTED_STORAGE /******** TFM_SP_ITS ********/ @@ -159,10 +159,10 @@ psa_status_t tfm_spm_irq_test_1_prepare_test_scenario_veneer(psa_invec *in_vec, psa_status_t tfm_spm_irq_test_1_execute_test_scenario_veneer(psa_invec *in_vec, size_t in_len, psa_outvec *out_vec, size_t out_len); #endif /* TFM_ENABLE_IRQ_TEST */ -#ifdef TFM_PARTITION_TEST_SST -/******** TFM_SP_SST_TEST ********/ -psa_status_t tfm_tfm_sst_test_prepare_veneer(psa_invec *in_vec, size_t in_len, psa_outvec *out_vec, size_t out_len); -#endif /* TFM_PARTITION_TEST_SST */ +#ifdef TFM_PARTITION_TEST_PS +/******** TFM_SP_PS_TEST ********/ +psa_status_t tfm_tfm_ps_test_prepare_veneer(psa_invec *in_vec, size_t in_len, psa_outvec *out_vec, size_t out_len); +#endif /* TFM_PARTITION_TEST_PS */ #ifdef TFM_PARTITION_TEST_SECURE_SERVICES /******** TFM_SP_SECURE_CLIENT_2 ********/ diff --git a/features/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_TFM/src/tfm_sst_ipc_api.c b/features/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_TFM/src/tfm_ps_ipc_api.c similarity index 92% rename from features/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_TFM/src/tfm_sst_ipc_api.c rename to features/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_TFM/src/tfm_ps_ipc_api.c index 41304281f5f..7cc3a63fffc 100644 --- a/features/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_TFM/src/tfm_sst_ipc_api.c +++ b/features/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_TFM/src/tfm_ps_ipc_api.c @@ -26,7 +26,7 @@ psa_status_t psa_ps_set(psa_storage_uid_t uid, { .base = &create_flags, .len = sizeof(create_flags) } }; - handle = psa_connect(TFM_SST_SET_SID, TFM_SST_SET_VERSION); + handle = psa_connect(TFM_PS_SET_SID, TFM_PS_SET_VERSION); if (!PSA_HANDLE_IS_VALID(handle)) { return PSA_ERROR_GENERIC_ERROR; } @@ -69,7 +69,7 @@ psa_status_t psa_ps_get(psa_storage_uid_t uid, return PSA_ERROR_INVALID_ARGUMENT; } - handle = psa_connect(TFM_SST_GET_SID, TFM_SST_GET_VERSION); + handle = psa_connect(TFM_PS_GET_SID, TFM_PS_GET_VERSION); if (!PSA_HANDLE_IS_VALID(handle)) { return PSA_ERROR_GENERIC_ERROR; } @@ -98,7 +98,7 @@ psa_status_t psa_ps_get_info(psa_storage_uid_t uid, { .base = p_info, .len = sizeof(*p_info) } }; - handle = psa_connect(TFM_SST_GET_INFO_SID, TFM_SST_GET_INFO_VERSION); + handle = psa_connect(TFM_PS_GET_INFO_SID, TFM_PS_GET_INFO_VERSION); if (!PSA_HANDLE_IS_VALID(handle)) { return PSA_ERROR_GENERIC_ERROR; } @@ -121,7 +121,7 @@ psa_status_t psa_ps_remove(psa_storage_uid_t uid) }; - handle = psa_connect(TFM_SST_REMOVE_SID, TFM_SST_REMOVE_VERSION); + handle = psa_connect(TFM_PS_REMOVE_SID, TFM_PS_REMOVE_VERSION); if (!PSA_HANDLE_IS_VALID(handle)) { return PSA_ERROR_GENERIC_ERROR; } @@ -170,7 +170,7 @@ uint32_t psa_ps_get_support(void) /* The PSA API does not return an error, so any error from TF-M is * ignored. */ - handle = psa_connect(TFM_SST_GET_SUPPORT_SID, TFM_SST_GET_SUPPORT_VERSION); + handle = psa_connect(TFM_PS_GET_SUPPORT_SID, TFM_PS_GET_SUPPORT_VERSION); if (!PSA_HANDLE_IS_VALID(handle)) { return support_flags; } diff --git a/targets/TARGET_ARM_SSG/TARGET_MUSCA_B1/mcuboot.bin b/targets/TARGET_ARM_SSG/TARGET_MUSCA_B1/mcuboot.bin index bde2aa8c6209a8a80ef75de409adc6b344d4d9c3..e3d3a9e3ff3b120e7b2649f7fc5575e3c9e5fb6f 100644 GIT binary patch delta 5601 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 delta 5500 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 E0;ee8FaQ7m diff --git a/targets/TARGET_ARM_SSG/TARGET_MUSCA_B1/tfm_s.axf b/targets/TARGET_ARM_SSG/TARGET_MUSCA_B1/tfm_s.axf index 059c17ca4a1d02455740d174ced5dc0c2caa2728..9f933b6173811ad94dbbb80cdebaebb79597313d 100644 GIT binary patch delta 91081 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 I|2Vz#f7pmWZ~y=R diff --git a/targets/TARGET_ARM_SSG/TARGET_MUSCA_B1/tfm_s.bin b/targets/TARGET_ARM_SSG/TARGET_MUSCA_B1/tfm_s.bin index 9ac7aee4fa1f9e082aefecc6fe954e0f3640b111..6a8937f36615123afbaaa78d33389b6ec7feae13 100644 GIT binary patch delta 32852 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 CWv{aU diff --git a/tools/psa/tfm/bin_utils/imgtool.py b/tools/psa/tfm/bin_utils/imgtool.py index 2d1d97bbb9b..b5242456f01 100644 --- a/tools/psa/tfm/bin_utils/imgtool.py +++ b/tools/psa/tfm/bin_utils/imgtool.py @@ -24,6 +24,7 @@ from imgtool_lib import version import sys import macro_parser +import fileinput sign_bin_size_re = re.compile(r"^\s*RE_SIGN_BIN_SIZE\s*=\s*(.*)") image_load_address_re = re.compile(r"^\s*RE_IMAGE_LOAD_ADDRESS\s*=\s*(.*)") @@ -126,10 +127,30 @@ def do_sign(args): img.save(args.outfile) +def do_flash(args): + image_value_re = re.compile(r"^\s*"+args.macro+"\s*=\s*(.*)") + value = macro_parser.evaluate_macro(args.layout, image_value_re, 0, 1, + True) + if args.setting == 1: + begin_line="set "+args.begin + else: + begin_line=args.begin + + for line in fileinput.input(args.infile, inplace=True): + if line.startswith(begin_line): + if args.division: + value = int(value/int(args.division)) + if args.phexa == 0: + line = begin_line+"="+str(value)+"\n" + else: + line = begin_line+"="+hex(value)+"\n" + sys.stdout.write(line) + subcmds = { 'keygen': do_keygen, 'getpub': do_getpub, - 'sign': do_sign, } + 'sign': do_sign, + 'flash': do_flash, } def get_dependencies(text): @@ -205,6 +226,23 @@ def args(): sign.add_argument("infile") sign.add_argument("outfile") + flash = subs.add_parser('flash', help='modify flash script') + flash.add_argument("infile") + flash.add_argument('-l', '--layout', required=True, + help='Location of the file that contains preprocessed macros') + flash.add_argument('-m', '--macro', required =True, + help='macro symbol string to grep in preprocessed file') + flash.add_argument('-b', '--begin', required=True, + help='begin of line to replace ') + flash.add_argument('-s', '--setting',type=intparse,required=False,default=0, + help='search for window batch set variable') + flash.add_argument('-d', '--division', + required=False,type=intparse,default=0, + help='search for window batch set variable') + flash.add_argument('-p', '--phexa', + required=False,type=intparse,default=1, + help='print value in hexa') + args = parser.parse_args() if args.subcmd is None: print('Must specify a subcommand', file=sys.stderr)