SST: Replace SST APIs with PSA PS APIs

Refactors the SST non-secure interfaces, secure API, veneers and
manifest to implement the PSA Protected Storage specification. Adds a
stub implementation for the new SST APIs; another patch will add the
final implementation.

Change-Id: Id62eb82c9d33afd2114962ab1994d567cd81e4f7
Signed-off-by: Jamie Fox <jamie.fox@arm.com>
diff --git a/secure_fw/ns_callable/tfm_sst_veneers.c b/secure_fw/ns_callable/tfm_sst_veneers.c
index 9c63e14..5348d5d 100644
--- a/secure_fw/ns_callable/tfm_sst_veneers.c
+++ b/secure_fw/ns_callable/tfm_sst_veneers.c
@@ -1,74 +1,54 @@
 /*
- * Copyright (c) 2017-2018, Arm Limited. All rights reserved.
+ * Copyright (c) 2017-2019, Arm Limited. All rights reserved.
  *
  * SPDX-License-Identifier: BSD-3-Clause
  *
  */
 
 #include "tfm_sst_veneers.h"
-#include "secure_fw/services/secure_storage/sst_asset_management.h"
-#include "tfm_secure_api.h"
-#include "tfm_api.h"
+
+#include "secure_fw/core/tfm_secure_api.h"
+#include "secure_fw/services/secure_storage/tfm_protected_storage.h"
 #include "secure_fw/spm/spm_partition_defs.h"
 
 __tfm_secure_gateway_attributes__
-enum psa_sst_err_t tfm_sst_veneer_create(uint32_t asset_uuid,
-                                         const struct tfm_sst_token_t *s_token)
+enum tfm_sst_err_t tfm_sst_veneer_set(const psa_ps_uid_t *uid,
+                                      uint32_t data_length,
+                                      const void *p_data,
+                                      psa_ps_create_flags_t create_flags)
 {
-    TFM_CORE_SFN_REQUEST(TFM_SP_STORAGE_ID, sst_am_create,
-                         asset_uuid, s_token, 0, 0);
+    TFM_CORE_SFN_REQUEST(TFM_SP_STORAGE_ID, tfm_sst_set,
+                         uid, data_length, p_data, create_flags);
 }
 
 __tfm_secure_gateway_attributes__
-enum psa_sst_err_t tfm_sst_veneer_get_info(uint32_t asset_uuid,
-                                          const struct tfm_sst_token_t *s_token,
-                                          struct psa_sst_asset_info_t *info)
+enum tfm_sst_err_t tfm_sst_veneer_get(const psa_ps_uid_t *uid,
+                                      uint32_t data_offset,
+                                      uint32_t data_length,
+                                      void *p_data)
 {
-    TFM_CORE_SFN_REQUEST(TFM_SP_STORAGE_ID, sst_am_get_info,
-                         asset_uuid, s_token, info, 0);
+    TFM_CORE_SFN_REQUEST(TFM_SP_STORAGE_ID, tfm_sst_get,
+                         uid, data_offset, data_length, p_data);
 }
 
 __tfm_secure_gateway_attributes__
-enum psa_sst_err_t tfm_sst_veneer_get_attributes(uint32_t asset_uuid,
-                                          const struct tfm_sst_token_t *s_token,
-                                          struct psa_sst_asset_attrs_t *attrs)
+enum tfm_sst_err_t tfm_sst_veneer_get_info(const psa_ps_uid_t *uid,
+                                           struct psa_ps_info_t *p_info)
 {
-    TFM_CORE_SFN_REQUEST(TFM_SP_STORAGE_ID, sst_am_get_attributes,
-                         asset_uuid, s_token, attrs, 0);
+    TFM_CORE_SFN_REQUEST(TFM_SP_STORAGE_ID, tfm_sst_get_info,
+                         uid, p_info, 0, 0);
 }
 
 __tfm_secure_gateway_attributes__
-enum psa_sst_err_t tfm_sst_veneer_set_attributes(uint32_t asset_uuid,
-                                      const struct tfm_sst_token_t *s_token,
-                                      const struct psa_sst_asset_attrs_t *attrs)
+enum tfm_sst_err_t tfm_sst_veneer_remove(const psa_ps_uid_t *uid)
 {
-    TFM_CORE_SFN_REQUEST(TFM_SP_STORAGE_ID, sst_am_set_attributes,
-                         asset_uuid, s_token, attrs, 0);
+    TFM_CORE_SFN_REQUEST(TFM_SP_STORAGE_ID, tfm_sst_remove,
+                         uid, 0, 0, 0);
 }
 
 __tfm_secure_gateway_attributes__
-enum psa_sst_err_t tfm_sst_veneer_read(int32_t client_id,
-                                       uint32_t asset_uuid,
-                                       const struct tfm_sst_token_t *s_token,
-                                       struct tfm_sst_buf_t *data)
+enum tfm_sst_err_t tfm_sst_veneer_get_support(uint32_t *support_flags)
 {
-    TFM_CORE_SFN_REQUEST(TFM_SP_STORAGE_ID, sst_am_read, client_id,
-                         asset_uuid, s_token, data);
-}
-
-__tfm_secure_gateway_attributes__
-enum psa_sst_err_t tfm_sst_veneer_write(uint32_t asset_uuid,
-                                        const struct tfm_sst_token_t *s_token,
-                                        struct tfm_sst_buf_t *data)
-{
-    TFM_CORE_SFN_REQUEST(TFM_SP_STORAGE_ID, sst_am_write,
-                         asset_uuid, s_token, data, 0);
-}
-
-__tfm_secure_gateway_attributes__
-enum psa_sst_err_t tfm_sst_veneer_delete(uint32_t asset_uuid,
-                                         const struct tfm_sst_token_t *s_token)
-{
-    TFM_CORE_SFN_REQUEST(TFM_SP_STORAGE_ID, sst_am_delete,
-                         asset_uuid, s_token, 0, 0);
+    TFM_CORE_SFN_REQUEST(TFM_SP_STORAGE_ID, tfm_sst_get_support,
+                         support_flags, 0, 0, 0);
 }
diff --git a/secure_fw/ns_callable/tfm_veneers.c b/secure_fw/ns_callable/tfm_veneers.c
index 30ef5f1..c3df282 100644
--- a/secure_fw/ns_callable/tfm_veneers.c
+++ b/secure_fw/ns_callable/tfm_veneers.c
@@ -12,13 +12,11 @@
 #include "secure_fw/spm/spm_partition_defs.h"
 
 /******** TFM_SP_STORAGE ********/
-psa_status_t sst_am_create(struct psa_invec *, size_t, struct psa_outvec *, size_t);
-psa_status_t sst_am_get_info(struct psa_invec *, size_t, struct psa_outvec *, size_t);
-psa_status_t sst_am_get_attributes(struct psa_invec *, size_t, struct psa_outvec *, size_t);
-psa_status_t sst_am_set_attributes(struct psa_invec *, size_t, struct psa_outvec *, size_t);
-psa_status_t sst_am_read(struct psa_invec *, size_t, struct psa_outvec *, size_t);
-psa_status_t sst_am_write(struct psa_invec *, size_t, struct psa_outvec *, size_t);
-psa_status_t sst_am_delete(struct psa_invec *, size_t, struct psa_outvec *, size_t);
+psa_status_t tfm_sst_set(struct psa_invec *, size_t, struct psa_outvec *, size_t);
+psa_status_t tfm_sst_get(struct psa_invec *, size_t, struct psa_outvec *, size_t);
+psa_status_t tfm_sst_get_info(struct psa_invec *, size_t, struct psa_outvec *, size_t);
+psa_status_t tfm_sst_remove(struct psa_invec *, size_t, struct psa_outvec *, size_t);
+psa_status_t tfm_sst_get_support(struct psa_invec *, size_t, struct psa_outvec *, size_t);
 
 /******** TFM_SP_AUDIT_LOG ********/
 psa_status_t audit_core_retrieve_record(struct psa_invec *, size_t, struct psa_outvec *, size_t);
@@ -92,13 +90,11 @@
     }
 
 /******** TFM_SP_STORAGE ********/
-TFM_VENEER_FUNCTION(TFM_SP_STORAGE, sst_am_create)
-TFM_VENEER_FUNCTION(TFM_SP_STORAGE, sst_am_get_info)
-TFM_VENEER_FUNCTION(TFM_SP_STORAGE, sst_am_get_attributes)
-TFM_VENEER_FUNCTION(TFM_SP_STORAGE, sst_am_set_attributes)
-TFM_VENEER_FUNCTION(TFM_SP_STORAGE, sst_am_read)
-TFM_VENEER_FUNCTION(TFM_SP_STORAGE, sst_am_write)
-TFM_VENEER_FUNCTION(TFM_SP_STORAGE, sst_am_delete)
+TFM_VENEER_FUNCTION(TFM_SP_STORAGE, tfm_sst_set)
+TFM_VENEER_FUNCTION(TFM_SP_STORAGE, tfm_sst_get)
+TFM_VENEER_FUNCTION(TFM_SP_STORAGE, tfm_sst_get_info)
+TFM_VENEER_FUNCTION(TFM_SP_STORAGE, tfm_sst_remove)
+TFM_VENEER_FUNCTION(TFM_SP_STORAGE, tfm_sst_get_support)
 
 /******** TFM_SP_AUDIT_LOG ********/
 TFM_VENEER_FUNCTION(TFM_SP_AUDIT_LOG, audit_core_retrieve_record)