Crypto: Align PSA headers entirely to Mbed TLS 3.6.0

This also simplifies the client attributes translation between
client view and service view and reorganized how the Mbed TLS
config files are handled between NS/S (client/service) sides.
At the same time, perform a CMake targets refactoring to allow
exporting a client side view of the config files.

Signed-off-by: Antonio de Angelis <antonio.deangelis@arm.com>
Change-Id: I9a715f9ef40fc223992575ecbac5cf23d162a326
diff --git a/cmake/install.cmake b/cmake/install.cmake
index c9530a8..0297080 100644
--- a/cmake/install.cmake
+++ b/cmake/install.cmake
@@ -75,11 +75,24 @@
 endif()
 
 if (TFM_PARTITION_CRYPTO)
-    install(FILES       ${INTERFACE_INC_DIR}/psa/crypto_extra.h
-                        ${INTERFACE_INC_DIR}/psa/crypto_compat.h
+    install(FILES       ${INTERFACE_INC_DIR}/psa/README.rst
+                        ${INTERFACE_INC_DIR}/psa/build_info.h
                         ${INTERFACE_INC_DIR}/psa/crypto.h
-                        ${INTERFACE_INC_DIR}/psa/crypto_client_struct.h
+                        ${INTERFACE_INC_DIR}/psa/crypto_adjust_auto_enabled.h
+                        ${INTERFACE_INC_DIR}/psa/crypto_adjust_config_key_pair_types.h
+                        ${INTERFACE_INC_DIR}/psa/crypto_adjust_config_synonyms.h
+                        ${INTERFACE_INC_DIR}/psa/crypto_builtin_composites.h
+                        ${INTERFACE_INC_DIR}/psa/crypto_builtin_key_derivation.h
+                        ${INTERFACE_INC_DIR}/psa/crypto_builtin_primitives.h
+                        ${INTERFACE_INC_DIR}/psa/crypto_compat.h
+                        ${INTERFACE_INC_DIR}/psa/crypto_driver_common.h
+                        ${INTERFACE_INC_DIR}/psa/crypto_driver_contexts_composites.h
+                        ${INTERFACE_INC_DIR}/psa/crypto_driver_contexts_key_derivation.h
+                        ${INTERFACE_INC_DIR}/psa/crypto_driver_contexts_primitives.h
+                        ${INTERFACE_INC_DIR}/psa/crypto_extra.h
+                        ${INTERFACE_INC_DIR}/psa/crypto_legacy.h
                         ${INTERFACE_INC_DIR}/psa/crypto_platform.h
+                        ${INTERFACE_INC_DIR}/psa/crypto_se_driver.h
                         ${INTERFACE_INC_DIR}/psa/crypto_sizes.h
                         ${INTERFACE_INC_DIR}/psa/crypto_struct.h
                         ${INTERFACE_INC_DIR}/psa/crypto_types.h
@@ -87,6 +100,8 @@
             DESTINATION ${INSTALL_INTERFACE_INC_DIR}/psa)
     install(FILES       ${INTERFACE_INC_DIR}/tfm_crypto_defs.h
             DESTINATION ${INSTALL_INTERFACE_INC_DIR})
+    install(DIRECTORY   ${INTERFACE_INC_DIR}/mbedtls
+            DESTINATION ${INSTALL_INTERFACE_INC_DIR})
 endif()
 
 if (TFM_PARTITION_INITIAL_ATTESTATION)
diff --git a/cmake/spe-CMakeLists.cmake b/cmake/spe-CMakeLists.cmake
index ffde5a2..cb0d36e 100644
--- a/cmake/spe-CMakeLists.cmake
+++ b/cmake/spe-CMakeLists.cmake
@@ -13,7 +13,7 @@
 include(spe_config)
 include(spe_export)
 
-set_target_properties(tfm_config psa_interface PROPERTIES IMPORTED_GLOBAL True)
+set_target_properties(tfm_config psa_interface psa_crypto_config PROPERTIES IMPORTED_GLOBAL True)
 target_link_libraries(tfm_config INTERFACE psa_interface)
 
 # In actual NS integration, NS side build should include the source files
@@ -69,6 +69,13 @@
     )
 endif()
 
+if (TFM_PARTITION_CRYPTO)
+    target_link_libraries(tfm_api_ns
+        PUBLIC
+            psa_crypto_config
+    )
+endif()
+
 add_library(platform_region_defs INTERFACE)
 
 target_compile_definitions(platform_region_defs