SST: Use asset ID instead of handle in all APIs

This patch updates the SST interfaces to:
- use asset ID instead of asset handle as the object is always
  close at the end of each request
- change the asset ID type from uint16_t to uint32_t to allow
  longer asset IDs which can contain vendor specific ID codes
- remove tfm_sst_get_handle API
- updates all files which depend on these APIs and
  their documentation

Change-Id: I4a844e548cc7cdfe2277b007717003a0263e45d1
Signed-off-by: Marc Moreno <marc.morenoberengue@arm.com>
diff --git a/interface/include/tfm_ns_svc.h b/interface/include/tfm_ns_svc.h
index b283dc6..a88df66 100644
--- a/interface/include/tfm_ns_svc.h
+++ b/interface/include/tfm_ns_svc.h
@@ -41,7 +41,6 @@
  *
  */
 #define LIST_SVC_DISPATCHERS \
-    X(SVC_TFM_SST_GET_HANDLE, tfm_sst_svc_get_handle) \
     X(SVC_TFM_SST_CREATE, tfm_sst_svc_create) \
     X(SVC_TFM_SST_GET_INFO, tfm_sst_svc_get_info) \
     X(SVC_TFM_SST_GET_ATTRIBUTES, tfm_sst_svc_get_attributes) \
diff --git a/interface/include/tfm_sst_api.h b/interface/include/tfm_sst_api.h
index 1ce8261..8447bd4 100644
--- a/interface/include/tfm_sst_api.h
+++ b/interface/include/tfm_sst_api.h
@@ -15,21 +15,7 @@
 #include "tfm_sst_defs.h"
 
 /**
- * \brief Gets handler for the given asset UUID. If an asset is deleted, the
- *        linked asset handle reference is no longer valid and will give
- *        TFM_SST_ERR_ASSET_REF_INVALID if used.
- *
- * \param[in]  asset_uuid  Asset UUID
- * \param[out] hdl         Pointer to store the asset's handler
- *
- * \return Returns TFM_SST_ERR_SUCCESS if asset is found. Otherwise, error code
- *         as specified in \ref tfm_sst_err_t
- */
-enum tfm_sst_err_t tfm_sst_get_handle(uint16_t asset_uuid,
-                                      uint32_t* hdl);
-
-/**
- * \brief Allocates space for the asset, referenced by asset handler,
+ * \brief Allocates space for the asset, referenced by asset UUID,
  *        without setting any data in the asset.
  *
  * \param[in] asset_uuid  Asset UUID
@@ -37,77 +23,77 @@
  * \return Returns an TFM_SST_ERR_SUCCESS if asset is created correctly.
  *         Otherwise, error code as specified in \ref tfm_sst_err_t
  */
-enum tfm_sst_err_t  tfm_sst_create(uint16_t asset_uuid);
+enum tfm_sst_err_t  tfm_sst_create(uint32_t asset_uuid);
 
 /**
- * \brief Gets asset's information referenced by asset handler.
+ * \brief Gets asset's information referenced by asset UUID.
  *
- * \param[in]  asset_handle   Asset handler
- * \param[out] info           Pointer to store the asset's information
- *                            \ref tfm_sst_asset_info_t
+ * \param[in]  asset_uuid  Asset UUID
+ * \param[out] info        Pointer to store the asset's information
+ *                         \ref tfm_sst_asset_info_t
  *
  * \return Returns error code as specified in \ref tfm_sst_err_t
  */
-enum tfm_sst_err_t tfm_sst_get_info(uint32_t asset_handle,
+enum tfm_sst_err_t tfm_sst_get_info(uint32_t asset_uuid,
                                     struct tfm_sst_asset_info_t *info);
 
 /**
- * \brief Gets asset's attributes referenced by asset handler.
+ * \brief Gets asset's attributes referenced by asset UUID.
  *
- * \param[in]  asset_handle  Asset handler
- * \param[out] attrs         Pointer to store the asset's attributes
- *                           \ref tfm_sst_asset_attrs_t
- *
+ * \param[in]  asset_uuid  Asset UUID
+ * \param[out] attrs       Pointer to store the asset's attributes
+ *                         \ref tfm_sst_asset_attrs_t
  *
  * \return Returns error code as specified in \ref tfm_sst_err_t
  */
-enum tfm_sst_err_t tfm_sst_get_attributes(uint32_t asset_handle,
+enum tfm_sst_err_t tfm_sst_get_attributes(uint32_t asset_uuid,
                                           struct tfm_sst_asset_attrs_t *attrs);
 
 /**
- * \brief Sets asset's attributes referenced by asset handler.
+ * \brief Sets asset's attributes referenced by asset UUID.
  *
- * \param[in]  asset_handle  Asset handler
- * \param[in]  attrs         Pointer to new the asset's attributes
- *                           \ref tfm_sst_asset_attrs_t
+ * \param[in] asset_uuid  Asset UUID
+ * \param[in] attrs       Pointer to new the asset's attributes
+ *                        \ref tfm_sst_asset_attrs_t
  *
  * \return Returns error code as specified in \ref tfm_sst_err_t
  */
-enum tfm_sst_err_t tfm_sst_set_attributes(uint32_t asset_handle,
+enum tfm_sst_err_t tfm_sst_set_attributes(
+                                     uint32_t asset_uuid,
                                      const struct tfm_sst_asset_attrs_t *attrs);
 
 /**
- * \brief Reads asset's data from asset referenced by asset handler.
+ * \brief Reads asset's data from asset referenced by asset UUID.
  *
- * \param[in]  asset_handle   Asset handler
- * \param[out] data           Pointer to data vector \ref tfm_sst_buf_t to store
- *                            data, size and offset
+ * \param[in]  asset_uuid  Asset UUID
+ * \param[out] data        Pointer to data vector \ref tfm_sst_buf_t to store
+ *                         data, size and offset
  *
  * \return Returns error code as specified in \ref tfm_sst_err_t
  */
-enum tfm_sst_err_t tfm_sst_read(uint32_t asset_handle,
+enum tfm_sst_err_t tfm_sst_read(uint32_t asset_uuid,
                                 struct tfm_sst_buf_t* data);
 
 /**
- * \brief Writes data into an asset referenced by asset handler.
+ * \brief Writes data into an asset referenced by asset UUID.
  *
- * \param[in] asset_handle   Asset handler
- * \param[in] data           Pointer to data vector \ref tfm_sst_buf_t which
- *                           contains the data to write
+ * \param[in] asset_uuid  Asset UUID
+ * \param[in] data        Pointer to data vector \ref tfm_sst_buf_t which
+ *                        contains the data to write
  *
  * \return Returns error code as specified in \ref tfm_sst_err_t
  */
-enum tfm_sst_err_t tfm_sst_write(uint32_t asset_handle,
+enum tfm_sst_err_t tfm_sst_write(uint32_t asset_uuid,
                                  struct tfm_sst_buf_t* data);
 
 /**
- * \brief Deletes the asset referenced by the asset handler.
+ * \brief Deletes the asset referenced by the asset UUID.
  *
- * \param[in] asset_handle  Asset handler
+ * \param[in] asset_uuid  Asset UUID
  *
  * \return Returns error code as specified in \ref tfm_sst_err_t
  */
-enum tfm_sst_err_t tfm_sst_delete(uint32_t asset_handle);
+enum tfm_sst_err_t tfm_sst_delete(uint32_t asset_uuid);
 
 #ifdef __cplusplus
 }
diff --git a/interface/include/tfm_sst_defs.h b/interface/include/tfm_sst_defs.h
index 1fac2ad..52e41b3 100644
--- a/interface/include/tfm_sst_defs.h
+++ b/interface/include/tfm_sst_defs.h
@@ -47,7 +47,6 @@
     TFM_SST_ERR_ASSET_NOT_PREPARED = TFM_SST_ERR_OFFSET,
     TFM_SST_ERR_ASSET_NOT_FOUND,
     TFM_SST_ERR_PARAM_ERROR,
-    TFM_SST_ERR_INVALID_HANDLE,
     TFM_SST_ERR_STORAGE_SYSTEM_FULL,
     TFM_SST_ERR_SYSTEM_ERROR,
     /* Following entry is only to ensure the error code of int size */
diff --git a/interface/include/tfm_sst_svc_handler.h b/interface/include/tfm_sst_svc_handler.h
index 18e06d3..a43e545 100644
--- a/interface/include/tfm_sst_svc_handler.h
+++ b/interface/include/tfm_sst_svc_handler.h
@@ -15,103 +15,83 @@
 #include "tfm_sst_defs.h"
 
 /**
- * \brief SVC funtion to get handler for the given asset UUID. If an asset is
- *        deleted, the linked asset handle reference is no longer valid and
- *        will give TFM_SST_ERR_ASSET_REF_INVALID if used.
- *
- * \param[in]  asset_uuid  Asset UUID
- * \param[out] hdl         Pointer to store the asset's handler
- *
- * \return Returns TFM_SST_ERR_SUCCESS if asset is found. Otherwise, error code
- *         as specified in \ref tfm_sst_err_t
- */
-enum tfm_sst_err_t tfm_sst_svc_get_handle(uint16_t asset_uuid,
-                                          uint32_t* hdl);
-
-/**
  * \brief SVC funtion to allocate space for the asset, referenced by asset
- *        handler, without setting any data in the asset.
+ *        UUID, without setting any data in the asset.
  *
  * \param[in] asset_uuid  Asset UUID
  *
  * \return Returns an TFM_SST_ERR_SUCCESS if asset is created correctly.
  *         Otherwise, error code as specified in \ref tfm_sst_err_t
  */
-enum tfm_sst_err_t tfm_sst_svc_create(uint16_t asset_uuid);
+enum tfm_sst_err_t tfm_sst_svc_create(uint32_t asset_uuid);
 
 /**
- * \brief SVC funtion to get asset's information referenced by asset handler.
+ * \brief SVC funtion to get asset's information referenced by asset UUID.
  *
- * \param[in]  asset_handle   Asset handler
- * \param[out] info           Pointer to store the asset's information
- *                            \ref tfm_sst_asset_info_t
+ * \param[in]  asset_uuid  Asset UUID
+ * \param[out] info        Pointer to store the asset's information
+ *                         \ref tfm_sst_asset_info_t
  *
  * \return Returns error code as specified in \ref tfm_sst_err_t
  */
-enum tfm_sst_err_t tfm_sst_svc_get_info(uint32_t asset_handle,
-                                       struct tfm_sst_asset_info_t *info);
-
+enum tfm_sst_err_t tfm_sst_svc_get_info(uint32_t asset_uuid,
+                                        struct tfm_sst_asset_info_t *info);
 /**
- * \brief SVC funtion to get asset's attributes referenced by asset
- *        handler.
+ * \brief SVC funtion to get asset's attributes referenced by asset UUID.
  *
- * \param[in]  asset_handle  Asset handler
- * \param[out] attrs         Pointer to store the asset's attributes
- *                           \ref tfm_sst_asset_attrs_t
+ * \param[in]  asset_uuid  Asset UUID
+ * \param[out] attrs       Pointer to store the asset's attributes
+ *                         \ref tfm_sst_asset_attrs_t
  *
  * \return Returns error code as specified in \ref tfm_sst_err_t
  */
-enum tfm_sst_err_t tfm_sst_svc_get_attributes(
-                                           uint32_t asset_handle,
+enum tfm_sst_err_t tfm_sst_svc_get_attributes(uint32_t asset_uuid,
                                            struct tfm_sst_asset_attrs_t *attrs);
 
 /**
- * \brief SVC funtion to set asset's attributes referenced by asset
- *        handler.
+ * \brief SVC funtion to set asset's attributes referenced by asset UUID.
  *
- * \param[in] asset_handle  Asset handler
- * \param[in] attrs         Pointer to new the asset's attributes
- *                           \ref tfm_sst_asset_attrs_t
+ * \param[in] asset_uuid  Asset UUID
+ * \param[in] attrs       Pointer to new the asset's attributes
+ *                        \ref tfm_sst_asset_attrs_t
  *
  * \return Returns error code as specified in \ref tfm_sst_err_t
  */
-enum tfm_sst_err_t tfm_sst_svc_set_attributes(
-                                     uint32_t asset_handle,
+enum tfm_sst_err_t tfm_sst_svc_set_attributes(uint32_t asset_uuid,
                                      const struct tfm_sst_asset_attrs_t *attrs);
 
 /**
- * \brief SVC funtion to read asset's data from asset referenced by asset
- *        handler.
+ * \brief SVC funtion to read asset's data from asset referenced by asset UUID.
  *
- * \param[in]  asset_handle  Asset handler
- * \param[out] data          Pointer to data vector \ref tfm_sst_buf_t to store
- *                           data, size and offset
+ * \param[in]  asset_uuid  Asset UUID
+ * \param[out] data        Pointer to data vector \ref tfm_sst_buf_t to store
+ *                         data, size and offset
  *
  * \return Returns error code as specified in \ref tfm_sst_err_t
  */
-enum tfm_sst_err_t tfm_sst_svc_read(uint32_t asset_handle,
+enum tfm_sst_err_t tfm_sst_svc_read(uint32_t asset_uuid,
                                     struct tfm_sst_buf_t* data);
 
 /**
- * \brief SVC funtion to write data into an asset referenced by asset handler.
+ * \brief SVC funtion to write data into an asset referenced by asset UUID.
  *
- * \param[in] asset_handle   Asset handler
- * \param[in] data           Pointer to data vector \ref tfm_sst_buf_t which
- *                           contains the data to write
+ * \param[in] asset_uuid  Asset UUID
+ * \param[in] data        Pointer to data vector \ref tfm_sst_buf_t which
+ *                        contains the data to write
  *
  * \return Returns error code as specified in \ref tfm_sst_err_t
  */
-enum tfm_sst_err_t tfm_sst_svc_write(uint32_t asset_handle,
+enum tfm_sst_err_t tfm_sst_svc_write(uint32_t asset_uuid,
                                      struct tfm_sst_buf_t* data);
 
 /**
- * \brief SVC funtion to delete the asset referenced by the asset handler.
+ * \brief SVC funtion to delete the asset referenced by the asset UUID.
  *
- * \param[in] asset_handle  Asset handler
+ * \param[in] asset_uuid  Asset UUID
  *
  * \return Returns error code as specified in \ref tfm_sst_err_t
  */
-enum tfm_sst_err_t tfm_sst_svc_delete(uint32_t asset_handle);
+enum tfm_sst_err_t tfm_sst_svc_delete(uint32_t asset_uuid);
 
 #ifdef __cplusplus
 }
diff --git a/interface/include/tfm_sst_veneers.h b/interface/include/tfm_sst_veneers.h
index 108ea97..033f1cb 100644
--- a/interface/include/tfm_sst_veneers.h
+++ b/interface/include/tfm_sst_veneers.h
@@ -15,118 +15,101 @@
 #include "tfm_sst_defs.h"
 
 /**
- * \brief Gets handler for the given asset uuid. If an asset is deleted, the
- *        linked asset handle reference is no longer valid and will give
- *        TFM_SST_ERR_ASSET_REF_INVALID if used.
- *
- * \param[in]  app_id      Application ID
- * \param[in]  asset_uuid  Asset UUID
- * \param[out] hdl         Handle to be returned
- *
- * \return Returns asset handle. If asset is not found, it returns
- *         TFM_SST_ERR_ASSET_NOT_FOUND. If SST area is not prepared, it returns
- *         TFM_SST_ERR_ASSET_NOT_PREPARED.
- */
-enum tfm_sst_err_t tfm_sst_veneer_get_handle(uint32_t app_id,
-                                             uint16_t asset_uuid,
-                                             uint32_t *hdl);
-/**
- * \brief Allocates space for the asset, referenced by asset handler,
+ * \brief Allocates space for the asset, referenced by asset UUID,
  *        without setting any data in the asset.
  *
  * \param[in] app_id      Application ID
  * \param[in] asset_uuid  Asset UUID
  *
- * \return Returns an asset handle. If SST area is not prepared, it returns
+ * \return Returns TFM_SST_ERR_SUCCESS if the asset has been created correctly.
+ *         If SST area is not prepared, it returns
  *         TFM_SST_ERR_ASSET_NOT_PREPARED. If SST area is full, it returns
  *         TFM_SST_ERR_STORAGE_SYSTEM_FULL. If application id doesn't have the
  *         write rights, it returns TFM_SST_ERR_PERMS_NOT_ALLOWED.
  */
-enum tfm_sst_err_t tfm_sst_veneer_create(uint32_t app_id, uint16_t asset_uuid);
+enum tfm_sst_err_t tfm_sst_veneer_create(uint32_t app_id, uint32_t asset_uuid);
 
 /**
- * \brief Gets asset's information referenced by asset handler.
+ * \brief Gets asset's information referenced by asset UUID.
  *
- * \param[in]  app_id        Application ID
- * \param[in]  asset_handle  Asset handler
- * \param[out] info          Pointer to store the asset's information
- *                           \ref tfm_sst_asset_info_t
+ * \param[in]  app_id      Application ID
+ * \param[in]  asset_uuid  Asset UUID
+ * \param[out] info        Pointer to store the asset's information
+ *                         \ref tfm_sst_asset_info_t
  *
  * \return Returns error code as specified in \ref tfm_sst_err_t
  */
-enum tfm_sst_err_t tfm_sst_veneer_get_info(uint32_t app_id,
-                                           uint32_t asset_handle,
-                                           struct tfm_sst_asset_info_t *info);
+enum tfm_sst_err_t tfm_sst_veneer_get_info(uint32_t app_id, uint32_t asset_uuid,
+                                    struct tfm_sst_asset_info_t *info);
 
 /**
- * \brief Gets asset's attributes referenced by asset handler.
+ * \brief Gets asset's attributes referenced by asset UUID.
  *
- * \param[in]  app_id        Application ID
- * \param[in]  asset_handle  Asset handler
- * \param[out] attrs         Pointer to store the asset's attributes
+ * \param[in]  app_id      Application ID
+ * \param[in]  asset_uuid  Asset UUID
+ * \param[out] attrs       Pointer to store the asset's attributes
+ *                         \ref tfm_sst_asset_attrs_t
  *
  * \return Returns error code as specified in \ref tfm_sst_err_t
  */
-enum tfm_sst_err_t tfm_sst_veneer_get_attributes(
-                                           uint32_t app_id,
-                                           uint32_t asset_handle,
+enum tfm_sst_err_t tfm_sst_veneer_get_attributes(uint32_t app_id,
+                                                 uint32_t asset_uuid,
                                            struct tfm_sst_asset_attrs_t *attrs);
 
 /**
- * \brief Sets asset's attributes referenced by asset handler.
+ * \brief Sets asset's attributes referenced by asset UUID.
  *
- * \param[in] app_id        Application ID
- * \param[in] asset_handle  Asset handler
- * \param[in] attrs         Pointer to new the asset's attributes
- *                           \ref tfm_sst_asset_attrs_t
+ * \param[in] app_id       Application ID
+ * \param[in] asset_uuid   Asset UUID
+ * \param[in] attrs        Pointer to new the asset's attributes
+ *                         \ref tfm_sst_asset_attrs_t
  *
  * \return Returns error code as specified in \ref tfm_sst_err_t
  */
-enum tfm_sst_err_t tfm_sst_veneer_set_attributes(
-                                     uint32_t app_id,
-                                     uint32_t asset_handle,
+enum tfm_sst_err_t tfm_sst_veneer_set_attributes(uint32_t app_id,
+                                                 uint32_t asset_uuid,
                                      const struct tfm_sst_asset_attrs_t *attrs);
 
 /**
- * \brief Reads asset's data from asset referenced by asset handler.
+ * \brief Reads asset's data from asset referenced by asset UUID.
  *
- * \param[in]     app_id         Application ID
- * \param[in]     asset_handle   Asset handler
- * \param[in/out] data           Pointer to data vector \ref tfm_sst_buf_t to
- *                               store data, size and offset
+ * \param[in]     app_id      Application ID
+ * \param[in]     asset_uuid  Asset UUID
+ * \param[in/out] data        Pointer to data vector \ref tfm_sst_buf_t to
+ *                            store data, size and offset
  *
  * \return Returns the number of bytes written or a castable \ref tfm_sst_err_t
  *         value
  */
 enum tfm_sst_err_t tfm_sst_veneer_read(uint32_t app_id,
-                                       uint32_t asset_handle,
+                                       uint32_t asset_uuid,
                                        struct tfm_sst_buf_t *data);
 /**
- * \brief Writes data into an asset referenced by asset handler.
+ * \brief Writes data into an asset referenced by asset UUID.
  *
- * \param[in] app_id         Application ID
- * \param[in] asset_handle   Asset handler
- * \param[in] data           Pointer to data vector \ref tfm_sst_buf_t which
- *                           contains the data to write
+ * \param[in] app_id      Application ID
+ * \param[in] asset_uuid  Asset UUID
+ * \param[in] data        Pointer to data vector \ref tfm_sst_buf_t which
+ *                        contains the data to write
  *
  * \return Returns the number of bytes written or a castable \ref tfm_sst_err_t
  *         value
  */
 enum tfm_sst_err_t tfm_sst_veneer_write(uint32_t app_id,
-                                        uint32_t asset_handle,
+                                        uint32_t asset_uuid,
                                         struct tfm_sst_buf_t *data);
 /**
- * \brief Deletes the asset referenced by the asset handler.
+ * \brief Deletes the asset referenced by the asset UUID.
  *
- * \param[in] app_id        Application ID
- * \param[in] asset_handle  Asset handler
+ * \param[in] app_id      Application ID
+ * \param[in] asset_uuid  Asset UUID
  *
  * \return Returns TFM_SST_ERR_PERMS_NOT_ALLOWED if the asset can't be deleted
  *         to by this app ID. Returns TFM_SST_ERR_ASSET_REF_INVALID, if asset
  *         no longer exists. Otherwise, TFM_SST_ERR_SUCCESS.
  */
-enum tfm_sst_err_t tfm_sst_veneer_delete(uint32_t app_id,
-                                         uint32_t asset_handle);
+enum tfm_sst_err_t tfm_sst_veneer_delete(uint32_t app_id, uint32_t asset_uuid);
+
 #ifdef __cplusplus
 }
 #endif
diff --git a/interface/src/tfm_sst_api.c b/interface/src/tfm_sst_api.c
index 1b9a8f2..d363c0a 100644
--- a/interface/src/tfm_sst_api.c
+++ b/interface/src/tfm_sst_api.c
@@ -8,77 +8,69 @@
 #include "tfm_sst_defs.h"
 #include "tfm_ns_lock.h"
 
-enum tfm_sst_err_t tfm_sst_get_handle(uint16_t asset_uuid, uint32_t* hdl)
-{
-    return tfm_ns_lock_svc_dispatch(SVC_TFM_SST_GET_HANDLE,
-                                    (uint32_t)asset_uuid,
-                                    (uint32_t)hdl,
-                                    0,
-                                    0);
-}
-
-enum tfm_sst_err_t tfm_sst_create(uint16_t asset_uuid)
+enum tfm_sst_err_t tfm_sst_create(uint32_t asset_uuid)
 {
     return tfm_ns_lock_svc_dispatch(SVC_TFM_SST_CREATE,
-                                    (uint32_t) asset_uuid,
+                                    asset_uuid,
                                     0,
                                     0,
                                     0);
 }
 
-enum tfm_sst_err_t tfm_sst_get_info(uint32_t asset_handle,
+enum tfm_sst_err_t tfm_sst_get_info(uint32_t asset_uuid,
                                     struct tfm_sst_asset_info_t *info)
 {
     return tfm_ns_lock_svc_dispatch(SVC_TFM_SST_GET_INFO,
-                                    asset_handle,
+                                    asset_uuid,
                                     (uint32_t)info,
                                     0,
                                     0);
 }
 
-enum tfm_sst_err_t tfm_sst_get_attributes(uint32_t asset_handle,
+enum tfm_sst_err_t tfm_sst_get_attributes(uint32_t asset_uuid,
                                           struct tfm_sst_asset_attrs_t *attrs)
 {
     return tfm_ns_lock_svc_dispatch(SVC_TFM_SST_GET_ATTRIBUTES,
-                                    asset_handle,
+                                    asset_uuid,
                                     (uint32_t)attrs,
                                     0,
                                     0);
 }
 
-enum tfm_sst_err_t tfm_sst_set_attributes(
-                                      uint32_t asset_handle,
+enum tfm_sst_err_t tfm_sst_set_attributes(uint32_t asset_uuid,
                                       const struct tfm_sst_asset_attrs_t *attrs)
 {
     return tfm_ns_lock_svc_dispatch(SVC_TFM_SST_SET_ATTRIBUTES,
-                                    asset_handle,
+                                    asset_uuid,
                                     (uint32_t)attrs,
                                     0,
                                     0);
 }
 
-enum tfm_sst_err_t tfm_sst_read(uint32_t asset_handle, struct tfm_sst_buf_t* data)
+enum tfm_sst_err_t tfm_sst_read(uint32_t asset_uuid,
+                                struct tfm_sst_buf_t* data)
 {
     return tfm_ns_lock_svc_dispatch(SVC_TFM_SST_READ,
-                                    (uint32_t)asset_handle,
+                                    asset_uuid,
                                     (uint32_t)data,
                                     0,
                                     0);
 }
 
-enum tfm_sst_err_t tfm_sst_write(uint32_t asset_handle, struct tfm_sst_buf_t* data)
+enum tfm_sst_err_t tfm_sst_write(uint32_t asset_uuid,
+                                 struct tfm_sst_buf_t* data)
 {
     return tfm_ns_lock_svc_dispatch(SVC_TFM_SST_WRITE,
-                                    (uint32_t)asset_handle,
+                                    asset_uuid,
                                     (uint32_t)data,
                                     0,
                                     0);
 }
 
-enum tfm_sst_err_t tfm_sst_delete(uint32_t asset_handle)
+enum tfm_sst_err_t tfm_sst_delete(uint32_t asset_uuid)
 {
     return tfm_ns_lock_svc_dispatch(SVC_TFM_SST_DELETE,
-                                    (uint32_t)asset_handle,
+                                    asset_uuid,
                                     0,
                                     0,
                                     0);
diff --git a/interface/src/tfm_sst_svc_handler.c b/interface/src/tfm_sst_svc_handler.c
index 76c5c96..beab20d 100644
--- a/interface/src/tfm_sst_svc_handler.c
+++ b/interface/src/tfm_sst_svc_handler.c
@@ -11,17 +11,7 @@
 #include "tfm_id_mngr.h"
 
 /* SVC function implementations */
-enum tfm_sst_err_t tfm_sst_svc_get_handle(uint16_t asset_uuid,
-                                          uint32_t* hdl)
-{
-    uint32_t app_id;
-
-    app_id = tfm_sst_get_cur_id();
-
-    return tfm_sst_veneer_get_handle(app_id, asset_uuid, hdl);
-}
-
-enum tfm_sst_err_t tfm_sst_svc_create(uint16_t asset_uuid)
+enum tfm_sst_err_t tfm_sst_svc_create(uint32_t asset_uuid)
 {
     uint32_t app_id;
 
@@ -30,63 +20,61 @@
     return tfm_sst_veneer_create(app_id, asset_uuid);
 }
 
-enum tfm_sst_err_t tfm_sst_svc_get_info(uint32_t asset_handle,
+enum tfm_sst_err_t tfm_sst_svc_get_info(uint32_t asset_uuid,
                                         struct tfm_sst_asset_info_t *info)
 {
     uint32_t app_id;
 
     app_id = tfm_sst_get_cur_id();
 
-    return tfm_sst_veneer_get_info(app_id, asset_handle, info);
+    return tfm_sst_veneer_get_info(app_id, asset_uuid, info);
 }
 
-enum tfm_sst_err_t tfm_sst_svc_get_attributes(
-                                            uint32_t asset_handle,
+enum tfm_sst_err_t tfm_sst_svc_get_attributes(uint32_t asset_uuid,
                                             struct tfm_sst_asset_attrs_t *attrs)
 {
     uint32_t app_id;
 
     app_id = tfm_sst_get_cur_id();
 
-    return tfm_sst_veneer_get_attributes(app_id, asset_handle, attrs);
+    return tfm_sst_veneer_get_attributes(app_id, asset_uuid, attrs);
 }
 
-enum tfm_sst_err_t tfm_sst_svc_set_attributes(
-                                      uint32_t asset_handle,
+enum tfm_sst_err_t tfm_sst_svc_set_attributes(uint32_t asset_uuid,
                                       const struct tfm_sst_asset_attrs_t *attrs)
 {
     uint32_t app_id;
 
     app_id = tfm_sst_get_cur_id();
 
-    return tfm_sst_veneer_set_attributes(app_id, asset_handle, attrs);
+    return tfm_sst_veneer_set_attributes(app_id, asset_uuid, attrs);
 }
 
-enum tfm_sst_err_t tfm_sst_svc_read(uint32_t asset_handle,
+enum tfm_sst_err_t tfm_sst_svc_read(uint32_t asset_uuid,
                                     struct tfm_sst_buf_t* data)
 {
     uint32_t app_id;
 
     app_id = tfm_sst_get_cur_id();
 
-    return tfm_sst_veneer_read(app_id, asset_handle, data);
+    return tfm_sst_veneer_read(app_id, asset_uuid, data);
 }
 
-enum tfm_sst_err_t tfm_sst_svc_write(uint32_t asset_handle,
+enum tfm_sst_err_t tfm_sst_svc_write(uint32_t asset_uuid,
                                      struct tfm_sst_buf_t* data)
 {
     uint32_t app_id;
 
     app_id = tfm_sst_get_cur_id();
 
-    return tfm_sst_veneer_write(app_id, asset_handle, data);
+    return tfm_sst_veneer_write(app_id, asset_uuid, data);
 }
 
-enum tfm_sst_err_t tfm_sst_svc_delete(uint32_t asset_handle)
+enum tfm_sst_err_t tfm_sst_svc_delete(uint32_t asset_uuid)
 {
     uint32_t app_id;
 
     app_id = tfm_sst_get_cur_id();
 
-    return tfm_sst_veneer_delete(app_id, asset_handle);
+    return tfm_sst_veneer_delete(app_id, asset_uuid);
 }
diff --git a/secure_fw/ns_callable/tfm_sst_veneers.c b/secure_fw/ns_callable/tfm_sst_veneers.c
index 56aa6ce..6d6027d 100644
--- a/secure_fw/ns_callable/tfm_sst_veneers.c
+++ b/secure_fw/ns_callable/tfm_sst_veneers.c
@@ -12,69 +12,59 @@
 #include "secure_fw/spm/spm_partition_defs.h"
 
 __tfm_secure_gateway_attributes__
-enum tfm_sst_err_t tfm_sst_veneer_get_handle(uint32_t app_id,
-                                             uint16_t asset_uuid,
-                                             uint32_t *hdl)
-{
-    TFM_CORE_SFN_REQUEST(TFM_SP_STORAGE_ID, sst_am_get_handle,
-                             app_id, asset_uuid, hdl, 0);
-}
-
-__tfm_secure_gateway_attributes__
-enum tfm_sst_err_t tfm_sst_veneer_create(uint32_t app_id, uint16_t asset_uuid)
+enum tfm_sst_err_t tfm_sst_veneer_create(uint32_t app_id, uint32_t asset_uuid)
 {
     TFM_CORE_SFN_REQUEST(TFM_SP_STORAGE_ID, sst_am_create,
-                             app_id, asset_uuid, 0, 0);
+                         app_id, asset_uuid, 0, 0);
 }
 
 __tfm_secure_gateway_attributes__
-enum tfm_sst_err_t tfm_sst_veneer_get_info(uint32_t app_id,
-                                           uint32_t asset_handle,
-                                           struct tfm_sst_asset_info_t *info)
+enum tfm_sst_err_t tfm_sst_veneer_get_info(uint32_t app_id, uint32_t asset_uuid,
+                                    struct tfm_sst_asset_info_t *info)
 {
     TFM_CORE_SFN_REQUEST(TFM_SP_STORAGE_ID, sst_am_get_info,
-                         app_id, asset_handle, info, 0);
+                         app_id, asset_uuid, info, 0);
 }
 
 __tfm_secure_gateway_attributes__
-enum tfm_sst_err_t tfm_sst_veneer_get_attributes(
-                                            uint32_t app_id,
-                                            uint32_t asset_handle,
+enum tfm_sst_err_t tfm_sst_veneer_get_attributes(uint32_t app_id,
+                                                 uint32_t asset_uuid,
                                             struct tfm_sst_asset_attrs_t *attrs)
 {
     TFM_CORE_SFN_REQUEST(TFM_SP_STORAGE_ID, sst_am_get_attributes,
-                         app_id, asset_handle, attrs, 0);
+                         app_id, asset_uuid, attrs, 0);
 }
 
 __tfm_secure_gateway_attributes__
-enum tfm_sst_err_t tfm_sst_veneer_set_attributes(
-                                      uint32_t app_id,
-                                      uint32_t asset_handle,
+enum tfm_sst_err_t tfm_sst_veneer_set_attributes(uint32_t app_id,
+                                                 uint32_t asset_uuid,
                                       const struct tfm_sst_asset_attrs_t *attrs)
 {
     TFM_CORE_SFN_REQUEST(TFM_SP_STORAGE_ID, sst_am_set_attributes,
-                         app_id, asset_handle, attrs, 0);
+                         app_id, asset_uuid, attrs, 0);
 }
 
 __tfm_secure_gateway_attributes__
-enum tfm_sst_err_t tfm_sst_veneer_read(uint32_t app_id, uint32_t asset_handle,
+enum tfm_sst_err_t tfm_sst_veneer_read(uint32_t app_id,
+                                       uint32_t asset_uuid,
                                        struct tfm_sst_buf_t *data)
 {
     TFM_CORE_SFN_REQUEST(TFM_SP_STORAGE_ID, sst_am_read, app_id,
-                             asset_handle, data, 0);
+                         asset_uuid, data, 0);
 }
 
 __tfm_secure_gateway_attributes__
-enum tfm_sst_err_t tfm_sst_veneer_write(uint32_t app_id, uint32_t asset_handle,
+enum tfm_sst_err_t tfm_sst_veneer_write(uint32_t app_id,
+                                        uint32_t asset_uuid,
                                         struct tfm_sst_buf_t *data)
 {
     TFM_CORE_SFN_REQUEST(TFM_SP_STORAGE_ID, sst_am_write, app_id,
-                             asset_handle, data, 0);
+                         asset_uuid, data, 0);
 }
 
 __tfm_secure_gateway_attributes__
-enum tfm_sst_err_t tfm_sst_veneer_delete(uint32_t app_id, uint32_t asset_handle)
+enum tfm_sst_err_t tfm_sst_veneer_delete(uint32_t app_id, uint32_t asset_uuid)
 {
     TFM_CORE_SFN_REQUEST(TFM_SP_STORAGE_ID, sst_am_delete, app_id,
-                             asset_handle, 0, 0);
+                         asset_uuid, 0, 0);
 }
diff --git a/secure_fw/services/secure_storage/manifest.yaml b/secure_fw/services/secure_storage/manifest.yaml
index c3dae04..9dcc27f 100644
--- a/secure_fw/services/secure_storage/manifest.yaml
+++ b/secure_fw/services/secure_storage/manifest.yaml
@@ -18,14 +18,6 @@
   "tfm_init_symbol": "sst_am_prepare",
   "secure_functions": [
     {
-      "sfid": "SST_AM_GET_HANDLE_SFID",
-      "signal": "SST_AM_GET_HANDLE",
-      "tfm_symbol": "sst_am_get_handle",
-      "non_secure_clients": true,
-      "minor_version": 1,
-      "minor_policy": "strict"
-    },
-    {
       "sfid": "SST_AM_CREATE_SFID",
       "signal": "SST_AM_CREATE",
       "tfm_symbol": "sst_am_create",
diff --git a/secure_fw/services/secure_storage/sst_asset_management.c b/secure_fw/services/secure_storage/sst_asset_management.c
index 989e5ed..e38b67b 100644
--- a/secure_fw/services/secure_storage/sst_asset_management.c
+++ b/secure_fw/services/secure_storage/sst_asset_management.c
@@ -55,7 +55,7 @@
  *
  * \return Returns the pointer for entry for specified asset
  */
-static struct sst_asset_policy_t *sst_am_lookup_db_entry(uint16_t uuid)
+static struct sst_asset_policy_t *sst_am_lookup_db_entry(uint32_t uuid)
 {
     uint32_t i;
 
@@ -139,7 +139,7 @@
  * \return Returns the entry pointer for specified asset
  */
 static struct sst_asset_policy_t *sst_am_get_db_entry(uint32_t app_id,
-                                                      uint16_t uuid,
+                                                      uint32_t uuid,
                                                       uint8_t request_type)
 {
     struct sst_asset_perm_t   *perm_entry;
@@ -183,27 +183,6 @@
 }
 
 /**
- * \brief Validates if the requested access is allowed
- *
- * \param[in] app_id        Caller's application ID
- * \param[in] asset_handle  Handle passed on by caller
- * \param[in] request_type  Type of requested access
- *
- * \return Returns the pointer for entry for specified asset
- */
-static struct sst_asset_policy_t *sst_am_get_db_entry_by_hdl(
-                                                          uint32_t app_id,
-                                                          uint32_t asset_handle,
-                                                          uint8_t request_type)
-{
-    uint16_t uuid;
-
-    uuid = sst_utils_extract_uuid_from_handle(asset_handle);
-
-    return sst_am_get_db_entry(app_id, uuid, request_type);
-}
-
-/**
  * \brief Validates the policy database's integrity
  *        Stub function.
  *
@@ -289,56 +268,8 @@
     return bound_check;
 }
 
-enum tfm_sst_err_t sst_am_get_handle(uint32_t app_id, uint16_t asset_uuid,
-                                     uint32_t *hdl)
-{
-    struct sst_asset_policy_t *db_entry;
-    uint8_t all_perms = SST_PERM_REFERENCE | SST_PERM_READ | SST_PERM_WRITE;
-    enum tfm_sst_err_t err;
-    /* Lower layers trust the incoming request, use a local pointer */
-    uint32_t temp_hdl;
-
-    /* Check if application has access to the asset */
-    db_entry = sst_am_get_db_entry(app_id, asset_uuid, all_perms);
-    if (db_entry == NULL) {
-        return TFM_SST_ERR_ASSET_NOT_FOUND;
-    }
-
-    /* Check handle pointer value */
-    err = sst_utils_memory_bound_check(hdl, sizeof(uint32_t),
-                                       app_id, TFM_MEMORY_ACCESS_RW);
-    if (err != TFM_SST_ERR_SUCCESS) {
-        return TFM_SST_ERR_PARAM_ERROR;
-    }
-
-    /* FIXME: the handle is composed of UUID and metadata table index,
-     * which means leaking info about where a certain object may be stored.
-     * While this is okay in the current implementation as the metadata
-     * block layout is quite fixed. However, in later designs if
-     * different partitions are used for storing for different security groups
-     * (e.g. chip manufacture data, device manufacture data, user data), the
-     * threat model may require not leaking any info about where an object
-     * may be stored.
-     * In such a scenario the handle can
-     * be encrypted before passing on to the caller.
-     * Other option could be to allocate a handle in RAM and provide a pointer
-     * to caller as handle. However, the design attemts to avoid
-     * maintaining any kind of transient state for robustness.
-     */
-    err = sst_object_handle(asset_uuid, &temp_hdl);
-    if (err != TFM_SST_ERR_SUCCESS) {
-        return TFM_SST_ERR_ASSET_NOT_FOUND;
-    }
-
-    /* memcpy instead of direct *hdl = temp_hdl.
-     * ensures malicious entities can't trigger a misaligned access fault.
-     */
-    sst_utils_memcpy(hdl, &temp_hdl, sizeof(uint32_t));
-    return TFM_SST_ERR_SUCCESS;
-}
-
 enum tfm_sst_err_t sst_am_get_info(uint32_t app_id,
-                                   uint32_t asset_handle,
+                                   uint32_t asset_uuid,
                                    struct tfm_sst_asset_info_t *info)
 {
     enum tfm_sst_err_t bound_check;
@@ -354,12 +285,12 @@
         return TFM_SST_ERR_PARAM_ERROR;
     }
 
-    db_entry = sst_am_get_db_entry_by_hdl(app_id, asset_handle, all_perms);
+    db_entry = sst_am_get_db_entry(app_id, asset_uuid, all_perms);
     if (db_entry == NULL) {
         return TFM_SST_ERR_ASSET_NOT_FOUND;
     }
 
-    err = sst_object_get_info(asset_handle, &tmp_info);
+    err = sst_object_get_info(asset_uuid, &tmp_info);
     if (err == TFM_SST_ERR_SUCCESS) {
         /* Use tmp_info to not leak information in case the previous function
          * returns and error. It avoids to leak information in case of error.
@@ -373,7 +304,7 @@
 }
 
 enum tfm_sst_err_t sst_am_get_attributes(uint32_t app_id,
-                                         uint32_t asset_handle,
+                                         uint32_t asset_uuid,
                                          struct tfm_sst_asset_attrs_t *attrs)
 {
     uint8_t all_perms = SST_PERM_REFERENCE | SST_PERM_READ | SST_PERM_WRITE;
@@ -389,12 +320,12 @@
         return TFM_SST_ERR_PARAM_ERROR;
     }
 
-    db_entry = sst_am_get_db_entry_by_hdl(app_id, asset_handle, all_perms);
+    db_entry = sst_am_get_db_entry(app_id, asset_uuid, all_perms);
     if (db_entry == NULL) {
         return TFM_SST_ERR_ASSET_NOT_FOUND;
     }
 
-    err = sst_object_get_attributes(asset_handle, &tmp_attrs);
+    err = sst_object_get_attributes(asset_uuid, &tmp_attrs);
     if (err == TFM_SST_ERR_SUCCESS) {
         /* Use tmp_attrs to not leak information incase the previous function
          * returns and error. It avoids to leak information in case of error.
@@ -407,9 +338,8 @@
     return err;
 }
 
-enum tfm_sst_err_t sst_am_set_attributes(
-                                      uint32_t app_id,
-                                      uint32_t asset_handle,
+enum tfm_sst_err_t sst_am_set_attributes(uint32_t app_id,
+                                      uint32_t asset_uuid,
                                       const struct tfm_sst_asset_attrs_t *attrs)
 {
     uint8_t all_perms = SST_PERM_REFERENCE | SST_PERM_READ | SST_PERM_WRITE;
@@ -424,7 +354,7 @@
         return TFM_SST_ERR_PARAM_ERROR;
     }
 
-    db_entry = sst_am_get_db_entry_by_hdl(app_id, asset_handle, all_perms);
+    db_entry = sst_am_get_db_entry(app_id, asset_uuid, all_perms);
     if (db_entry == NULL) {
         return TFM_SST_ERR_ASSET_NOT_FOUND;
     }
@@ -440,12 +370,12 @@
     /* FIXME: Check which bit attributes have been changed and check if those
      *        can be modified or not.
      */
-    err = sst_object_set_attributes(asset_handle, attrs);
+    err = sst_object_set_attributes(asset_uuid, attrs);
 
     return err;
 }
 
-enum tfm_sst_err_t sst_am_create(uint32_t app_id, uint16_t asset_uuid)
+enum tfm_sst_err_t sst_am_create(uint32_t app_id, uint32_t asset_uuid)
 {
     enum tfm_sst_err_t err;
     struct sst_asset_policy_t *db_entry;
@@ -460,7 +390,7 @@
     return err;
 }
 
-enum tfm_sst_err_t sst_am_read(uint32_t app_id, uint32_t asset_handle,
+enum tfm_sst_err_t sst_am_read(uint32_t app_id, uint32_t asset_uuid,
                                struct tfm_sst_buf_t *data)
 {
     struct tfm_sst_buf_t local_data;
@@ -468,7 +398,7 @@
     struct sst_asset_policy_t *db_entry;
 
     /* Check application ID permissions */
-    db_entry = sst_am_get_db_entry_by_hdl(app_id, asset_handle, SST_PERM_READ);
+    db_entry = sst_am_get_db_entry(app_id, asset_uuid, SST_PERM_READ);
     if (db_entry == NULL) {
         return TFM_SST_ERR_ASSET_NOT_FOUND;
     }
@@ -486,13 +416,13 @@
     }
 #endif
 
-    err = sst_object_read(asset_handle, local_data.data,
+    err = sst_object_read(asset_uuid, local_data.data,
                           local_data.offset, local_data.size);
 
     return err;
 }
 
-enum tfm_sst_err_t sst_am_write(uint32_t app_id, uint32_t asset_handle,
+enum tfm_sst_err_t sst_am_write(uint32_t app_id, uint32_t asset_uuid,
                                 const struct tfm_sst_buf_t *data)
 {
     struct tfm_sst_buf_t local_data;
@@ -500,7 +430,7 @@
     struct sst_asset_policy_t *db_entry;
 
     /* Check application ID permissions */
-    db_entry = sst_am_get_db_entry_by_hdl(app_id, asset_handle, SST_PERM_WRITE);
+    db_entry = sst_am_get_db_entry(app_id, asset_uuid, SST_PERM_WRITE);
     if (db_entry == NULL) {
         return TFM_SST_ERR_ASSET_NOT_FOUND;
     }
@@ -526,23 +456,23 @@
     }
 #endif
 
-    err = sst_object_write(asset_handle, local_data.data,
+    err = sst_object_write(asset_uuid, local_data.data,
                            local_data.offset, local_data.size);
 
     return err;
 }
 
-enum tfm_sst_err_t sst_am_delete(uint32_t app_id, uint32_t asset_handle)
+enum tfm_sst_err_t sst_am_delete(uint32_t app_id, uint32_t asset_uuid)
 {
     enum tfm_sst_err_t err;
     struct sst_asset_policy_t *db_entry;
 
-    db_entry = sst_am_get_db_entry_by_hdl(app_id, asset_handle, SST_PERM_WRITE);
+    db_entry = sst_am_get_db_entry(app_id, asset_uuid, SST_PERM_WRITE);
     if (db_entry == NULL) {
         return TFM_SST_ERR_ASSET_NOT_FOUND;
     }
 
-    err = sst_object_delete(asset_handle);
+    err = sst_object_delete(asset_uuid);
 
     return err;
 }
diff --git a/secure_fw/services/secure_storage/sst_asset_management.h b/secure_fw/services/secure_storage/sst_asset_management.h
index 401dc91..44a7a00 100644
--- a/secure_fw/services/secure_storage/sst_asset_management.h
+++ b/secure_fw/services/secure_storage/sst_asset_management.h
@@ -47,21 +47,7 @@
 enum tfm_sst_err_t sst_am_prepare(void);
 
 /**
- * \brief Gets handle for the given asset uuid. If an asset is deleted, the
- *        linked asset handle reference is no longer valid and will give
- *        TFM_SST_ERR_ASSET_REF_INVALID if used.
- *
- * \param[in]  app_id      Application ID
- * \param[in]  asset_uuid  Asset UUID
- * \param[out] hdl         Handle to be returned
- *
- * \return Returns error code as specified in \ref tfm_sst_err_t
- */
-enum tfm_sst_err_t sst_am_get_handle(uint32_t app_id, uint16_t asset_uuid,
-                                     uint32_t *hdl);
-
-/**
- * \brief Allocates space for the asset, referenced by asset handle,
+ * \brief Allocates space for the asset, referenced by asset UUID,
  *        without setting any data in the asset.
  *
  * \param[in] app_id      Application ID
@@ -69,86 +55,88 @@
  *
  * \return Returns error code as specified in \ref tfm_sst_err_t
  */
-enum tfm_sst_err_t sst_am_create(uint32_t app_id, uint16_t asset_uuid);
+enum tfm_sst_err_t sst_am_create(uint32_t app_id,
+                                 uint32_t asset_uuid);
 
 /**
- * \brief Gets the asset's info referenced by asset handle.
+ * \brief Gets the asset's info referenced by asset UUID.
  *
- * \param[in]  app_id        Application ID
- * \param[in]  asset_handle  Asset handle
- * \param[out] info          Pointer to store the asset's information
- *                           \ref tfm_sst_asset_info_t
+ * \param[in]  app_id      Application ID
+ * \param[in]  asset_uuid  Asset UUID
+ * \param[out] info        Pointer to store the asset's information
+ *                         \ref tfm_sst_asset_info_t
  *
  * \return Returns error code as specified in \ref tfm_sst_err_t
  */
 enum tfm_sst_err_t sst_am_get_info(uint32_t app_id,
-                                   uint32_t asset_handle,
+                                   uint32_t asset_uuid,
                                    struct tfm_sst_asset_info_t *info);
 
 /**
- * \brief Gets the asset's attributes referenced by asset handle.
+ * \brief Gets the asset's attributes referenced by asset UUID.
  *
- * \param[in]  app_id        Application ID
- * \param[in]  asset_handle  Asset handle
- * \param[out] attrs         Pointer to store the asset's attributes
- *                           \ref tfm_sst_asset_attrs_t
+ * \param[in]  app_id      Application ID
+ * \param[in]  asset_uuid  Asset UUID
+ * \param[out] attrs       Pointer to store the asset's attributes
+ *                         \ref tfm_sst_asset_attrs_t
  *
  * \return Returns error code as specified in \ref tfm_sst_err_t
  */
 enum tfm_sst_err_t sst_am_get_attributes(uint32_t app_id,
-                                         uint32_t asset_handle,
+                                         uint32_t asset_uuid,
                                          struct tfm_sst_asset_attrs_t *attrs);
 
 /**
- * \brief Sets the asset's attributes referenced by asset handle.
+ * \brief Sets the asset's attributes referenced by asset UUID.
  *
- * \param[in] app_id        Application ID
- * \param[in] asset_handle  Asset handle
- * \param[in] attrs         Pointer to new the asset's attributes
- *                          \ref tfm_sst_asset_attrs_t
+ * \param[in] app_id      Application ID
+ * \param[in] asset_uuid  Asset UUID
+ * \param[in] attrs       Pointer to new the asset's attributes
+ *                        \ref tfm_sst_asset_attrs_t
  *
  * \return Returns error code as specified in \ref tfm_sst_err_t
  */
-enum tfm_sst_err_t sst_am_set_attributes(
-                                     uint32_t app_id,
-                                     uint32_t asset_handle,
+enum tfm_sst_err_t sst_am_set_attributes(uint32_t app_id,
+                                         uint32_t asset_uuid,
                                      const struct tfm_sst_asset_attrs_t *attrs);
 
 /**
- * \brief Reads asset's data referenced by asset handle.
+ * \brief Reads asset's data referenced by asset UUID.
  *
- * \param[in]  app_id        Application ID
- * \param[in]  asset_handle  Asset handle
- * \param[out] data          Pointer to data vector \ref tfm_sst_buf_t to store
- *                           data, size and offset
+ * \param[in]  app_id      Application ID
+ * \param[in]  asset_uuid  Asset UUID
+ * \param[out] data        Pointer to data vector \ref tfm_sst_buf_t to store
+ *                         data, size and offset
  *
  * \return Returns error code as specified in \ref tfm_sst_err_t
  */
-enum tfm_sst_err_t sst_am_read(uint32_t app_id, uint32_t asset_handle,
+enum tfm_sst_err_t sst_am_read(uint32_t app_id,
+                               uint32_t asset_uuid,
                                struct tfm_sst_buf_t *data);
 
 /**
- * \brief Writes data into an asset referenced by asset handle.
+ * \brief Writes data into an asset referenced by asset UUID.
  *
- * \param[in] app_id         Application ID
- * \param[in] asset_handle   Asset handle
- * \param[in] data           Pointer to data vector \ref tfm_sst_buf_t which
- *                           contains the data to write
+ * \param[in] app_id      Application ID
+ * \param[in] asset_uuid  Asset UUID
+ * \param[in] data        Pointer to data vector \ref tfm_sst_buf_t which
+ *                        contains the data to write
  *
  * \return Returns error code as specified in \ref tfm_sst_err_t
  */
-enum tfm_sst_err_t sst_am_write(uint32_t app_id, uint32_t asset_handle,
+enum tfm_sst_err_t sst_am_write(uint32_t app_id,
+                                uint32_t asset_uuid,
                                 const struct tfm_sst_buf_t *data);
 
 /**
- * \brief Deletes the asset referenced by the asset handle.
+ * \brief Deletes the asset referenced by the asset UUID.
  *
- * \param[in] app_id        Application ID
- * \param[in] asset_handle  Asset handle
+ * \param[in] app_id      Application ID
+ * \param[in] asset_uuid  Asset UUID
  *
  * \return Returns error code as specified in \ref tfm_sst_err_t
  */
-enum tfm_sst_err_t sst_am_delete(uint32_t app_id, uint32_t asset_handle);
+enum tfm_sst_err_t sst_am_delete(uint32_t app_id, uint32_t asset_uuid);
 
 #ifdef __cplusplus
 }
diff --git a/secure_fw/services/secure_storage/sst_core.c b/secure_fw/services/secure_storage/sst_core.c
index 056974f..1b138e5 100644
--- a/secure_fw/services/secure_storage/sst_core.c
+++ b/secure_fw/services/secure_storage/sst_core.c
@@ -1168,7 +1168,16 @@
     return TFM_SST_ERR_STORAGE_SYSTEM_FULL;
 }
 
-enum tfm_sst_err_t sst_core_object_handle(uint16_t asset_uuid, uint32_t *handle)
+/**
+ * \brief Gets object index in the object system.
+ *
+ * \param[in]  obj_uuid  ID of the object
+ * \param[out] obj_idx   Index of the object in the object system
+ *
+ * \return Returns error code as specified in \ref tfm_sst_err_t
+ */
+static enum tfm_sst_err_t sst_core_get_object_idx(uint32_t obj_uuid,
+                                                  uint32_t *obj_idx)
 {
     uint32_t i;
     enum tfm_sst_err_t err;
@@ -1182,9 +1191,9 @@
         }
 
         /* Unique_id with value 0x00 means end of asset meta section */
-        if (tmp_metadata.unique_id == asset_uuid) {
+        if (tmp_metadata.unique_id == obj_uuid) {
             /* Found */
-            *handle = sst_utils_compose_handle(asset_uuid, i);
+            *obj_idx = i;
             return TFM_SST_ERR_SUCCESS;
         }
 
@@ -1193,7 +1202,20 @@
     return TFM_SST_ERR_ASSET_NOT_FOUND;
 }
 
-enum tfm_sst_err_t sst_core_object_create(uint16_t uuid, uint32_t size)
+enum tfm_sst_err_t sst_core_object_exist(uint32_t obj_uuid)
+{
+    uint32_t idx;
+    enum tfm_sst_err_t err;
+
+    err = sst_core_get_object_idx(obj_uuid, &idx);
+    if (err != TFM_SST_ERR_SUCCESS) {
+        return TFM_SST_ERR_ASSET_NOT_FOUND;
+    }
+
+    return TFM_SST_ERR_SUCCESS;
+}
+
+enum tfm_sst_err_t sst_core_object_create(uint32_t object_uuid, uint32_t size)
 {
     uint16_t object_index;
     enum tfm_sst_err_t err;
@@ -1208,7 +1230,7 @@
         return TFM_SST_ERR_STORAGE_SYSTEM_FULL;
     }
 
-    object_meta.unique_id = uuid;
+    object_meta.unique_id = object_uuid;
     object_meta.cur_size = 0;
     object_meta.max_size = size;
 
@@ -1260,26 +1282,25 @@
     return TFM_SST_ERR_SUCCESS;
 }
 
-enum tfm_sst_err_t sst_core_object_get_info(uint32_t asset_handle,
+enum tfm_sst_err_t sst_core_object_get_info(uint32_t object_uuid,
                                             struct sst_core_obj_info_t *info)
 {
     enum tfm_sst_err_t err = TFM_SST_ERR_SYSTEM_ERROR;
     struct sst_assetmeta tmp_metadata;
     uint32_t object_index;
-    uint16_t uuid;
 
     /* Get the meta data index */
-    object_index = sst_utils_extract_index_from_handle(asset_handle);
+    err = sst_core_get_object_idx(object_uuid, &object_index);
+    if (err != TFM_SST_ERR_SUCCESS) {
+        return TFM_SST_ERR_ASSET_NOT_FOUND;
+    }
+
     /* Read object metadata */
     err = sst_meta_read_object_meta(object_index, &tmp_metadata);
     if (err == 0) {
         /* Check if index is still referring to same object */
-        uuid = sst_utils_extract_uuid_from_handle(asset_handle);
-        if (uuid != tmp_metadata.unique_id) {
-            /* Likely the object has been deleted in another context
-             * this handle isn't valid anymore.
-             */
-            err = TFM_SST_ERR_INVALID_HANDLE;
+        if (object_uuid != tmp_metadata.unique_id) {
+            err = TFM_SST_ERR_ASSET_NOT_FOUND;
         } else {
             info->size_max = tmp_metadata.max_size;
             info->size_current = tmp_metadata.cur_size;
@@ -1289,11 +1310,11 @@
     return err;
 }
 
-enum tfm_sst_err_t sst_core_object_write(uint32_t asset_handle,
+enum tfm_sst_err_t sst_core_object_write(uint32_t object_uuid,
                                          const uint8_t *data, uint32_t offset,
                                          uint32_t size)
 {
-    uint16_t object_index;
+    uint32_t object_index;
     enum tfm_sst_err_t err;
     uint32_t cur_phys_block;
     const uint8_t *prepared_buf;
@@ -1304,8 +1325,11 @@
     (void)offset;
 #endif
 
-    /* Get the meta data index */
-    object_index = sst_utils_extract_index_from_handle(asset_handle);
+    /* Get the object index */
+    err = sst_core_get_object_idx(object_uuid, &object_index);
+    if (err != TFM_SST_ERR_SUCCESS) {
+        return TFM_SST_ERR_ASSET_NOT_FOUND;
+    }
 
     /* Read object metadata */
     err = sst_meta_read_object_meta(object_index, &object_meta);
@@ -1524,20 +1548,23 @@
     return err;
 }
 
-enum tfm_sst_err_t sst_core_object_delete(uint32_t asset_handle)
+enum tfm_sst_err_t sst_core_object_delete(uint32_t object_uuid)
 {
     uint32_t del_obj_data_index;
     uint32_t del_obj_lblock;
-    uint16_t del_obj_index;
-    uint16_t del_obj_max_size;
+    uint32_t del_obj_index;
+    uint32_t del_obj_max_size;
     enum tfm_sst_err_t err;
     uint32_t src_offset = SST_BLOCK_SIZE;
     uint32_t nbr_bytes_to_move = 0;
-    uint16_t obj_idx;
+    uint32_t obj_idx;
     struct sst_assetmeta object_meta;
 
-    /* Get the meta data index */
-    del_obj_index = sst_utils_extract_index_from_handle(asset_handle);
+    /* Get the object index */
+    err = sst_core_get_object_idx(object_uuid, &del_obj_index);
+    if (err != TFM_SST_ERR_SUCCESS) {
+        return TFM_SST_ERR_ASSET_NOT_FOUND;
+    }
 
     err = sst_meta_read_object_meta(del_obj_index, &object_meta);
     if (err != TFM_SST_ERR_SUCCESS) {
@@ -1617,16 +1644,19 @@
     return err;
 }
 
-enum tfm_sst_err_t sst_core_object_read(uint32_t asset_handle, uint8_t *data,
+enum tfm_sst_err_t sst_core_object_read(uint32_t object_uuid, uint8_t *data,
                                         uint32_t offset, uint32_t size)
 {
     uint32_t object_index;
     enum tfm_sst_err_t err;
-    uint16_t uuid;
     struct sst_assetmeta tmp_metadata;
 
-    /* Get the meta data index */
-    object_index = sst_utils_extract_index_from_handle(asset_handle);
+    /* Get the object index */
+    err = sst_core_get_object_idx(object_uuid, &object_index);
+    if (err != TFM_SST_ERR_SUCCESS) {
+        return TFM_SST_ERR_ASSET_NOT_FOUND;
+    }
+
     /* Read object metadata */
     err = sst_meta_read_object_meta(object_index, &tmp_metadata);
 
@@ -1635,19 +1665,15 @@
     }
 
     /* Check if index is still referring to same asset */
-    uuid = sst_utils_extract_uuid_from_handle(asset_handle);
-    if (uuid != tmp_metadata.unique_id) {
-        /* Likely the asset has been deleted in another context
-         * this handle isn't valid anymore.
-         */
-        return TFM_SST_ERR_INVALID_HANDLE;
+    if (object_uuid != tmp_metadata.unique_id) {
+        return TFM_SST_ERR_ASSET_NOT_FOUND;
     }
 
     /* Boundary check the incoming request */
     err = sst_utils_check_contained_in(0, tmp_metadata.cur_size,
                                        offset, size);
     if (err != TFM_SST_ERR_SUCCESS) {
-            return TFM_SST_ERR_PARAM_ERROR;
+        return TFM_SST_ERR_PARAM_ERROR;
     }
 
     /* Read the object from flash */
diff --git a/secure_fw/services/secure_storage/sst_core.h b/secure_fw/services/secure_storage/sst_core.h
index e16fd30..28f0cb9 100644
--- a/secure_fw/services/secure_storage/sst_core.h
+++ b/secure_fw/services/secure_storage/sst_core.h
@@ -73,9 +73,9 @@
 struct sst_assetmeta {
     uint32_t lblock;      /*!< Logical datablock where object is stored */
     uint32_t data_index;  /*!< Offset in the logical data block */
-    uint16_t cur_size;    /*!< Size in storage system for this fragment */
-    uint16_t max_size;    /*!< Maximum size of this asset */
-    uint16_t unique_id;   /*!< Unique ID of this asset, compiler generated
+    uint32_t cur_size;    /*!< Size in storage system for this fragment */
+    uint32_t max_size;    /*!< Maximum size of this asset */
+    uint32_t unique_id;   /*!< Unique ID of this asset, compiler generated
                            *   based on user defined user_defs.h
                            */
 };
@@ -100,92 +100,83 @@
 };
 
 /**
- * \brief Converts an asset uuid into an assethandle, looking up the index in
- *        the metadata table for the uuid specified.
- *
- * \param[in]  asset_uuid  Asset UUID
- * \param[out] hdl         Handle to be returned
- *
- * \return Returns error code as specified in \ref tfm_sst_err_t, and
- *         asset handle is populated in the pointer passed if
- *         the function succeeds.
- */
-enum tfm_sst_err_t sst_core_object_handle(uint16_t asset_uuid, uint32_t *hdl);
-
-/**
- * \brief Creates an object in the storage
- *        If the object doesn't exist already and there is enough
- *        space avaailable, a metadata entry and
- *        space in data block is reserved.
- *
- * \param[in] uuid  Unique identifier for the object
- * \param[in] size  Size of the object to be created
- *
- * \return Returns error code as specified in \ref tfm_sst_err_t
- */
-enum tfm_sst_err_t sst_core_object_create(uint16_t uuid, uint32_t size);
-
-/**
- * \brief Gets the object information referenced by object handler.
- *
- * \param[in]  asset_handle  Handle of the object
- * \param[out] info          Pointer to the information structure to store the
- *                           object information values \ref sst_core_obj_info_t
- *
- * \return Returns error code specified in \ref tfm_sst_err_t
- */
-enum tfm_sst_err_t sst_core_object_get_info(uint32_t asset_handle,
-                                            struct sst_core_obj_info_t *info);
-
-/**
- * \brief Writes data to an existing object
- *        Requested buffer is written into give offset of the object,
- *        provided boundary checks don't fail
- *
- * \param[in] asset_handle  Handle of the object
- * \param[in] data          Pointer to buf containing data to be written
- * \param[in] offset        Offset in the object
- * \param[in] size          Size of the incoming buffer
- *
- * \return Returns error code as specified in \ref tfm_sst_err_t
- */
-enum tfm_sst_err_t sst_core_object_write(uint32_t asset_handle,
-                                         const uint8_t *data,
-                                         uint32_t offset, uint32_t size);
-
-/**
- * \brief Prepares the core. Authenticates/validates the metadata
+ * \brief Prepares the core. Authenticates/validates the metadata.
  *
  * \return Returns error code as specified in \ref tfm_sst_err_t
  */
 enum tfm_sst_err_t sst_core_prepare(void);
 
 /**
- * \brief Reads and object or part of it to given buffer
- *        Requested object is read into give buffer,
- *        provided boundary checks don't fail
+ * \brief Checks if an object exists.
  *
- * \param[in]  asset_handle  Handle of the object
- * \param[out] data          Pointer to buf
- * \param[in]  offset        Offset in the object
- * \param[in]  size          Size to be read
+ * \param[in]  obj_uuid  Unique identifier for the object
+ *
+ * \return Returns TFM_SST_ERR_SUCCESS if object exist.  If object does not
+ *         exist, it returns TFM_SST_ERR_ASSET_NOT_FOUND. If SST area is not
+ *         prepared, it returns TFM_SST_ERR_ASSET_NOT_PREPARED.
+ */
+enum tfm_sst_err_t sst_core_object_exist(uint32_t obj_uuid);
+
+/**
+ * \brief Creates an object in the storage area.
+ *
+ * \param[in] obj_uuid  Unique identifier for the object
+ * \param[in] size      Size of the object to be created
  *
  * \return Returns error code as specified in \ref tfm_sst_err_t
  */
-enum tfm_sst_err_t sst_core_object_read(uint32_t asset_handle, uint8_t *data,
+enum tfm_sst_err_t sst_core_object_create(uint32_t obj_uuid, uint32_t size);
+
+/**
+ * \brief Gets the object information referenced by object UUID.
+ *
+ * \param[in]  obj_uuid  Unique identifier of the object
+ * \param[out] info      Pointer to the information structure to store the
+ *                       object information values \ref sst_core_obj_info_t
+ *
+ * \return Returns error code specified in \ref tfm_sst_err_t
+ */
+enum tfm_sst_err_t sst_core_object_get_info(uint32_t obj_uuid,
+                                            struct sst_core_obj_info_t *info);
+
+/**
+ * \brief Writes data to an existing object.
+ *
+ * \param[in] obj_uuid  Unique identifier of the object
+ * \param[in] data      Pointer to buf containing data to be written
+ * \param[in] offset    Offset in the object
+ * \param[in] size      Size of the incoming buffer
+ *
+ * \return Returns error code as specified in \ref tfm_sst_err_t
+ */
+enum tfm_sst_err_t sst_core_object_write(uint32_t obj_uuid,
+                                         const uint8_t *data,
+                                         uint32_t offset, uint32_t size);
+
+/**
+ * \brief Reads an object or part of it to given buffer.
+ *
+ * \param[in]  obj_uuid  Unique identifier of the object
+ * \param[out] data      Pointer to buf
+ * \param[in]  offset    Offset in the object
+ * \param[in]  size      Size to be read
+ *
+ * \return Returns error code as specified in \ref tfm_sst_err_t
+ */
+enum tfm_sst_err_t sst_core_object_read(uint32_t obj_uuid, uint8_t *data,
                                         uint32_t offset, uint32_t size);
 
 /**
- * \brief Deletes object referred by the handle
+ * \brief Deletes object referred by the UUID.
  *
- * \param[in] asset_handle  Handle of the object
+ * \param[in] obj_uuid  Unique identifier of the object
  *
  * \return Returns error code as specified in \ref tfm_sst_err_t
  */
-enum tfm_sst_err_t sst_core_object_delete(uint32_t asset_handle);
+enum tfm_sst_err_t sst_core_object_delete(uint32_t obj_uuid);
 
 /**
- * \brief Reads metadata associated with an object
+ * \brief Reads metadata associated with an object.
  *
  * \param[in]  object_index Index of the ojbect to be read
  * \param[out] meta         Pointer to meta buffer to read values
@@ -196,7 +187,7 @@
                                              struct sst_assetmeta *meta);
 
 /**
- * \brief wipe the storage and regenerate metadata block
+ * \brief Wipes all the storage and regenerate metadata block.
  *
  * \return Returns error code as specified in \ref sst_errno_t
  */
@@ -206,4 +197,4 @@
 }
 #endif
 
-#endif /* SST_METADATA_H_ */
+#endif /* __SST_CORE_H__ */
diff --git a/secure_fw/services/secure_storage/sst_encrypted_object.c b/secure_fw/services/secure_storage/sst_encrypted_object.c
index bdc2fb0..2be6a13 100644
--- a/secure_fw/services/secure_storage/sst_encrypted_object.c
+++ b/secure_fw/services/secure_storage/sst_encrypted_object.c
@@ -135,24 +135,18 @@
     return TFM_SST_ERR_SUCCESS;
 }
 
-enum tfm_sst_err_t sst_encrypted_object_create(struct sst_object_t *obj)
+enum tfm_sst_err_t sst_encrypted_object_create(uint32_t uuid,
+                                               struct sst_object_t *obj)
 {
     enum tfm_sst_err_t err;
-    uint32_t hdl;
 
     /* Create an object in the object system */
-    err = sst_core_object_create(obj->header.uuid,
+    err = sst_core_object_create(uuid,
                                  SST_ENCRYPTED_SIZE(obj->header.info.size_max));
     if (err != TFM_SST_ERR_SUCCESS) {
         return err;
     }
 
-    /* Get the handle of the object in the object system */
-    err = sst_core_object_handle(obj->header.uuid, &hdl);
-    if (err != TFM_SST_ERR_SUCCESS) {
-        return err;
-    }
-
     /* Authenticate the header, with no data to encrypt */
     err = sst_object_auth_encrypt(SST_EMPTY_OBJECT_SIZE, obj);
     if (err != TFM_SST_ERR_SUCCESS) {
@@ -160,7 +154,7 @@
     }
 
     /* Write the encrypted object to the object system */
-    err = sst_core_object_write(hdl, (uint8_t *)obj,
+    err = sst_core_object_write(uuid, (uint8_t *)obj,
                                 SST_OBJECT_START_POSITION,
                                 SST_ENCRYPTED_SIZE(SST_EMPTY_OBJECT_SIZE));
 
@@ -169,14 +163,14 @@
 
 /**
  * \brief Reads and decrypts data from the object referenced by the object
- *        handle into the sst_plaintext_buf buffer.
+ *        UUID into the sst_plaintext_buf buffer.
  *
- * \param[in]  object_handle  Object handle
- * \param[out] obj            Pointer to the object structure to fill in
+ * \param[in]  uuid  Object UUID
+ * \param[out] obj   Pointer to the object structure to fill in
  *
  * \return Returns error code specified in \ref tfm_sst_err_t
  */
-static enum tfm_sst_err_t sst_read_encrypted_object(uint32_t object_handle,
+static enum tfm_sst_err_t sst_read_encrypted_object(uint32_t uuid,
                                                     struct sst_object_t *obj)
 {
     enum tfm_sst_err_t err;
@@ -184,7 +178,7 @@
     uint32_t plaintext_size;
 
     /* Get the current size of the encrypted object in the object system */
-    err = sst_core_object_get_info(object_handle, &obj_info);
+    err = sst_core_object_get_info(uuid, &obj_info);
     if (err != TFM_SST_ERR_SUCCESS) {
         return err;
     }
@@ -196,7 +190,7 @@
     sst_utils_memset(obj, SST_CRYPTO_CLEAR_BUF_VALUE, SST_MAX_OBJECT_SIZE);
 
     /* Read the encrypted object from the object system */
-    err = sst_core_object_read(object_handle, (uint8_t *)obj,
+    err = sst_core_object_read(uuid, (uint8_t *)obj,
                                SST_OBJECT_START_POSITION,
                                obj_info.size_current);
     if (err != TFM_SST_ERR_SUCCESS) {
@@ -212,12 +206,12 @@
     return TFM_SST_ERR_SUCCESS;
 }
 
-enum tfm_sst_err_t sst_encrypted_object_read(uint32_t object_handle,
+enum tfm_sst_err_t sst_encrypted_object_read(uint32_t uuid,
                                              struct sst_object_t *obj)
 {
     enum tfm_sst_err_t err;
 
-    err = sst_read_encrypted_object(object_handle, obj);
+    err = sst_read_encrypted_object(uuid, obj);
     if (err != TFM_SST_ERR_SUCCESS) {
         return err;
     }
@@ -225,7 +219,7 @@
     return TFM_SST_ERR_SUCCESS;
 }
 
-enum tfm_sst_err_t sst_encrypted_object_write(uint32_t object_handle,
+enum tfm_sst_err_t sst_encrypted_object_write(uint32_t uuid,
                                               struct sst_object_t *obj)
 {
     enum tfm_sst_err_t err;
@@ -237,7 +231,7 @@
     }
 
     /* Write encrypted object to the object system */
-    err = sst_core_object_write(object_handle, (uint8_t *)obj,
+    err = sst_core_object_write(uuid, (uint8_t *)obj,
                                 SST_OBJECT_START_POSITION,
                                 SST_ENCRYPTED_SIZE(
                                                 obj->header.info.size_current));
diff --git a/secure_fw/services/secure_storage/sst_encrypted_object.h b/secure_fw/services/secure_storage/sst_encrypted_object.h
index ef83ead..48cdecf 100644
--- a/secure_fw/services/secure_storage/sst_encrypted_object.h
+++ b/secure_fw/services/secure_storage/sst_encrypted_object.h
@@ -19,7 +19,8 @@
 /**
  * \brief Creates a new encrypted object.
  *
- * \param[in/out] obj Pointer to the object structure to be created.
+ * \param[in]     uuid  Object UUID
+ * \param[in/out] obj   Pointer to the object structure to be created.
  *
  * Note: The function will use obj to store the encrypted data before write it
  *       into the flash to reduce the memory requirements and the number of
@@ -28,24 +29,25 @@
  *
  * \return Returns error code specified in \ref tfm_sst_err_t
  */
-enum tfm_sst_err_t sst_encrypted_object_create(struct sst_object_t *obj);
+enum tfm_sst_err_t sst_encrypted_object_create(uint32_t uuid,
+                                               struct sst_object_t *obj);
 
 /**
- * \brief Reads object referenced by the object handle
+ * \brief Reads object referenced by the object UUID
  *
- * \param[in]  object_handle Object handle
- * \param[out] obj           Pointer to the object structure to fill in
+ * \param[in]  uuid  Object UUID
+ * \param[out] obj   Pointer to the object structure to fill in
  *
  * \return Returns error code specified in \ref tfm_sst_err_t
  */
-enum tfm_sst_err_t sst_encrypted_object_read(uint32_t object_handle,
+enum tfm_sst_err_t sst_encrypted_object_read(uint32_t uuid,
                                              struct sst_object_t *obj);
 
 /**
- * \brief Writes object referenced by the object handle.
+ * \brief Writes object referenced by the object UUID.
  *
- * \param[in]     object_handle Object handle
- * \param[in/out] obj           Pointer to the object structure to write.
+ * \param[in]     uuid  Object UUID
+ * \param[in/out] obj   Pointer to the object structure to write.
  *
  * Note: The function will use obj to store the encrypted data before write it
  *       into the flash to reduce the memory requirements and the number of
@@ -54,7 +56,7 @@
  *
  * \return Returns error code specified in \ref tfm_sst_err_t
  */
-enum tfm_sst_err_t sst_encrypted_object_write(uint32_t object_handle,
+enum tfm_sst_err_t sst_encrypted_object_write(uint32_t uuid,
                                               struct sst_object_t *obj);
 
 #ifdef __cplusplus
diff --git a/secure_fw/services/secure_storage/sst_object_system.c b/secure_fw/services/secure_storage/sst_object_system.c
index 7325e27..62c77f9 100644
--- a/secure_fw/services/secure_storage/sst_object_system.c
+++ b/secure_fw/services/secure_storage/sst_object_system.c
@@ -39,9 +39,7 @@
  *
  * \return Returns error code as specified in \ref tfm_sst_err_t
  */
-static void sst_object_init_object(uint16_t uuid,
-                                   uint32_t type,
-                                   uint32_t size,
+static void sst_object_init_object(uint32_t uuid, uint32_t type, uint32_t size,
                                    struct sst_object_t *obj)
 {
     /* Set all object data to 0 */
@@ -68,20 +66,7 @@
     return err;
 }
 
-enum tfm_sst_err_t sst_object_handle(uint16_t object_uuid, uint32_t *handle)
-{
-    enum tfm_sst_err_t err = TFM_SST_ERR_SYSTEM_ERROR;
-
-    if (sst_system_ready == SST_SYSTEM_READY) {
-        sst_global_lock();
-        err = sst_core_object_handle(object_uuid, handle);
-        sst_global_unlock();
-    }
-
-    return err;
-}
-
-enum tfm_sst_err_t sst_object_read(uint32_t object_handle, uint8_t *data,
+enum tfm_sst_err_t sst_object_read(uint32_t uuid, uint8_t *data,
                                    uint32_t offset, uint32_t size)
 {
     enum tfm_sst_err_t err = TFM_SST_ERR_SYSTEM_ERROR;
@@ -94,10 +79,10 @@
         sst_global_lock();
 
 #ifdef SST_ENCRYPTION
-        err = sst_encrypted_object_read(object_handle, &g_sst_object);
+        err = sst_encrypted_object_read(uuid, &g_sst_object);
 #else
         /* Read object header */
-        err = sst_core_object_read(object_handle,
+        err = sst_core_object_read(uuid,
                                    (uint8_t *)&g_sst_object.header,
                                    SST_OBJECT_START_POSITION,
                                    SST_OBJECT_HEADER_SIZE);
@@ -107,7 +92,7 @@
 
         /* Read object data if any */
         if (g_sst_object.header.info.size_current > 0) {
-            err = sst_core_object_read(object_handle, g_sst_object.data,
+            err = sst_core_object_read(uuid, g_sst_object.data,
                                        SST_OBJECT_HEADER_SIZE,
                                        g_sst_object.header.info.size_current);
         }
@@ -138,39 +123,34 @@
     return err;
 }
 
-enum tfm_sst_err_t sst_object_create(uint16_t object_uuid,
-                                     uint32_t type,
-                                     uint32_t size)
+enum tfm_sst_err_t sst_object_create(uint32_t uuid,
+                                     uint32_t type, uint32_t size)
 {
     enum tfm_sst_err_t err = TFM_SST_ERR_SYSTEM_ERROR;
-    uint32_t hdl = 0;
 
     if (sst_system_ready == SST_SYSTEM_READY) {
         sst_global_lock();
         /* Check if it already exists */
-        err = sst_core_object_handle(object_uuid, &hdl);
+        err = sst_core_object_exist(uuid);
         if (err == TFM_SST_ERR_ASSET_NOT_FOUND) {
             /* Initialize object based on the input arguments */
-            sst_object_init_object(object_uuid, type, size, &g_sst_object);
+            sst_object_init_object(uuid, type, size, &g_sst_object);
 
 #ifdef SST_ENCRYPTION
-            err = sst_encrypted_object_create(&g_sst_object);
+            err = sst_encrypted_object_create(uuid, &g_sst_object);
 #else
             /* FixMe: This is an inefficient way to write the object header.
              *        The create function should allow to write content
              *        in the object.
              */
-            err = sst_core_object_create(object_uuid, SST_OBJECT_SIZE(size));
+            err = sst_core_object_create(uuid,
+                                         SST_OBJECT_SIZE(size));
             if (err != TFM_SST_ERR_SUCCESS) {
                 return err;
             }
 
-            err = sst_core_object_handle(object_uuid, &hdl);
-            if (err != TFM_SST_ERR_SUCCESS) {
-                return err;
-            }
-
-            err = sst_core_object_write(hdl, (uint8_t *)&g_sst_object,
+            err = sst_core_object_write(uuid,
+                                        (uint8_t *)&g_sst_object,
                                         SST_OBJECT_START_POSITION,
                                         SST_OBJECT_HEADER_SIZE);
 #endif
@@ -181,8 +161,9 @@
     return err;
 }
 
-enum tfm_sst_err_t sst_object_write(uint32_t object_handle, const uint8_t *data,
-                                    uint32_t offset, uint32_t size)
+enum tfm_sst_err_t sst_object_write(uint32_t uuid,
+                                    const uint8_t *data, uint32_t offset,
+                                    uint32_t size)
 {
     enum tfm_sst_err_t err = TFM_SST_ERR_SYSTEM_ERROR;
 
@@ -196,10 +177,10 @@
 
         /* Read the object from the object system */
 #ifdef SST_ENCRYPTION
-        err = sst_encrypted_object_read(object_handle, &g_sst_object);
+        err = sst_encrypted_object_read(uuid, &g_sst_object);
 #else
         /* Read object header */
-        err = sst_core_object_read(object_handle,
+        err = sst_core_object_read(uuid,
                                    (uint8_t *)&g_sst_object.header,
                                    SST_OBJECT_START_POSITION,
                                    SST_OBJECT_HEADER_SIZE);
@@ -209,7 +190,7 @@
 
         /* Read object data if any */
         if (g_sst_object.header.info.size_current > 0) {
-            err = sst_core_object_read(object_handle, g_sst_object.data,
+            err = sst_core_object_read(uuid, g_sst_object.data,
                                        SST_OBJECT_HEADER_SIZE,
                                        g_sst_object.header.info.size_current);
         }
@@ -245,9 +226,9 @@
 #endif
 
 #ifdef SST_ENCRYPTION
-        err = sst_encrypted_object_write(object_handle, &g_sst_object);
+        err = sst_encrypted_object_write(uuid, &g_sst_object);
 #else
-        err = sst_core_object_write(object_handle, (uint8_t *)&g_sst_object,
+        err = sst_core_object_write(uuid, (uint8_t *)&g_sst_object,
                                     SST_OBJECT_START_POSITION,
                                     SST_OBJECT_SIZE(
                                         g_sst_object.header.info.size_current));
@@ -258,7 +239,7 @@
     return err;
 }
 
-enum tfm_sst_err_t sst_object_get_info(uint32_t object_handle,
+enum tfm_sst_err_t sst_object_get_info(uint32_t uuid,
                                        struct tfm_sst_asset_info_t *info)
 {
     enum tfm_sst_err_t err = TFM_SST_ERR_SYSTEM_ERROR;
@@ -268,9 +249,9 @@
 
         /* Read the object from the object system */
 #ifdef SST_ENCRYPTION
-        err = sst_encrypted_object_read(object_handle, &g_sst_object);
+        err = sst_encrypted_object_read(uuid, &g_sst_object);
 #else
-        err = sst_core_object_read(object_handle, (uint8_t *)&g_sst_object,
+        err = sst_core_object_read(uuid, (uint8_t *)&g_sst_object,
                                    SST_OBJECT_START_POSITION,
                                    SST_OBJECT_HEADER_SIZE);
 #endif
@@ -287,8 +268,8 @@
     return err;
 }
 
-enum tfm_sst_err_t sst_object_get_attributes(uint32_t object_handle,
-                                            struct tfm_sst_asset_attrs_t *attrs)
+enum tfm_sst_err_t sst_object_get_attributes(uint32_t uuid,
+                                        struct tfm_sst_asset_attrs_t *attrs)
 {
     enum tfm_sst_err_t err = TFM_SST_ERR_SYSTEM_ERROR;
 
@@ -297,9 +278,9 @@
 
         /* Read the object from the object system */
 #ifdef SST_ENCRYPTION
-        err = sst_encrypted_object_read(object_handle, &g_sst_object);
+        err = sst_encrypted_object_read(uuid, &g_sst_object);
 #else
-        err = sst_core_object_read(object_handle, (uint8_t *)&g_sst_object,
+        err = sst_core_object_read(uuid, (uint8_t *)&g_sst_object,
                                    SST_OBJECT_START_POSITION,
                                    SST_OBJECT_HEADER_SIZE);
 #endif
@@ -316,7 +297,7 @@
     return err;
 }
 
-enum tfm_sst_err_t sst_object_set_attributes(uint32_t object_handle,
+enum tfm_sst_err_t sst_object_set_attributes(uint32_t uuid,
                                       const struct tfm_sst_asset_attrs_t *attrs)
 {
     enum tfm_sst_err_t err = TFM_SST_ERR_SYSTEM_ERROR;
@@ -326,9 +307,9 @@
 
         /* Read the object from the object system */
 #ifdef SST_ENCRYPTION
-        err = sst_encrypted_object_read(object_handle, &g_sst_object);
+        err = sst_encrypted_object_read(uuid, &g_sst_object);
 #else
-        err = sst_core_object_read(object_handle, (uint8_t *)&g_sst_object,
+        err = sst_core_object_read(uuid, (uint8_t *)&g_sst_object,
                                    SST_OBJECT_START_POSITION,
                                    SST_OBJECT_HEADER_SIZE);
 #endif
@@ -341,9 +322,9 @@
                          attrs, TFM_SST_ASSET_ATTR_SIZE);
 
 #ifdef SST_ENCRYPTION
-        err = sst_encrypted_object_write(object_handle, &g_sst_object);
+        err = sst_encrypted_object_write(uuid, &g_sst_object);
 #else
-        err = sst_core_object_write(object_handle, (uint8_t *)&g_sst_object,
+        err = sst_core_object_write(uuid, (uint8_t *)&g_sst_object,
                                    SST_OBJECT_START_POSITION,
                                    SST_OBJECT_HEADER_SIZE);
 #endif
@@ -354,13 +335,15 @@
     return err;
 }
 
-enum tfm_sst_err_t sst_object_delete(uint32_t object_handle)
+enum tfm_sst_err_t sst_object_delete(uint32_t uuid)
 {
     enum tfm_sst_err_t err = TFM_SST_ERR_SYSTEM_ERROR;
 
+    /* FIXME: Authenticate object data to validate token before delete it. */
+
     if (sst_system_ready == SST_SYSTEM_READY) {
         sst_global_lock();
-        err = sst_core_object_delete(object_handle);
+        err = sst_core_object_delete(uuid);
         sst_global_unlock();
     }
 
diff --git a/secure_fw/services/secure_storage/sst_object_system.h b/secure_fw/services/secure_storage/sst_object_system.h
index 54718f4..aabec84 100644
--- a/secure_fw/services/secure_storage/sst_object_system.h
+++ b/secure_fw/services/secure_storage/sst_object_system.h
@@ -25,101 +25,86 @@
 enum tfm_sst_err_t sst_system_prepare(void);
 
 /**
- * \brief Gets handler for the given object uuid. If an object is deleted, the
- *        linked object handle reference is no longer valid and will give
- *        TFM_SST_ERR_ASSET_REF_INVALID if used.
+ * \brief Creates a new object with given object UUID.
  *
- * \param[in]  object_uuid  Object UUID
- * \param[out] hdl          Handle if successful
- *
- * \return Returns object handle. If object is not found, it returns
- *         TFM_SST_ERR_ASSET_NOT_FOUND. If SST area is not prepared, it returns
- *         TFM_SST_ERR_ASSET_NOT_PREPARED.
- */
-enum tfm_sst_err_t sst_object_handle(uint16_t object_uuid, uint32_t *hdl);
-
-/**
- * \brief Creates a new object with given uuid.
- *
- * \param[in] object_uuid  Object UUID
- * \param[in] type         Object type
- * \param[in] size         Object size
+ * \param[in] uuid  Object UUID
+ * \param[in] type  Object type
+ * \param[in] size  Object size
  *
  * \return Returns error code specified in \ref tfm_sst_err_t
  */
-enum tfm_sst_err_t sst_object_create(uint16_t object_uuid,
-                                     uint32_t type,
-                                     uint32_t size);
+enum tfm_sst_err_t sst_object_create(uint32_t uuid,
+                                     uint32_t type, uint32_t size);
 
 /**
- * \brief Gets object's data referenced by object handle, and stores it
+ * \brief Gets object's data referenced by object UUID, and stores it
  *        in the data buffer.
  *
- * \param[in]  object_handle  Object handler
- * \param[out] data           Data buffer to store the object data
- * \param[in]  offset         Offset from where the read is going to start
- * \param[in]  size           Data buffer size
+ * \param[in]  uuid    Object UUID
+ * \param[out] data    Data buffer to store the object data
+ * \param[in]  offset  Offset from where the read is going to start
+ * \param[in]  size    Data buffer size
  *
  * \return Returns error code specified in \ref tfm_sst_err_t
  */
-enum tfm_sst_err_t sst_object_read(uint32_t object_handle, uint8_t *data,
-                                   uint32_t offset, uint32_t size);
+enum tfm_sst_err_t sst_object_read(uint32_t uuid,
+                                   uint8_t *data, uint32_t offset,
+                                   uint32_t size);
 /**
- * \brief Writes data into the object referenced by object uuid.
+ * \brief Writes data into the object referenced by object UUID.
  *
- * \param[in] object_handl  Object handle
- * \param[in] data          Data buffer to write into object object
- * \param[in] offset        Offset from where the write is going to start
- * \param[in] size          Data buffer size
+ * \param[in] uuid    Object UUID
+ * \param[in] data    Data buffer to write into object object
+ * \param[in] offset  Offset from where the write is going to start
+ * \param[in] size    Data buffer size
  *
  * \return Returns number of bytes read or a relevant error \ref tfm_sst_err_t
  */
-enum tfm_sst_err_t sst_object_write(uint32_t object_handle, const uint8_t *data,
-                                    uint32_t offset, uint32_t size);
+enum tfm_sst_err_t sst_object_write(uint32_t uuid,
+                                    const uint8_t *data, uint32_t offset,
+                                    uint32_t size);
 /**
- * \brief Deletes the object referenced by object handler.
+ * \brief Deletes the object referenced by object UUID.
  *
- * \param[in] object_handle  Object handler
+ * \param[in] uuid  Object UUID
  *
  * \return Returns error code specified in \ref tfm_sst_err_t
  */
-enum tfm_sst_err_t sst_object_delete(uint32_t object_handle);
+enum tfm_sst_err_t sst_object_delete(uint32_t uuid);
 
 /**
- * \brief Gets the object information referenced by object handler.
+ * \brief Gets the object information referenced by object UUID.
  *
- * \param[in]  object_handle  Object handler
- * \param[out] info           Pointer to store the object's information
- *                            \ref struct tfm_sst_asset_info_t
+ * \param[in]  uuid  Object UUID
+ * \param[out] info  Pointer to store the object's information
+ *                   \ref struct tfm_sst_asset_info_t
  *
  * \return Returns error code specified in \ref tfm_sst_err_t
  */
-enum tfm_sst_err_t sst_object_get_info(uint32_t object_handle,
-                                      struct tfm_sst_asset_info_t *info);
+enum tfm_sst_err_t sst_object_get_info(uint32_t uuid,
+                                       struct tfm_sst_asset_info_t *info);
 
 /**
- * \brief Gets the object attributes referenced by object handler.
+ * \brief Gets the object attributes referenced by object UUID.
  *
- * \param[in]  object_handle  Object handler
- * \param[out] attrs         Pointer to store the object's attributes
- *                           \ref tfm_sst_asset_attrs_t
+ * \param[in]  uuid   Object UUID
+ * \param[out] attrs  Pointer to store the object's attributes
+ *                    \ref tfm_sst_asset_attrs_t
  *
  * \return Returns error code as specified in \ref tfm_sst_err_t
  */
-enum tfm_sst_err_t sst_object_get_attributes(
-                                           uint32_t object_handle,
+enum tfm_sst_err_t sst_object_get_attributes(uint32_t uuid,
                                            struct tfm_sst_asset_attrs_t *attrs);
 /**
- * \brief Sets the specific object attributes referenced by object handler.
+ * \brief Sets the specific object attributes referenced by object UUID.
  *
- * \param[in] object_handle  Object handler
- * \param[in] attrs          Pointer to new the object's attributes
- *                           \ref tfm_sst_asset_attrs_t
+ * \param[in] uuid   Object UUID \ref tfm_sst_asset_id_t
+ * \param[in] attrs  Pointer to new the object's attributes
+ *                   \ref tfm_sst_asset_attrs_t
  *
  * \return Returns error code as specified in \ref tfm_sst_err_t
  */
-enum tfm_sst_err_t sst_object_set_attributes(
-                                     uint32_t object_handle,
+enum tfm_sst_err_t sst_object_set_attributes(uint32_t uuid,
                                      const struct tfm_sst_asset_attrs_t *attrs);
 
 /**
diff --git a/secure_fw/services/secure_storage/sst_utils.c b/secure_fw/services/secure_storage/sst_utils.c
index ba8c6d9..cd84301 100644
--- a/secure_fw/services/secure_storage/sst_utils.c
+++ b/secure_fw/services/secure_storage/sst_utils.c
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2017, Arm Limited. All rights reserved.
+ * Copyright (c) 2017-2018, Arm Limited. All rights reserved.
  *
  * SPDX-License-Identifier: BSD-3-Clause
  *
@@ -8,7 +8,6 @@
 #include <stdint.h>
 #include "tfm_secure_api.h"
 #include "tfm_sst_defs.h"
-#include "sst_core.h"
 #include "assets/sst_asset_defs.h"
 #include "sst_utils.h"
 
@@ -85,43 +84,11 @@
     return err;
 }
 
-/* FIXME: the asset handle is currently composed of
- * uuid and index into object metadata.
- * This allows for state-less operation in the sst
- * implementation as no context needs to be maintained.
- * However, this leaks details of flash layout and where
- * the object is physically stored and can be a potential
- * attack vector.
- * Potential solutions could be-
- * Allocate the handle in RAM and use the pointer
- * as the handle.
- *
- * OR
- *
- * Encrypt the handle so that it is not interpretable
- * by the caller
- */
-uint32_t sst_utils_compose_handle(uint16_t asset_uuid, uint16_t meta_idx)
-{
-    return ((((uint32_t) asset_uuid) << 16) | meta_idx);
-}
-
-uint16_t sst_utils_extract_uuid_from_handle(uint32_t asset_handle)
-{
-    return ((asset_handle >> 16) & 0xFFFF);
-}
-
-uint16_t sst_utils_extract_index_from_handle(uint32_t asset_handle)
-{
-    return (asset_handle & 0xFFFF);
-}
-
 uint32_t sst_utils_validate_secure_caller(void)
 {
     return tfm_core_validate_secure_caller();
 }
 
-
 /**
  * \brief Validates asset's ID
  *
@@ -129,7 +96,7 @@
  *
  * \return Returns 1 if the asset ID is valid, otherwise 0.
  */
-enum tfm_sst_err_t sst_utils_validate_uuid(uint16_t unique_id)
+enum tfm_sst_err_t sst_utils_validate_uuid(uint32_t unique_id)
 {
     if (unique_id == SST_INVALID_UUID) {
         return TFM_SST_ERR_ASSET_NOT_FOUND;
diff --git a/secure_fw/services/secure_storage/sst_utils.h b/secure_fw/services/secure_storage/sst_utils.h
index b25827e..9ef41e5 100644
--- a/secure_fw/services/secure_storage/sst_utils.h
+++ b/secure_fw/services/secure_storage/sst_utils.h
@@ -14,7 +14,7 @@
 extern "C" {
 #endif
 
-#define SST_INVALID_UUID      0
+#define SST_INVALID_UUID  0
 
 /*
  * \brief Macro to check, at compilation time, if data fits in data buffer
@@ -111,34 +111,6 @@
 void sst_utils_memset(void *dest, const uint8_t pattern, uint32_t size);
 
 /**
- * \brief Composes an asset handle value by combining a asset_uuid and meta_idx.
- *
- * \param[in] asset_uuid  Asset UUID
- * \param[in] meta_idx    Metadata index
- *
- * \return Returns asset handler
- */
-uint32_t sst_utils_compose_handle(uint16_t asset_uuid, uint16_t meta_idx);
-
-/**
- * \brief Extracts the uuid component of the provided assethandle.
- *
- * \param[in] asset_handle  Asset handler
- *
- * \return Returns asset UUID
- */
-uint16_t sst_utils_extract_uuid_from_handle(uint32_t asset_handle);
-
-/**
- * \brief Extracts the meta_idx component of the provided assethandle.
- *
- * \param[in] asset_handle  Asset handler
- *
- * \return Returns metadata index
- */
-uint16_t sst_utils_extract_index_from_handle(uint32_t asset_handle);
-
-/**
  * \brief Checks if the sst function caller is located in the secure or
  *        non-secure space.
  *
@@ -154,7 +126,7 @@
  *
  * \return Returns error code as specified in \ref tfm_sst_err_t
  */
-enum tfm_sst_err_t sst_utils_validate_uuid(uint16_t unique_id);
+enum tfm_sst_err_t sst_utils_validate_uuid(uint32_t unique_id);
 
 #ifdef __cplusplus
 }
diff --git a/secure_fw/services/tfm_sfid_list.inc b/secure_fw/services/tfm_sfid_list.inc
index 5ae0d19..078c391 100644
--- a/secure_fw/services/tfm_sfid_list.inc
+++ b/secure_fw/services/tfm_sfid_list.inc
@@ -11,7 +11,6 @@
 #define __TFM_SFID_LIST_INC__
 
     /******** TFM_SP_STORAGE ********/
-    {sst_am_get_handle, SST_AM_GET_HANDLE_SFID},
     {sst_am_create, SST_AM_CREATE_SFID},
     {sst_am_get_info, SST_AM_GET_INFO_SFID},
     {sst_am_get_attributes, SST_AM_GET_ATTRIBUTES_SFID},
diff --git a/test/framework/helpers.c b/test/framework/helpers.c
index f6d5df7..5ae14fa 100755
--- a/test/framework/helpers.c
+++ b/test/framework/helpers.c
@@ -20,8 +20,6 @@
         return "TFM_SST_ERR_ASSET_NOT_FOUND";
     case TFM_SST_ERR_PARAM_ERROR:
         return "TFM_SST_ERR_PARAM_ERROR";
-    case TFM_SST_ERR_INVALID_HANDLE:
-        return "TFM_SST_ERR_INVALID_HANDLE";
     case TFM_SST_ERR_STORAGE_SYSTEM_FULL:
         return "TFM_SST_ERR_STORAGE_SYSTEM_FULL";
     case TFM_SST_ERR_SYSTEM_ERROR:
diff --git a/test/interface/include/sst_test_service_svc.h b/test/interface/include/sst_test_service_svc.h
index 1b04745..4860644 100644
--- a/test/interface/include/sst_test_service_svc.h
+++ b/test/interface/include/sst_test_service_svc.h
@@ -33,7 +33,7 @@
  *
  * \return Returns error code as specified in \ref tfm_sst_err_t
  */
-enum tfm_sst_err_t sst_test_service_svc_dummy_encrypt(uint16_t key_uuid,
+enum tfm_sst_err_t sst_test_service_svc_dummy_encrypt(uint32_t key_uuid,
                                                       uint8_t *buf,
                                                       uint32_t buf_size);
 
@@ -47,7 +47,7 @@
  *
  * \return Returns error code as specified in \ref tfm_sst_err_t
  */
-enum tfm_sst_err_t sst_test_service_svc_dummy_decrypt(uint16_t key_uuid,
+enum tfm_sst_err_t sst_test_service_svc_dummy_decrypt(uint32_t key_uuid,
                                                       uint8_t *buf,
                                                       uint32_t buf_size);
 
diff --git a/test/suites/sst/non_secure/sst_ns_interface_testsuite.c b/test/suites/sst/non_secure/sst_ns_interface_testsuite.c
index 60fc850..57964c4 100644
--- a/test/suites/sst/non_secure/sst_ns_interface_testsuite.c
+++ b/test/suites/sst/non_secure/sst_ns_interface_testsuite.c
@@ -37,16 +37,6 @@
 /* Define used for bounds checking type tests */
 #define BUFFER_SIZE_PLUS_ONE (BUFFER_SIZE + 1)
 
-/* Shared asset handles for multithreaded tests */
-static uint32_t tfm_sst_test_1007_handle;
-static uint32_t tfm_sst_test_1010_handle;
-static uint32_t tfm_sst_test_1014_handle;
-static uint32_t tfm_sst_test_1018_handle;
-#ifdef SST_ENABLE_PARTIAL_ASSET_RW
-static uint32_t tfm_sst_test_1024_asset_1_handle;
-static uint32_t tfm_sst_test_1024_asset_2_handle;
-#endif
-
 /* Define test suite for asset manager tests */
 /* List of tests */
 static void tfm_sst_test_1001(struct test_result_t *ret);
@@ -90,11 +80,11 @@
     {&tfm_sst_test_1002, "TFM_SST_TEST_1002",
      "Create with invalid thread name", {0} },
     {&tfm_sst_test_1003, "TFM_SST_TEST_1003",
-     "Get handle interface", {0} },
+     "Get handle interface (DEPRECATED)", {0} },
     {&tfm_sst_test_1004, "TFM_SST_TEST_1004",
-     "Get handle with invalid thread name", {0} },
+     "Get handle with invalid thread name (DEPRECATED)", {0} },
     {&tfm_sst_test_1005, "TFM_SST_TEST_1005",
-     "Get handle with null handle pointer", {0} },
+     "Get handle with null handle pointer (DEPRECATED)", {0} },
     {&tfm_sst_test_1006, "TFM_SST_TEST_1006",
      "Get attributes interface",  {0} },
     {&tfm_sst_test_1007, "TFM_SST_TEST_1007",
@@ -196,9 +186,8 @@
  */
 TFM_SST_NS_TEST(1001, "Thread_C")
 {
-    const uint16_t asset_uuid = SST_ASSET_ID_AES_KEY_192;
+    const uint32_t asset_uuid = SST_ASSET_ID_AES_KEY_192;
     enum tfm_sst_err_t err;
-    uint32_t hdl;
 
     /* Checks write permissions in create function */
     err = tfm_sst_create(asset_uuid);
@@ -207,12 +196,6 @@
         return;
     }
 
-    err = tfm_sst_get_handle(asset_uuid, &hdl);
-    if (err != TFM_SST_ERR_SUCCESS) {
-        TEST_FAIL("Get handle should return a valid asset handle");
-        return;
-    }
-
     /* Attempts to create the asset a second time */
     err = tfm_sst_create(asset_uuid);
     if (err != TFM_SST_ERR_SUCCESS) {
@@ -228,7 +211,7 @@
     }
 
     /* Calls delete asset to clean up SST area for next test */
-    err = tfm_sst_delete(hdl);
+    err = tfm_sst_delete(asset_uuid);
     if (err != TFM_SST_ERR_SUCCESS) {
         TEST_FAIL("The delete action should work correctly");
         return;
@@ -242,7 +225,7 @@
  */
 TFM_SST_NS_TEST(1002, INVALID_THREAD_NAME)
 {
-    const uint16_t asset_uuid = SST_ASSET_ID_AES_KEY_192;
+    const uint32_t asset_uuid = SST_ASSET_ID_AES_KEY_192;
     enum tfm_sst_err_t err;
 
     /* Calls create function with an invalid thread name */
@@ -260,201 +243,60 @@
  * - Valid asset ID and not created asset
  * - Valid asset ID and created asset
  * - Invalid asset ID
+ *
+ * \note This test is deprecated and will be removed in next iterations.
  */
 TFM_SST_NS_TEST(1003, "Thread_C")
 {
-    const uint16_t asset_uuid = SST_ASSET_ID_AES_KEY_192;
-    enum tfm_sst_err_t err;
-    uint32_t hdl;
-
-    /* Calls get handle before create the asset */
-    err = tfm_sst_get_handle(asset_uuid, &hdl);
-    if (err != TFM_SST_ERR_ASSET_NOT_FOUND) {
-        TEST_FAIL("Get handle should fail as the asset is not created");
-        return;
-    }
-
-    /* Creates asset to get a valid handle */
-    err = tfm_sst_create(asset_uuid);
-    if (err != TFM_SST_ERR_SUCCESS) {
-        TEST_FAIL("Create should not fail for Thread_C");
-        return;
-    }
-
-    /* Calls get handle with a valid asset ID and the asset created */
-    err = tfm_sst_get_handle(asset_uuid, &hdl);
-    if (err != TFM_SST_ERR_SUCCESS) {
-        TEST_FAIL("Get handle should return a valid asset handle");
-        return;
-    }
-
-    /* Calls get handle with invalid asset ID */
-    err = tfm_sst_get_handle(INVALID_ASSET_ID, &hdl);
-    if (err != TFM_SST_ERR_ASSET_NOT_FOUND) {
-        TEST_FAIL("Get handle should fail as asset ID is invalid");
-        return;
-    }
-
-    /* Deletes asset to clean up the SST area for the next test */
-    err = tfm_sst_delete(hdl);
-    if (err != TFM_SST_ERR_SUCCESS) {
-        TEST_FAIL("Delete should not fail");
-        return;
-    }
-
-    ret->val = TEST_PASSED;
-}
-
-/**
- * \brief Creates asset with an authorised app ID.
- */
-static void tfm_sst_test_1004_task_1(struct test_result_t *ret)
-{
-    const uint16_t asset_uuid = SST_ASSET_ID_SHA224_HASH;
-    enum tfm_sst_err_t err;
-
-    err = tfm_sst_create(asset_uuid);
-    if (err != TFM_SST_ERR_SUCCESS) {
-        TEST_FAIL("Create should not fail");
-        return;
-    }
-
-    ret->val = TEST_PASSED;
-}
-
-/**
- * \brief Calls get handle function with an invalid thread name.
- */
-static void tfm_sst_test_1004_task_2(struct test_result_t *ret)
-{
-    const uint16_t asset_uuid = SST_ASSET_ID_SHA224_HASH;
-    enum tfm_sst_err_t err;
-    uint32_t hdl;
-
-    err = tfm_sst_get_handle(asset_uuid, &hdl);
-    if (err != TFM_SST_ERR_ASSET_NOT_FOUND) {
-        TEST_FAIL("Get handle should not succeed with an invalid thread name");
-        return;
-    }
-
-    ret->val = TEST_PASSED;
-}
-
-/**
- * \brief Deletes asset to clean up the SST area for the next test.
- */
-static void tfm_sst_test_1004_task_3(struct test_result_t *ret)
-{
-    const uint16_t asset_uuid = SST_ASSET_ID_SHA224_HASH;
-    enum tfm_sst_err_t err;
-    uint32_t hdl;
-
-    err = tfm_sst_get_handle(asset_uuid, &hdl);
-    if (err != TFM_SST_ERR_SUCCESS) {
-        TEST_FAIL("Get handle should not fail");
-        return;
-    }
-
-    err = tfm_sst_delete(hdl);
-    if (err != TFM_SST_ERR_SUCCESS) {
-        TEST_FAIL("Delete should not fail");
-        return;
-    }
-
+    TEST_LOG("This test is DEPRECATED and the test execution was SKIPPED\r\n");
     ret->val = TEST_PASSED;
 }
 
 /**
  * \brief Tests get handle function with an invalid thread name.
+ *
+ * \note This test is deprecated and will be removed in next iterations.
  */
-static void tfm_sst_test_1004(struct test_result_t *ret)
+TFM_SST_NS_TEST(1004, "Thread_C")
 {
-    /* Creates asset with an authorised app ID */
-    tfm_sst_run_test("Thread_B", ret, tfm_sst_test_1004_task_1);
-    if (ret->val != TEST_PASSED) {
-        return;
-    }
-
-    /* Calls get handle function with an invalid thread name */
-    tfm_sst_run_test(INVALID_THREAD_NAME, ret, tfm_sst_test_1004_task_2);
-    if (ret->val != TEST_PASSED) {
-        return;
-    }
-
-    /* Deletes asset to clean up the SST area for the next test */
-    tfm_sst_run_test("Thread_B", ret, tfm_sst_test_1004_task_3);
+    TEST_LOG("This test is DEPRECATED and the test execution was SKIPPED\r\n");
+    ret->val = TEST_PASSED;
 }
 
 /**
  * \brief Tests get handle function with a null handle pointer.
+ *
+ * \note This test is deprecated and will be removed in next iterations.
  */
 TFM_SST_NS_TEST(1005, "Thread_C")
 {
-    const uint16_t asset_uuid = SST_ASSET_ID_AES_KEY_192;
-    enum tfm_sst_err_t err;
-    uint32_t hdl;
-
-    /* Creates asset to get a valid handle */
-    err = tfm_sst_create(asset_uuid);
-    if (err != TFM_SST_ERR_SUCCESS) {
-        TEST_FAIL("Create should not fail for Thread_C");
-        return;
-    }
-
-    /* Calls get handle with a valid asset ID and the asset created */
-    err = tfm_sst_get_handle(asset_uuid, &hdl);
-    if (err != TFM_SST_ERR_SUCCESS) {
-        TEST_FAIL("Get handle should return a valid asset handle");
-        return;
-    }
-
-    /* Calls get handle with null handle pointer */
-    err = tfm_sst_get_handle(asset_uuid, NULL);
-    if (err != TFM_SST_ERR_PARAM_ERROR) {
-        TEST_FAIL("Get handle should fail as handle pointer is null");
-        return;
-    }
-
-    /* Calls delete asset to clean up SST area for next test */
-    err = tfm_sst_delete(hdl);
-    if (err != TFM_SST_ERR_SUCCESS) {
-        TEST_FAIL("The delete action should work correctly");
-        return;
-    }
-
+    TEST_LOG("This test is DEPRECATED and the test execution was SKIPPED\r\n");
     ret->val = TEST_PASSED;
 }
 
 /**
  * \brief Tests get attributes function against:
- * - Valid application ID, asset handle and attributes struct pointer
- * - Invalid asset handle
+ * - Valid application ID and attributes struct pointer
+ * - Invalid application ID
  */
 TFM_SST_NS_TEST(1006, "Thread_C")
 {
-    const uint16_t asset_uuid = SST_ASSET_ID_AES_KEY_192;
+    const uint32_t asset_uuid = SST_ASSET_ID_AES_KEY_192;
     struct tfm_sst_asset_info_t asset_info;
     enum tfm_sst_err_t err;
-    uint32_t hdl;
 
-    /* Creates asset to get a valid handle */
+    /* Creates asset */
     err = tfm_sst_create(asset_uuid);
     if (err != TFM_SST_ERR_SUCCESS) {
         TEST_FAIL("Create should not fail for Thread_C");
         return;
     }
 
-    /* Gets asset's handle */
-    err = tfm_sst_get_handle(asset_uuid, &hdl);
-    if (err != TFM_SST_ERR_SUCCESS) {
-        TEST_FAIL("Get handle should return a valid asset handle");
-        return;
-    }
-
-    /* Calls get_attributes with valid application ID, asset handle and
+    /* Calls get information with valid application ID and
      * attributes struct pointer
      */
-    err = tfm_sst_get_info(hdl, &asset_info);
+    err = tfm_sst_get_info(asset_uuid,
+                           &asset_info);
     if (err != TFM_SST_ERR_SUCCESS) {
         TEST_FAIL("Thread_C should read the information of this asset");
         return;
@@ -471,16 +313,16 @@
         return;
     }
 
-    /* Calls get_attributes with invalid asset handle */
-    err = tfm_sst_get_info(0, &asset_info);
+    /* Calls get_attributes with invalid asset ID */
+    err = tfm_sst_get_info(INVALID_ASSET_ID, &asset_info);
     if (err != TFM_SST_ERR_ASSET_NOT_FOUND) {
-        TEST_FAIL("Get info function should fail for an invalid "
-                  "asset handle");
+        TEST_FAIL("Get information function should fail for an invalid "
+                  "asset ID");
         return;
     }
 
     /* Deletes asset to clean up the SST area for the next test */
-    err = tfm_sst_delete(hdl);
+    err = tfm_sst_delete(asset_uuid);
     if (err != TFM_SST_ERR_SUCCESS) {
         TEST_FAIL("Delete should not fail");
         return;
@@ -490,11 +332,11 @@
 }
 
 /**
- * \brief Creates asset with an authorised app ID to get a valid handle.
+ * \brief Creates asset with an authorised app ID.
  */
 static void tfm_sst_test_1007_task_1(struct test_result_t *ret)
 {
-    const uint16_t asset_uuid = SST_ASSET_ID_SHA224_HASH;
+    const uint32_t asset_uuid = SST_ASSET_ID_SHA224_HASH;
     enum tfm_sst_err_t err;
 
     err = tfm_sst_create(asset_uuid);
@@ -503,12 +345,6 @@
         return;
     }
 
-    err = tfm_sst_get_handle(asset_uuid, &tfm_sst_test_1007_handle);
-    if (err != TFM_SST_ERR_SUCCESS) {
-        TEST_FAIL("Get handle should not fail");
-        return;
-    }
-
     ret->val = TEST_PASSED;
 }
 
@@ -517,10 +353,12 @@
  */
 static void tfm_sst_test_1007_task_2(struct test_result_t *ret)
 {
+    const uint32_t asset_uuid = SST_ASSET_ID_SHA224_HASH;
     struct tfm_sst_asset_info_t asset_info;
     enum tfm_sst_err_t err;
 
-    err = tfm_sst_get_info(tfm_sst_test_1007_handle, &asset_info);
+    err = tfm_sst_get_info(asset_uuid,
+                           &asset_info);
     if (err != TFM_SST_ERR_ASSET_NOT_FOUND) {
         TEST_FAIL("Get info should not succeed with invalid thread name");
         return;
@@ -534,9 +372,10 @@
  */
 static void tfm_sst_test_1007_task_3(struct test_result_t *ret)
 {
+    const uint32_t asset_uuid = SST_ASSET_ID_SHA224_HASH;
     enum tfm_sst_err_t err;
 
-    err = tfm_sst_delete(tfm_sst_test_1007_handle);
+    err = tfm_sst_delete(asset_uuid);
     if (err != TFM_SST_ERR_SUCCESS) {
         TEST_FAIL("The delete action should work correctly");
         return;
@@ -550,7 +389,7 @@
  */
 static void tfm_sst_test_1007(struct test_result_t *ret)
 {
-    /* Creates asset with an authorised app ID to get a valid handle */
+    /* Creates asset with an authorised app ID */
     tfm_sst_run_test("Thread_B", ret, tfm_sst_test_1007_task_1);
     if (ret->val != TEST_PASSED) {
         return;
@@ -571,26 +410,18 @@
  */
 TFM_SST_NS_TEST(1008, "Thread_C")
 {
-    const uint16_t asset_uuid = SST_ASSET_ID_AES_KEY_192;
+    const uint32_t asset_uuid = SST_ASSET_ID_AES_KEY_192;
     enum tfm_sst_err_t err;
-    uint32_t hdl;
 
-    /* Creates asset to get a valid handle */
+    /* Creates asset */
     err = tfm_sst_create(asset_uuid);
     if (err != TFM_SST_ERR_SUCCESS) {
         TEST_FAIL("Create should not fail for Thread_C");
         return;
     }
 
-    /* Gets asset's handle */
-    err = tfm_sst_get_handle(asset_uuid, &hdl);
-    if (err != TFM_SST_ERR_SUCCESS) {
-        TEST_FAIL("Get handle should return a valid asset handle");
-        return;
-    }
-
-    /* Calls get_attributes with a null struct attributes pointer */
-    err = tfm_sst_get_info(hdl, NULL);
+    /* Calls get information with a null struct info pointer */
+    err = tfm_sst_get_info(asset_uuid, NULL);
     if (err != TFM_SST_ERR_PARAM_ERROR) {
         TEST_FAIL("Get info function should fail for a null "
                   "struct attributes pointer");
@@ -598,7 +429,7 @@
     }
 
     /* Calls delete asset to clean up SST area for next test */
-    err = tfm_sst_delete(hdl);
+    err = tfm_sst_delete(asset_uuid);
     if (err != TFM_SST_ERR_SUCCESS) {
         TEST_FAIL("The delete action should work correctly");
         return;
@@ -609,48 +440,41 @@
 
 /**
  * \brief Tests write function against:
- * - Valid application ID, asset handle and data pointer
- * - Invalid asset handle
+ * - Valid application ID and data pointer
+ * - Invalid application ID
  */
 TFM_SST_NS_TEST(1009, "Thread_C")
 {
-    const uint16_t asset_uuid = SST_ASSET_ID_AES_KEY_192;
+    const uint32_t asset_uuid = SST_ASSET_ID_AES_KEY_192;
     struct tfm_sst_asset_info_t asset_info;
     enum tfm_sst_err_t err;
     struct tfm_sst_buf_t io_data;
-    uint32_t hdl;
     uint8_t wrt_data[WRITE_BUF_SIZE] = "DATA";
 
-    /* Creates asset to get a valid handle */
+    /* Creates asset */
     err = tfm_sst_create(asset_uuid);
     if (err != TFM_SST_ERR_SUCCESS) {
         TEST_FAIL("Create should not fail for Thread_C");
         return;
     }
 
-    /* Gets asset's handle */
-    err = tfm_sst_get_handle(asset_uuid, &hdl);
-    if (err != TFM_SST_ERR_SUCCESS) {
-        TEST_FAIL("Get handle should return a valid asset handle");
-        return;
-    }
-
     /* Sets data structure */
     io_data.data = wrt_data;
     io_data.size = WRITE_BUF_SIZE;
     io_data.offset = 0;
 
     /* Writes data in the asset */
-    err = tfm_sst_write(hdl, &io_data);
+    err = tfm_sst_write(asset_uuid, &io_data);
     if (err != TFM_SST_ERR_SUCCESS) {
         TEST_FAIL("Write should work correctly");
         return;
     }
 
-    /* Calls get_attributes with valid application ID, asset handle and
+    /* Calls get information with valid application ID and
      * attributes struct pointer
      */
-    err = tfm_sst_get_info(hdl, &asset_info);
+    err = tfm_sst_get_info(asset_uuid,
+                           &asset_info);
     if (err != TFM_SST_ERR_SUCCESS) {
         TEST_FAIL("Thread_C should read the information of this asset");
         return;
@@ -662,15 +486,16 @@
         return;
     }
 
-    /* Calls write function with invalid asset handle */
-    err = tfm_sst_write(0, &io_data);
+    /* Calls write function with invalid application ID */
+    err = tfm_sst_write(INVALID_ASSET_ID,
+                        &io_data);
     if (err != TFM_SST_ERR_ASSET_NOT_FOUND) {
-        TEST_FAIL("Invalid asset handle should not write in the asset");
+        TEST_FAIL("Invalid asset ID should not write in the asset");
         return;
     }
 
     /* Deletes asset to clean up the SST area for the next test */
-    err = tfm_sst_delete(hdl);
+    err = tfm_sst_delete(asset_uuid);
     if (err != TFM_SST_ERR_SUCCESS) {
         TEST_FAIL("Delete should not fail");
         return;
@@ -680,11 +505,11 @@
 }
 
 /**
- * \brief Creates asset with an authorised app ID to get a valid handle.
+ * \brief Creates asset with an authorised app ID.
  */
 static void tfm_sst_test_1010_task_1(struct test_result_t *ret)
 {
-    const uint16_t asset_uuid = SST_ASSET_ID_AES_KEY_192;
+    const uint32_t asset_uuid = SST_ASSET_ID_AES_KEY_192;
     enum tfm_sst_err_t err;
 
     err = tfm_sst_create(asset_uuid);
@@ -693,12 +518,6 @@
         return;
     }
 
-    err = tfm_sst_get_handle(asset_uuid, &tfm_sst_test_1010_handle);
-    if (err != TFM_SST_ERR_SUCCESS) {
-        TEST_FAIL("Get handle should not fail");
-        return;
-    }
-
     ret->val = TEST_PASSED;
 }
 
@@ -707,10 +526,11 @@
  */
 static void tfm_sst_test_1010_task_2(struct test_result_t *ret)
 {
+    const uint32_t asset_uuid = SST_ASSET_ID_AES_KEY_192;
     enum tfm_sst_err_t err;
     struct tfm_sst_buf_t io_data;
 
-    err = tfm_sst_write(tfm_sst_test_1010_handle, &io_data);
+    err = tfm_sst_write(asset_uuid, &io_data);
     if (err != TFM_SST_ERR_ASSET_NOT_FOUND) {
         TEST_FAIL("Write should not succeed with an invalid thread name");
         return;
@@ -724,9 +544,10 @@
  */
 static void tfm_sst_test_1010_task_3(struct test_result_t *ret)
 {
+    const uint32_t asset_uuid = SST_ASSET_ID_AES_KEY_192;
     enum tfm_sst_err_t err;
 
-    err = tfm_sst_delete(tfm_sst_test_1010_handle);
+    err = tfm_sst_delete(asset_uuid);
     if (err != TFM_SST_ERR_SUCCESS) {
         TEST_FAIL("The delete action should work correctly");
         return;
@@ -740,7 +561,7 @@
  */
 static void tfm_sst_test_1010(struct test_result_t *ret)
 {
-    /* Creates asset with an authorised app ID to get a valid handle */
+    /* Creates asset with an authorised app ID */
     tfm_sst_run_test("Thread_C", ret, tfm_sst_test_1010_task_1);
     if (ret->val != TEST_PASSED) {
         return;
@@ -763,27 +584,19 @@
  */
 TFM_SST_NS_TEST(1011, "Thread_C")
 {
-    const uint16_t asset_uuid = SST_ASSET_ID_AES_KEY_192;
+    const uint32_t asset_uuid = SST_ASSET_ID_AES_KEY_192;
     enum tfm_sst_err_t err;
     struct tfm_sst_buf_t io_data;
-    uint32_t hdl;
 
-    /* Creates asset to get a valid handle */
+    /* Creates asset */
     err = tfm_sst_create(asset_uuid);
     if (err != TFM_SST_ERR_SUCCESS) {
         TEST_FAIL("Create should not fail for Thread_C");
         return;
     }
 
-    /* Gets asset's handle */
-    err = tfm_sst_get_handle(asset_uuid, &hdl);
-    if (err != TFM_SST_ERR_SUCCESS) {
-        TEST_FAIL("Get handle should return a valid asset handle");
-        return;
-    }
-
     /* Calls write function with tfm_sst_buf_t pointer set to NULL */
-    err = tfm_sst_write(hdl, NULL);
+    err = tfm_sst_write(asset_uuid, NULL);
     if (err != TFM_SST_ERR_ASSET_NOT_FOUND) {
         TEST_FAIL("Write should fail with tfm_sst_buf_t pointer set to NULL");
         return;
@@ -795,14 +608,14 @@
     io_data.offset = 0;
 
     /* Calls write function with data pointer set to NULL */
-    err = tfm_sst_write(hdl, &io_data);
+    err = tfm_sst_write(asset_uuid, &io_data);
     if (err != TFM_SST_ERR_ASSET_NOT_FOUND) {
         TEST_FAIL("Write should fail with data pointer set to NULL");
         return;
     }
 
     /* Calls delete asset to clean up SST area for next test */
-    err = tfm_sst_delete(hdl);
+    err = tfm_sst_delete(asset_uuid);
     if (err != TFM_SST_ERR_SUCCESS) {
         TEST_FAIL("The delete action should work correctly");
         return;
@@ -817,32 +630,24 @@
  */
 TFM_SST_NS_TEST(1012, "Thread_C")
 {
-    const uint16_t asset_uuid = SST_ASSET_ID_AES_KEY_192;
+    const uint32_t asset_uuid = SST_ASSET_ID_AES_KEY_192;
     enum tfm_sst_err_t err;
     struct tfm_sst_buf_t io_data;
-    uint32_t hdl;
     uint8_t wrt_data[SST_ASSET_MAX_SIZE_AES_KEY_192] = {0};
 
-    /* Creates asset to get a valid handle */
+    /* Creates asset */
     err = tfm_sst_create(asset_uuid);
     if (err != TFM_SST_ERR_SUCCESS) {
         TEST_FAIL("Create should not fail for Thread_C");
         return;
     }
 
-    /* Gets asset's handle */
-    err = tfm_sst_get_handle(asset_uuid, &hdl);
-    if (err != TFM_SST_ERR_SUCCESS) {
-        TEST_FAIL("Get handle should return a valid asset handle");
-        return;
-    }
-
     /* Attempts to write beyond end of asset starting from a valid offset */
     io_data.data = wrt_data;
     io_data.size = BUFFER_PLUS_PADDING_SIZE;
     io_data.offset = 0;
 
-    err = tfm_sst_write(hdl, &io_data);
+    err = tfm_sst_write(asset_uuid, &io_data);
     if (err != TFM_SST_ERR_PARAM_ERROR) {
         TEST_FAIL("Writing beyond end of asset should not succeed");
         return;
@@ -852,14 +657,14 @@
     io_data.size = 1;
     io_data.offset = SST_ASSET_MAX_SIZE_AES_KEY_192;
 
-    err = tfm_sst_write(hdl, &io_data);
+    err = tfm_sst_write(asset_uuid, &io_data);
     if (err != TFM_SST_ERR_PARAM_ERROR) {
         TEST_FAIL("Write to an offset beyond end of asset should not succeed");
         return;
     }
 
     /* Calls delete asset to clean up SST area for next test */
-    err = tfm_sst_delete(hdl);
+    err = tfm_sst_delete(asset_uuid);
     if (err != TFM_SST_ERR_SUCCESS) {
         TEST_FAIL("The delete action should work correctly");
         return;
@@ -870,39 +675,31 @@
 
 /**
  * \brief Tests read function against:
- * - Valid application ID, asset handle and data pointer
- * - Invalid asset handle
+ * - Valid application ID and data pointer
+ * - Invalid asset ID
  */
 TFM_SST_NS_TEST(1013, "Thread_C")
 {
-    const uint16_t asset_uuid = SST_ASSET_ID_AES_KEY_192;
+    const uint32_t asset_uuid = SST_ASSET_ID_AES_KEY_192;
     enum tfm_sst_err_t err;
     struct tfm_sst_buf_t io_data;
-    uint32_t hdl;
     uint8_t wrt_data[WRITE_BUF_SIZE] = "DATA";
     uint8_t read_data[READ_BUF_SIZE] = "XXXXXXXXXXXXX";
 
-    /* Creates asset to get a valid handle */
+    /* Creates asset */
     err = tfm_sst_create(asset_uuid);
     if (err != TFM_SST_ERR_SUCCESS) {
         TEST_FAIL("Create should not fail for Thread_C");
         return;
     }
 
-    /* Gets asset's handle */
-    err = tfm_sst_get_handle(asset_uuid, &hdl);
-    if (err != TFM_SST_ERR_SUCCESS) {
-        TEST_FAIL("Get handle should return a valid asset handle");
-        return;
-    }
-
     /* Sets data structure */
     io_data.data = wrt_data;
     io_data.size = WRITE_BUF_SIZE;
     io_data.offset = 0;
 
     /* Writes data in the asset */
-    err = tfm_sst_write(hdl, &io_data);
+    err = tfm_sst_write(asset_uuid, &io_data);
     if (err != TFM_SST_ERR_SUCCESS) {
         TEST_FAIL("Write should work correctly");
         return;
@@ -914,7 +711,7 @@
     io_data.offset = 0;
 
     /* Read data from the asset */
-    err = tfm_sst_read(hdl, &io_data);
+    err = tfm_sst_read(asset_uuid, &io_data);
     if (err != TFM_SST_ERR_SUCCESS) {
         TEST_FAIL("Read should work correctly");
         return;
@@ -936,16 +733,17 @@
         return;
     }
 
-    /* Calls read with invalid asset handle */
-    err = tfm_sst_read(0, &io_data);
+    /* Calls read with invalid asset ID */
+    err = tfm_sst_read(INVALID_ASSET_ID,
+                       &io_data);
     if (err != TFM_SST_ERR_ASSET_NOT_FOUND) {
         TEST_FAIL("Read should fail when read is called with an invalid "
-                  "asset handle");
+                  "asset ID");
         return;
     }
 
     /* Deletes asset to clean up the SST area for the next test */
-    err = tfm_sst_delete(hdl);
+    err = tfm_sst_delete(asset_uuid);
     if (err != TFM_SST_ERR_SUCCESS) {
         TEST_FAIL("Delete should not fail");
         return;
@@ -955,11 +753,11 @@
 }
 
 /**
- * \brief Creates asset with an authorised app ID to get a valid handle.
+ * \brief Creates asset with an authorised app ID.
  */
 static void tfm_sst_test_1014_task_1(struct test_result_t *ret)
 {
-    const uint16_t asset_uuid = SST_ASSET_ID_AES_KEY_192;
+    const uint32_t asset_uuid = SST_ASSET_ID_AES_KEY_192;
     enum tfm_sst_err_t err;
 
     err = tfm_sst_create(asset_uuid);
@@ -968,12 +766,6 @@
         return;
     }
 
-    err = tfm_sst_get_handle(asset_uuid, &tfm_sst_test_1014_handle);
-    if (err != TFM_SST_ERR_SUCCESS) {
-        TEST_FAIL("Get handle should not fail");
-        return;
-    }
-
     ret->val = TEST_PASSED;
 }
 
@@ -982,6 +774,7 @@
  */
 static void tfm_sst_test_1014_task_2(struct test_result_t *ret)
 {
+    const uint32_t asset_uuid = SST_ASSET_ID_AES_KEY_192;
     enum tfm_sst_err_t err;
     struct tfm_sst_buf_t io_data;
     uint8_t read_data[READ_BUF_SIZE] = "XXXXXXXXXXXXX";
@@ -991,7 +784,7 @@
     io_data.size = 1;
     io_data.offset = 0;
 
-    err = tfm_sst_read(tfm_sst_test_1014_handle, &io_data);
+    err = tfm_sst_read(asset_uuid, &io_data);
     if (err != TFM_SST_ERR_ASSET_NOT_FOUND) {
         TEST_FAIL("Read should not succeed with an invalid thread name");
         return;
@@ -1005,9 +798,10 @@
  */
 static void tfm_sst_test_1014_task_3(struct test_result_t *ret)
 {
+    const uint32_t asset_uuid = SST_ASSET_ID_AES_KEY_192;
     enum tfm_sst_err_t err;
 
-    err = tfm_sst_delete(tfm_sst_test_1014_handle);
+    err = tfm_sst_delete(asset_uuid);
     if (err != TFM_SST_ERR_SUCCESS) {
         TEST_FAIL("Delete should not fail");
         return;
@@ -1021,7 +815,7 @@
  */
 static void tfm_sst_test_1014(struct test_result_t *ret)
 {
-    /* Creates asset with an authorised app ID to get a valid handle */
+    /* Creates asset with an authorised app ID */
     tfm_sst_run_test("Thread_C", ret, tfm_sst_test_1014_task_1);
     if (ret->val != TEST_PASSED) {
         return;
@@ -1044,27 +838,19 @@
  */
 TFM_SST_NS_TEST(1015, "Thread_C")
 {
-    const uint16_t asset_uuid = SST_ASSET_ID_AES_KEY_192;
+    const uint32_t asset_uuid = SST_ASSET_ID_AES_KEY_192;
     enum tfm_sst_err_t err;
     struct tfm_sst_buf_t io_data;
-    uint32_t hdl;
 
-    /* Creates asset to get a valid handle */
+    /* Creates asset */
     err = tfm_sst_create(asset_uuid);
     if (err != TFM_SST_ERR_SUCCESS) {
         TEST_FAIL("Create should not fail for Thread_C");
         return;
     }
 
-    /* Gets asset's handle */
-    err = tfm_sst_get_handle(asset_uuid, &hdl);
-    if (err != TFM_SST_ERR_SUCCESS) {
-        TEST_FAIL("Get handle should return a valid asset handle");
-        return;
-    }
-
     /* Calls read with null tfm_sst_buf_t pointer */
-    err = tfm_sst_read(hdl, NULL);
+    err = tfm_sst_read(asset_uuid, NULL);
     if (err != TFM_SST_ERR_ASSET_NOT_FOUND) {
         TEST_FAIL("Read with tfm_sst_buf_t pointer set to NULL should fail");
         return;
@@ -1075,14 +861,14 @@
     io_data.offset = 0;
 
     /* Calls read with null read data pointer */
-    err = tfm_sst_read(hdl, &io_data);
+    err = tfm_sst_read(asset_uuid, &io_data);
     if (err != TFM_SST_ERR_ASSET_NOT_FOUND) {
         TEST_FAIL("Read with read data pointer set to NULL should fail");
         return;
     }
 
     /* Calls delete asset to clean up SST area for next test */
-    err = tfm_sst_delete(hdl);
+    err = tfm_sst_delete(asset_uuid);
     if (err != TFM_SST_ERR_SUCCESS) {
         TEST_FAIL("The delete action should work correctly");
         return;
@@ -1097,42 +883,35 @@
  */
 TFM_SST_NS_TEST(1016, "Thread_C")
 {
-    const uint16_t asset_uuid = SST_ASSET_ID_AES_KEY_192;
+    const uint32_t asset_uuid = SST_ASSET_ID_AES_KEY_192;
     enum tfm_sst_err_t err;
     struct tfm_sst_buf_t io_data;
     struct tfm_sst_asset_info_t asset_info;
-    uint32_t hdl;
     uint8_t wrt_data[WRITE_BUF_SIZE] = "DATA";
     uint8_t read_data[READ_BUF_SIZE] = "XXXXXXXXXXXXX";
 
-    /* Creates asset to get a valid handle */
+    /* Creates asset */
     err = tfm_sst_create(asset_uuid);
     if (err != TFM_SST_ERR_SUCCESS) {
         TEST_FAIL("Create should not fail for Thread_C");
         return;
     }
 
-    /* Gets asset's handle */
-    err = tfm_sst_get_handle(asset_uuid, &hdl);
-    if (err != TFM_SST_ERR_SUCCESS) {
-        TEST_FAIL("Get handle should return a valid asset handle");
-        return;
-    }
-
     /* Sets data structure */
     io_data.data = wrt_data;
     io_data.size = WRITE_BUF_SIZE;
     io_data.offset = 0;
 
     /* Writes data in the asset */
-    err = tfm_sst_write(hdl, &io_data);
+    err = tfm_sst_write(asset_uuid, &io_data);
     if (err != TFM_SST_ERR_SUCCESS) {
         TEST_FAIL("Write should work correctly");
         return;
     }
 
-    /* Gets current asset attributes */
-    err = tfm_sst_get_info(hdl, &asset_info);
+    /* Gets current asset information */
+    err = tfm_sst_get_info(asset_uuid,
+                           &asset_info);
     if (err != TFM_SST_ERR_SUCCESS) {
         TEST_FAIL("Thread_C should read the information of this asset");
         return;
@@ -1149,7 +928,7 @@
     io_data.size = WRITE_BUF_SIZE + 1;
     io_data.offset = 0;
 
-    err = tfm_sst_read(hdl, &io_data);
+    err = tfm_sst_read(asset_uuid, &io_data);
     if (err != TFM_SST_ERR_PARAM_ERROR) {
         TEST_FAIL("Read beyond current size should not succeed");
         return;
@@ -1159,7 +938,7 @@
     io_data.size = 1;
     io_data.offset = asset_info.size_current;
 
-    err = tfm_sst_read(hdl, &io_data);
+    err = tfm_sst_read(asset_uuid, &io_data);
     if (err != TFM_SST_ERR_PARAM_ERROR) {
         TEST_FAIL("Read from an offset beyond current size should not succeed");
         return;
@@ -1170,48 +949,40 @@
 
 /**
  * \brief Tests delete function with:
- * - Valid application ID and asset handle
- * - Invalid asset handle
+ * - Valid application ID
+ * - Invalid asset ID
  */
 TFM_SST_NS_TEST(1017, "Thread_B")
 {
-    const uint16_t asset_uuid = SST_ASSET_ID_SHA224_HASH;
+    const uint32_t asset_uuid = SST_ASSET_ID_SHA224_HASH;
     enum tfm_sst_err_t err;
-    uint32_t hdl;
 
-    /* Creates assset 1 to get a valid handle */
+    /* Creates assset 1 */
     err = tfm_sst_create(asset_uuid);
     if (err != TFM_SST_ERR_SUCCESS) {
         TEST_FAIL("Create should not fail for Thread_B");
         return;
     }
 
-    /* Gets asset handle */
-    err = tfm_sst_get_handle(asset_uuid, &hdl);
-    if (err != TFM_SST_ERR_SUCCESS) {
-        TEST_FAIL("Get handle should return a valid asset handle");
-        return;
-    }
-
     /* Calls delete asset */
-    err = tfm_sst_delete(hdl);
+    err = tfm_sst_delete(asset_uuid);
     if (err != TFM_SST_ERR_SUCCESS) {
         TEST_FAIL("The delete action should not fail as thread has"
                   " write permissions");
         return;
     }
 
-    /* Calls delete with a deleted asset handle */
-    err = tfm_sst_delete(hdl);
+    /* Calls delete with a deleted asset ID */
+    err = tfm_sst_delete(asset_uuid);
     if (err != TFM_SST_ERR_ASSET_NOT_FOUND) {
-        TEST_FAIL("The delete action should fail as handle is not valid");
+        TEST_FAIL("The delete action should fail as asset was deleted");
         return;
     }
 
-    /* Calls delete asset with invalid asset handle */
-    err = tfm_sst_delete(0);
+    /* Calls delete asset with invalid asset ID */
+    err = tfm_sst_delete(INVALID_ASSET_ID);
     if (err != TFM_SST_ERR_ASSET_NOT_FOUND) {
-        TEST_FAIL("The delete action should fail handle is not valid");
+        TEST_FAIL("The delete action should fail as asset ID is not valid");
         return;
     }
 
@@ -1219,11 +990,11 @@
 }
 
 /**
- * \brief Creates asset with an authorised app ID to get a valid handle.
+ * \brief Creates asset with an authorised app ID.
  */
 static void tfm_sst_test_1018_task_1(struct test_result_t *ret)
 {
-    const uint16_t asset_uuid = SST_ASSET_ID_AES_KEY_192;
+    const uint32_t asset_uuid = SST_ASSET_ID_AES_KEY_192;
     enum tfm_sst_err_t err;
 
     err = tfm_sst_create(asset_uuid);
@@ -1232,12 +1003,6 @@
         return;
     }
 
-    err = tfm_sst_get_handle(asset_uuid, &tfm_sst_test_1018_handle);
-    if (err != TFM_SST_ERR_SUCCESS) {
-        TEST_FAIL("Get handle should not fail");
-        return;
-    }
-
     ret->val = TEST_PASSED;
 }
 
@@ -1246,9 +1011,10 @@
  */
 static void tfm_sst_test_1018_task_2(struct test_result_t *ret)
 {
+    const uint32_t asset_uuid = SST_ASSET_ID_AES_KEY_192;
     enum tfm_sst_err_t err;
 
-    err = tfm_sst_delete(tfm_sst_test_1018_handle);
+    err = tfm_sst_delete(asset_uuid);
     if (err != TFM_SST_ERR_ASSET_NOT_FOUND) {
         TEST_FAIL("Delete should not succeed with an invalid thread name");
         return;
@@ -1262,9 +1028,10 @@
  */
 static void tfm_sst_test_1018_task_3(struct test_result_t *ret)
 {
+    const uint32_t asset_uuid = SST_ASSET_ID_AES_KEY_192;
     enum tfm_sst_err_t err;
 
-    err = tfm_sst_delete(tfm_sst_test_1018_handle);
+    err = tfm_sst_delete(asset_uuid);
     if (err != TFM_SST_ERR_SUCCESS) {
         TEST_FAIL("Delete should not fail");
         return;
@@ -1278,7 +1045,7 @@
  */
 static void tfm_sst_test_1018(struct test_result_t *ret)
 {
-    /* Creates asset with an authorised app ID to get a valid handle */
+    /* Creates asset with an authorised app ID */
     tfm_sst_run_test("Thread_C", ret, tfm_sst_test_1018_task_1);
     if (ret->val != TEST_PASSED) {
         return;
@@ -1303,7 +1070,7 @@
  */
 static void tfm_sst_test_1019_task_1(struct test_result_t *ret)
 {
-    const uint16_t asset_uuid_2 = SST_ASSET_ID_SHA384_HASH;
+    const uint32_t asset_uuid_2 = SST_ASSET_ID_SHA384_HASH;
     enum tfm_sst_err_t err;
 
     /* Creates asset 2 first to locate it at the beginning of the data block */
@@ -1318,33 +1085,25 @@
 
 static void tfm_sst_test_1019_task_2(struct test_result_t *ret)
 {
-    const uint16_t asset_uuid_1 = SST_ASSET_ID_SHA224_HASH;
+    const uint32_t asset_uuid_1 = SST_ASSET_ID_SHA224_HASH;
     struct tfm_sst_buf_t io_data;
     enum tfm_sst_err_t err;
-    uint32_t hdl_1;
     uint8_t wrt_data[BUF_SIZE_SHA224] = WRITE_DATA_SHA224_1;
 
-    /* Creates asset 1 handle */
+    /* Creates asset 1 */
     err = tfm_sst_create(asset_uuid_1);
     if (err != TFM_SST_ERR_SUCCESS) {
         TEST_FAIL("Create should not fail for Thread_B");
         return;
     }
 
-    /* Gets asset 1 handle */
-    err = tfm_sst_get_handle(asset_uuid_1, &hdl_1);
-    if (err != TFM_SST_ERR_SUCCESS) {
-        TEST_FAIL("Get handle should return a valid asset handle");
-        return;
-    }
-
     /* Sets data structure */
     io_data.data = wrt_data;
     io_data.size = SST_ASSET_MAX_SIZE_SHA224_HASH;
     io_data.offset = 0;
 
     /* Writes data into asset 1 */
-    err = tfm_sst_write(hdl_1, &io_data);
+    err = tfm_sst_write(asset_uuid_1, &io_data);
     if (err != TFM_SST_ERR_SUCCESS) {
         TEST_FAIL("Write should not fail for Thread_B");
         return;
@@ -1355,20 +1114,13 @@
 
 static void tfm_sst_test_1019_task_3(struct test_result_t *ret)
 {
-    const uint16_t asset_uuid_2 = SST_ASSET_ID_SHA384_HASH;
+    const uint32_t asset_uuid_2 = SST_ASSET_ID_SHA384_HASH;
     enum tfm_sst_err_t err;
-    uint32_t hdl_2;
-
-    err = tfm_sst_get_handle(asset_uuid_2, &hdl_2);
-    if (err != TFM_SST_ERR_SUCCESS) {
-        TEST_FAIL("Get handle should return a valid asset handle");
-        return;
-    }
 
     /* Deletes asset 2. After the delete call, asset 1 should be at the
      * beginning of the block.
      */
-    err = tfm_sst_delete(hdl_2);
+    err = tfm_sst_delete(asset_uuid_2);
     if (err != TFM_SST_ERR_SUCCESS) {
         TEST_FAIL("The delete action should work correctly");
         return;
@@ -1379,19 +1131,12 @@
 
 static void tfm_sst_test_1019_task_4(struct test_result_t *ret)
 {
-    const uint16_t asset_uuid_1 = SST_ASSET_ID_SHA224_HASH;
+    const uint32_t asset_uuid_1 = SST_ASSET_ID_SHA224_HASH;
     enum tfm_sst_err_t err;
-    uint32_t hdl_1;
     struct tfm_sst_buf_t io_data;
     uint8_t read_data[BUF_SIZE_SHA224] = READ_DATA_SHA224;
     uint8_t wrt_data[BUF_SIZE_SHA224] = WRITE_DATA_SHA224_1;
 
-    err = tfm_sst_get_handle(asset_uuid_1, &hdl_1);
-    if (err != TFM_SST_ERR_SUCCESS) {
-        TEST_FAIL("Get handle should return a valid asset handle");
-        return;
-    }
-
     /* Sets data structure */
     io_data.data = read_data;
     io_data.size = SST_ASSET_MAX_SIZE_SHA224_HASH;
@@ -1400,7 +1145,7 @@
     /* If the compact worked as expected, the test should be able to read back
      * the data from asset 1 correctly.
      */
-    err = tfm_sst_read(hdl_1, &io_data);
+    err = tfm_sst_read(asset_uuid_1, &io_data);
     if (err != TFM_SST_ERR_SUCCESS) {
         TEST_FAIL("Read should not fail for Thread_B");
         return;
@@ -1412,7 +1157,7 @@
     }
 
     /* Calls delete asset */
-    err = tfm_sst_delete(hdl_1);
+    err = tfm_sst_delete(asset_uuid_1);
     if (err != TFM_SST_ERR_SUCCESS) {
         TEST_FAIL("The delete action should work correctly");
         return;
@@ -1446,35 +1191,27 @@
  */
 TFM_SST_NS_TEST(1020, "Thread_C")
 {
-    const uint16_t asset_uuid = SST_ASSET_ID_AES_KEY_192;
+    const uint32_t asset_uuid = SST_ASSET_ID_AES_KEY_192;
     enum tfm_sst_err_t err;
     struct tfm_sst_buf_t io_data;
-    uint32_t hdl;
     uint32_t i;
     uint8_t read_data[READ_BUF_SIZE] = "XXXXXXXXXXXXX";
     uint8_t wrt_data[WRITE_BUF_SIZE] = "DATA";
 
-    /* Creates asset to get a valid handle */
+    /* Creates asset */
     err = tfm_sst_create(asset_uuid);
     if (err != TFM_SST_ERR_SUCCESS) {
         TEST_FAIL("Create should not fail for Thread_C");
         return;
     }
 
-    /* Gets asset's handle */
-    err = tfm_sst_get_handle(asset_uuid, &hdl);
-    if (err != TFM_SST_ERR_SUCCESS) {
-        TEST_FAIL("Get handle should return a valid asset handle");
-        return;
-    }
-
     /* Sets data structure */
     io_data.data = wrt_data;
     io_data.size = WRITE_BUF_SIZE;
     io_data.offset = 0;
 
     /* Writes data in the asset */
-    err = tfm_sst_write(hdl, &io_data);
+    err = tfm_sst_write(asset_uuid, &io_data);
     if (err != TFM_SST_ERR_SUCCESS) {
         TEST_FAIL("Write should work correctly");
         return;
@@ -1488,7 +1225,7 @@
 
     for (i = 0; i < WRITE_BUF_SIZE; i++) {
         /* Read data from the asset */
-        err = tfm_sst_read(hdl, &io_data);
+        err = tfm_sst_read(asset_uuid, &io_data);
 #ifdef SST_ENABLE_PARTIAL_ASSET_RW
         if (err != TFM_SST_ERR_SUCCESS) {
 #else
@@ -1528,7 +1265,7 @@
     }
 
     /* Calls delete asset */
-    err = tfm_sst_delete(hdl);
+    err = tfm_sst_delete(asset_uuid);
     if (err != TFM_SST_ERR_SUCCESS) {
         TEST_FAIL("The delete action should work correctly");
         return;
@@ -1543,40 +1280,32 @@
  */
 TFM_SST_NS_TEST(1021, "Thread_B")
 {
-    const uint16_t asset_uuid = SST_ASSET_ID_SHA224_HASH;
+    const uint32_t asset_uuid = SST_ASSET_ID_SHA224_HASH;
     enum tfm_sst_err_t err;
     struct tfm_sst_buf_t io_data;
-    uint32_t hdl;
     uint8_t wrt_data[BUF_SIZE_SHA224] = {0};
 
-    /* Creates asset to get a valid handle */
+    /* Creates asset */
     err = tfm_sst_create(asset_uuid);
     if (err != TFM_SST_ERR_SUCCESS) {
         TEST_FAIL("Create should not fail for Thread_B");
         return;
     }
 
-    /* Gets asset's handle */
-    err = tfm_sst_get_handle(asset_uuid, &hdl);
-    if (err != TFM_SST_ERR_SUCCESS) {
-        TEST_FAIL("Get handle should return a valid asset handle");
-        return;
-    }
-
     /* Sets data structure */
     io_data.data = wrt_data;
     io_data.size = SST_ASSET_MAX_SIZE_SHA224_HASH + 1;
     io_data.offset = 0;
 
     /* Writes data in the asset */
-    err = tfm_sst_write(hdl, &io_data);
+    err = tfm_sst_write(asset_uuid, &io_data);
     if (err != TFM_SST_ERR_PARAM_ERROR) {
         TEST_FAIL("Should have failed asset write of too large");
         return;
     }
 
     /* Calls delete asset */
-    err = tfm_sst_delete(hdl);
+    err = tfm_sst_delete(asset_uuid);
     if (err != TFM_SST_ERR_SUCCESS) {
         TEST_FAIL("The delete action should work correctly");
         return;
@@ -1591,35 +1320,27 @@
  */
 TFM_SST_NS_TEST(1022, "Thread_B")
 {
-    const uint16_t asset_uuid = SST_ASSET_ID_SHA224_HASH;
+    const uint32_t asset_uuid = SST_ASSET_ID_SHA224_HASH;
     enum tfm_sst_err_t err;
     struct tfm_sst_buf_t io_data;
-    uint32_t hdl;
     uint8_t read_data[READ_BUF_SIZE]  = "XXXXXXXXXXXXX";
     uint8_t wrt_data[WRITE_BUF_SIZE+1]  = "Hello";
     uint8_t wrt_data2[WRITE_BUF_SIZE+1] = "World";
 
-    /* Creates asset to get a valid handle */
+    /* Creates asset */
     err = tfm_sst_create(asset_uuid);
     if (err != TFM_SST_ERR_SUCCESS) {
         TEST_FAIL("Create should not fail for Thread_B");
         return;
     }
 
-    /* Gets asset's handle */
-    err = tfm_sst_get_handle(asset_uuid, &hdl);
-    if (err != TFM_SST_ERR_SUCCESS) {
-        TEST_FAIL("Get handle should return a valid asset handle");
-        return;
-    }
-
     /* Sets data structure */
     io_data.data = wrt_data;
     io_data.size = WRITE_BUF_SIZE;
     io_data.offset = 0;
 
     /* Writes data in the asset */
-    err = tfm_sst_write(hdl, &io_data);
+    err = tfm_sst_write(asset_uuid, &io_data);
     if (err != TFM_SST_ERR_SUCCESS) {
         TEST_FAIL("Write data 1 failed");
         return;
@@ -1631,7 +1352,7 @@
     io_data.offset = WRITE_BUF_SIZE;
 
     /* Writes data 2 in the asset */
-    err = tfm_sst_write(hdl, &io_data);
+    err = tfm_sst_write(asset_uuid, &io_data);
     if (err != TFM_SST_ERR_SUCCESS) {
         TEST_FAIL("Write data 2 failed");
         return;
@@ -1643,7 +1364,7 @@
     io_data.offset = 0;
 
     /* Reads back the data */
-    err = tfm_sst_read(hdl, &io_data);
+    err = tfm_sst_read(asset_uuid, &io_data);
     if (err != TFM_SST_ERR_SUCCESS) {
         TEST_FAIL("Incorrect number of bytes read back");
         return;
@@ -1655,7 +1376,7 @@
     }
 
     /* Calls delete asset */
-    err = tfm_sst_delete(hdl);
+    err = tfm_sst_delete(asset_uuid);
     if (err != TFM_SST_ERR_SUCCESS) {
         TEST_FAIL("The delete action should work correctly");
         return;
@@ -1669,35 +1390,27 @@
  */
 TFM_SST_NS_TEST(1023, "Thread_B")
 {
-    const uint16_t asset_uuid = SST_ASSET_ID_SHA224_HASH;
+    const uint32_t asset_uuid = SST_ASSET_ID_SHA224_HASH;
     enum tfm_sst_err_t err;
     struct tfm_sst_buf_t io_data;
-    uint32_t hdl;
     uint8_t read_data[BUF_SIZE_SHA224] = READ_DATA_SHA224;
     uint8_t wrt_data[BUF_SIZE_SHA224] = WRITE_DATA_SHA224_1;
     uint8_t wrt_data2[BUF_SIZE_SHA224] = WRITE_DATA_SHA224_2;
 
-    /* Creates asset to get a valid handle */
+    /* Creates asset */
     err = tfm_sst_create(asset_uuid);
     if (err != TFM_SST_ERR_SUCCESS) {
         TEST_FAIL("Create should not fail for Thread_B");
         return;
     }
 
-    /* Gets asset's handle */
-    err = tfm_sst_get_handle(asset_uuid, &hdl);
-    if (err != TFM_SST_ERR_SUCCESS) {
-        TEST_FAIL("Get handle should return a valid asset handle");
-        return;
-    }
-
     /* Sets data structure */
     io_data.data = wrt_data;
     io_data.size = WRITE_BUF_SIZE;
     io_data.offset = 0;
 
     /* Writes data in the asset */
-    err = tfm_sst_write(hdl, &io_data);
+    err = tfm_sst_write(asset_uuid, &io_data);
     if (err != TFM_SST_ERR_SUCCESS) {
         TEST_FAIL("Write data 1 failed");
         return;
@@ -1709,7 +1422,7 @@
     io_data.offset = WRITE_BUF_SIZE;
 
     /* Writes data in the asset */
-    err = tfm_sst_write(hdl, &io_data);
+    err = tfm_sst_write(asset_uuid, &io_data);
     if (err != TFM_SST_ERR_PARAM_ERROR) {
         TEST_FAIL("Write data 2 should have failed as this write tries to "
                   "write more bytes that the max size");
@@ -1722,7 +1435,7 @@
     io_data.offset = WRITE_BUF_SIZE;
 
     /* Writes data in the asset */
-    err = tfm_sst_write(hdl, &io_data);
+    err = tfm_sst_write(asset_uuid, &io_data);
     if (err != TFM_SST_ERR_SUCCESS) {
         TEST_FAIL("Write data 3 failed");
         return;
@@ -1734,7 +1447,7 @@
     io_data.offset = 0;
 
     /* Read back the data */
-    err = tfm_sst_read(hdl, &io_data);
+    err = tfm_sst_read(asset_uuid, &io_data);
     if (err != TFM_SST_ERR_SUCCESS) {
         TEST_FAIL("Incorrect number of bytes read back");
         return;
@@ -1746,7 +1459,7 @@
     }
 
     /* Calls delete asset */
-    err = tfm_sst_delete(hdl);
+    err = tfm_sst_delete(asset_uuid);
     if (err != TFM_SST_ERR_SUCCESS) {
         TEST_FAIL("The delete action should work correctly");
         return;
@@ -1760,50 +1473,37 @@
  */
 static void tfm_sst_test_1024_task_1(struct test_result_t *ret)
 {
-    const uint16_t asset_uuid_1 = SST_ASSET_ID_AES_KEY_192;
+    const uint32_t asset_uuid_1 = SST_ASSET_ID_AES_KEY_192;
     enum tfm_sst_err_t err;
 
-    /* Creates asset 1 to get a valid handle */
+    /* Creates asset 1 */
     err = tfm_sst_create(asset_uuid_1);
     if (err != TFM_SST_ERR_SUCCESS) {
         TEST_FAIL("Create should not fail for Thread_C");
         return;
     }
 
-    /* Gets asset's handle 1 */
-    err = tfm_sst_get_handle(asset_uuid_1, &tfm_sst_test_1024_asset_1_handle);
-    if (err != TFM_SST_ERR_SUCCESS) {
-        TEST_FAIL("Get handle should return a valid asset handle");
-        return;
-    }
-
     ret->val = TEST_PASSED;
 }
 
 static void tfm_sst_test_1024_task_2(struct test_result_t *ret)
 {
-    const uint16_t asset_uuid_2 = SST_ASSET_ID_SHA224_HASH;
+    const uint32_t asset_uuid_2 = SST_ASSET_ID_SHA224_HASH;
     enum tfm_sst_err_t err;
 
-    /* Creates asset 2 to get a valid handle */
+    /* Creates asset 2 */
     err = tfm_sst_create(asset_uuid_2);
     if (err != TFM_SST_ERR_SUCCESS) {
         TEST_FAIL("Create should not fail for Thread_B");
         return;
     }
 
-    /* Gets asset's handle 2*/
-    err = tfm_sst_get_handle(asset_uuid_2, &tfm_sst_test_1024_asset_2_handle);
-    if (err != TFM_SST_ERR_SUCCESS) {
-        TEST_FAIL("Get handle should return a valid asset handle");
-        return;
-    }
-
     ret->val = TEST_PASSED;
 }
 
 static void tfm_sst_test_1024_task_3(struct test_result_t *ret)
 {
+    const uint32_t asset_uuid_1 = SST_ASSET_ID_AES_KEY_192;
     enum tfm_sst_err_t err;
     struct tfm_sst_buf_t io_data;
     uint8_t wrt_data[WRITE_BUF_SIZE+1]  = "Hello";
@@ -1814,7 +1514,7 @@
     io_data.offset = 0;
 
     /* Writes data in asset 1 */
-    err = tfm_sst_write(tfm_sst_test_1024_asset_1_handle, &io_data);
+    err = tfm_sst_write(asset_uuid_1, &io_data);
     if (err != TFM_SST_ERR_SUCCESS) {
         TEST_FAIL("Write data should work for Thread_C");
         return;
@@ -1825,6 +1525,7 @@
 
 static void tfm_sst_test_1024_task_4(struct test_result_t *ret)
 {
+    const uint32_t asset_uuid_2 = SST_ASSET_ID_SHA224_HASH;
     enum tfm_sst_err_t err;
     struct tfm_sst_buf_t io_data;
     uint8_t wrt_data2[3] = "Hi";
@@ -1835,7 +1536,7 @@
     io_data.size = 2;
     io_data.offset = 0;
 
-    err = tfm_sst_write(tfm_sst_test_1024_asset_2_handle, &io_data);
+    err = tfm_sst_write(asset_uuid_2, &io_data);
     if (err != TFM_SST_ERR_SUCCESS) {
         TEST_FAIL("Write data should work for Thread_B");
         return;
@@ -1846,6 +1547,7 @@
 
 static void tfm_sst_test_1024_task_5(struct test_result_t *ret)
 {
+    const uint32_t asset_uuid_1 = SST_ASSET_ID_AES_KEY_192;
     enum tfm_sst_err_t err;
     struct tfm_sst_buf_t io_data;
     uint8_t wrt_data3[WRITE_BUF_SIZE+1] = "World";
@@ -1856,7 +1558,7 @@
     io_data.offset = WRITE_BUF_SIZE;
 
     /* Writes data 3 in asset 1 */
-    err = tfm_sst_write(tfm_sst_test_1024_asset_1_handle, &io_data);
+    err = tfm_sst_write(asset_uuid_1, &io_data);
     if (err != TFM_SST_ERR_SUCCESS) {
         TEST_FAIL("Write data should work for Thread_C");
         return;
@@ -1867,6 +1569,7 @@
 
 static void tfm_sst_test_1024_task_6(struct test_result_t *ret)
 {
+    const uint32_t asset_uuid_2 = SST_ASSET_ID_SHA224_HASH;
     enum tfm_sst_err_t err;
     struct tfm_sst_buf_t io_data;
     uint8_t wrt_data4[WRITE_BUF_SIZE+1] = "12345";
@@ -1877,7 +1580,7 @@
     io_data.offset = 2;
 
     /* Writes data 4 in asset 2 */
-    err = tfm_sst_write(tfm_sst_test_1024_asset_2_handle, &io_data);
+    err = tfm_sst_write(asset_uuid_2, &io_data);
     if (err != TFM_SST_ERR_SUCCESS) {
         TEST_FAIL("Write data should work for Thread_B");
         return;
@@ -1888,6 +1591,7 @@
 
 static void tfm_sst_test_1024_task_7(struct test_result_t *ret)
 {
+    const uint32_t asset_uuid_1 = SST_ASSET_ID_AES_KEY_192;
     enum tfm_sst_err_t err;
     struct tfm_sst_buf_t io_data;
     uint8_t read_data[READ_BUF_SIZE]  = "XXXXXXXXXXXXX";
@@ -1899,7 +1603,7 @@
     io_data.offset = 0;
 
     /* Read back the asset 1 */
-    err = tfm_sst_read(tfm_sst_test_1024_asset_1_handle, &io_data);
+    err = tfm_sst_read(asset_uuid_1, &io_data);
     if (err != TFM_SST_ERR_SUCCESS) {
         TEST_FAIL("Read should not fail for Thread_C");
         return;
@@ -1915,6 +1619,7 @@
 
 static void tfm_sst_test_1024_task_8(struct test_result_t *ret)
 {
+    const uint32_t asset_uuid_2 = SST_ASSET_ID_SHA224_HASH;
     enum tfm_sst_err_t err;
     struct tfm_sst_buf_t io_data;
     uint8_t read_data[READ_BUF_SIZE]  = "XXXXXXXXXXXXX";
@@ -1925,7 +1630,7 @@
     io_data.offset = 0;
 
     /* Read back the asset 1 */
-    err = tfm_sst_read(tfm_sst_test_1024_asset_2_handle, &io_data);
+    err = tfm_sst_read(asset_uuid_2, &io_data);
     if (err != TFM_SST_ERR_SUCCESS) {
         TEST_FAIL("Incorrect number of bytes read back");
         return;
@@ -1937,7 +1642,7 @@
     }
 
     /* Calls delete asset */
-    err = tfm_sst_delete(tfm_sst_test_1024_asset_2_handle);
+    err = tfm_sst_delete(asset_uuid_2);
     if (err != TFM_SST_ERR_SUCCESS) {
         TEST_FAIL("The delete action should work correctly");
         return;
@@ -1948,10 +1653,11 @@
 
 static void tfm_sst_test_1024_task_9(struct test_result_t *ret)
 {
+    const uint32_t asset_uuid_1 = SST_ASSET_ID_AES_KEY_192;
     enum tfm_sst_err_t err;
 
     /* Calls delete asset 1 */
-    err = tfm_sst_delete(tfm_sst_test_1024_asset_1_handle);
+    err = tfm_sst_delete(asset_uuid_1);
     if (err != TFM_SST_ERR_SUCCESS) {
         TEST_FAIL("The delete action should work correctly");
         return;
@@ -2011,55 +1717,38 @@
  */
 TFM_SST_NS_TEST(1025, "Thread_B")
 {
-    const uint16_t asset_uuid = SST_ASSET_ID_SHA224_HASH;
+    const uint32_t asset_uuid = SST_ASSET_ID_SHA224_HASH;
     enum tfm_sst_err_t err;
     struct tfm_sst_buf_t io_data;
-    uint32_t hdl;
 
-    /* Creates asset to get a valid handle */
+    /* Creates asset */
     err = tfm_sst_create(asset_uuid);
     if (err != TFM_SST_ERR_SUCCESS) {
         TEST_FAIL("Create should not fail for Thread_B");
         return;
     }
 
-    /* Gets asset's handle */
-    err = tfm_sst_get_handle(asset_uuid, &hdl);
-    if (err != TFM_SST_ERR_SUCCESS) {
-        TEST_FAIL("Get handle should return a valid asset handle");
-        return;
-    }
-
-    /* Gets asset's handle with a ROM address location to store asset's
-     * handle
-     */
-    err = tfm_sst_get_handle(asset_uuid, (uint32_t *)ROM_ADDR_LOCATION);
-    if (err != TFM_SST_ERR_PARAM_ERROR) {
-        TEST_FAIL("Get handle should fail for an illegal location");
-        return;
-    }
-
     /* Sets data structure */
     io_data.data = (uint8_t *)ROM_ADDR_LOCATION;
     io_data.size = 1;
     io_data.offset = 0;
 
     /* Calls write with a ROM address location */
-    err = tfm_sst_write(hdl, &io_data);
+    err = tfm_sst_write(asset_uuid, &io_data);
     if (err != TFM_SST_ERR_ASSET_NOT_FOUND) {
         TEST_FAIL("Write should fail for an illegal location");
         return;
     }
 
     /* Calls read with a ROM address location */
-    err = tfm_sst_read(hdl, &io_data);
+    err = tfm_sst_read(asset_uuid, &io_data);
     if (err != TFM_SST_ERR_ASSET_NOT_FOUND) {
         TEST_FAIL("Read should fail for an illegal location");
         return;
     }
 
     /* Deletes asset to clean up the SST area */
-    err = tfm_sst_delete(hdl);
+    err = tfm_sst_delete(asset_uuid);
     if (err != TFM_SST_ERR_SUCCESS) {
         TEST_FAIL("Delete should not fail");
         return;
@@ -2073,55 +1762,38 @@
  */
 TFM_SST_NS_TEST(1026, "Thread_B")
 {
-    const uint16_t asset_uuid = SST_ASSET_ID_SHA224_HASH;
+    const uint32_t asset_uuid = SST_ASSET_ID_SHA224_HASH;
     enum tfm_sst_err_t err;
     struct tfm_sst_buf_t io_data;
-    uint32_t hdl;
 
-    /* Creates asset to get a valid handle */
+    /* Creates asset */
     err = tfm_sst_create(asset_uuid);
     if (err != TFM_SST_ERR_SUCCESS) {
         TEST_FAIL("Create should not fail for Thread_B");
         return;
     }
 
-    /* Gets asset's handle */
-    err = tfm_sst_get_handle(asset_uuid, &hdl);
-    if (err != TFM_SST_ERR_SUCCESS) {
-        TEST_FAIL("Get handle should return a valid asset handle");
-        return;
-    }
-
-    /* Gets asset's handle with a devices address location to store asset's
-     * handle
-     */
-    err = tfm_sst_get_handle(asset_uuid, (uint32_t *)DEV_ADDR_LOCATION);
-    if (err != TFM_SST_ERR_PARAM_ERROR) {
-        TEST_FAIL("Get handle should fail for an illegal location");
-        return;
-    }
-
     /* Sets data structure */
     io_data.data = (uint8_t *)DEV_ADDR_LOCATION;
     io_data.size = 1;
     io_data.offset = 0;
 
     /* Calls write with a device address location */
-    err = tfm_sst_write(hdl, &io_data);
+    err = tfm_sst_write(asset_uuid, &io_data);
     if (err != TFM_SST_ERR_ASSET_NOT_FOUND) {
         TEST_FAIL("Write should fail for an illegal location");
         return;
     }
 
     /* Calls read with a device address location */
-    err = tfm_sst_read(hdl, &io_data);
+    err = tfm_sst_read(asset_uuid, &io_data);
     if (err != TFM_SST_ERR_ASSET_NOT_FOUND) {
         TEST_FAIL("Read should fail for an illegal location");
         return;
     }
 
     /* Deletes asset to clean up the SST area */
-    err = tfm_sst_delete(hdl);
+    err = tfm_sst_delete(asset_uuid);
     if (err != TFM_SST_ERR_SUCCESS) {
         TEST_FAIL("Delete should not fail");
         return;
@@ -2135,55 +1807,38 @@
  */
 TFM_SST_NS_TEST(1027, "Thread_B")
 {
-    const uint16_t asset_uuid = SST_ASSET_ID_SHA224_HASH;
+    const uint32_t asset_uuid = SST_ASSET_ID_SHA224_HASH;
     enum tfm_sst_err_t err;
     struct tfm_sst_buf_t io_data;
-    uint32_t hdl;
 
-    /* Creates asset to get a valid handle */
+    /* Creates asset */
     err = tfm_sst_create(asset_uuid);
     if (err != TFM_SST_ERR_SUCCESS) {
         TEST_FAIL("Create should not fail for Thread_B");
         return;
     }
 
-    /* Gets asset's handle */
-    err = tfm_sst_get_handle(asset_uuid, &hdl);
-    if (err != TFM_SST_ERR_SUCCESS) {
-        TEST_FAIL("Get handle should return a valid asset handle");
-        return;
-    }
-
-    /* Gets asset's handle with a non existing address location to store asset's
-     * handle
-     */
-    err = tfm_sst_get_handle(asset_uuid, (uint32_t *)NON_EXIST_ADDR_LOCATION);
-    if (err != TFM_SST_ERR_PARAM_ERROR) {
-        TEST_FAIL("Get handle should fail for an illegal location");
-        return;
-    }
-
     /* Sets data structure */
     io_data.data = (uint8_t *)NON_EXIST_ADDR_LOCATION;
     io_data.size = 1;
     io_data.offset = 0;
 
     /* Calls write with a non-existing address location */
-    err = tfm_sst_write(hdl, &io_data);
+    err = tfm_sst_write(asset_uuid, &io_data);
     if (err != TFM_SST_ERR_ASSET_NOT_FOUND) {
         TEST_FAIL("Write should fail for an illegal location");
         return;
     }
 
     /* Calls read with a non-existing address location */
-    err = tfm_sst_read(hdl, &io_data);
+    err = tfm_sst_read(asset_uuid, &io_data);
     if (err != TFM_SST_ERR_ASSET_NOT_FOUND) {
         TEST_FAIL("Read should fail for an illegal location");
         return;
     }
 
     /* Deletes asset to clean up the SST area */
-    err = tfm_sst_delete(hdl);
+    err = tfm_sst_delete(asset_uuid);
     if (err != TFM_SST_ERR_SUCCESS) {
         TEST_FAIL("Delete should not fail");
         return;
@@ -2197,55 +1852,38 @@
  */
 TFM_SST_NS_TEST(1028, "Thread_B")
 {
-    const uint16_t asset_uuid = SST_ASSET_ID_SHA224_HASH;
+    const uint32_t asset_uuid = SST_ASSET_ID_SHA224_HASH;
     enum tfm_sst_err_t err;
     struct tfm_sst_buf_t io_data;
-    uint32_t hdl;
 
-    /* Creates asset to get a valid handle */
+    /* Creates asset */
     err = tfm_sst_create(asset_uuid);
     if (err != TFM_SST_ERR_SUCCESS) {
         TEST_FAIL("Create should not fail for Thread_B");
         return;
     }
 
-    /* Gets asset's handle */
-    err = tfm_sst_get_handle(asset_uuid, &hdl);
-    if (err != TFM_SST_ERR_SUCCESS) {
-        TEST_FAIL("Get handle should return a valid asset handle");
-        return;
-    }
-
-    /* Gets asset's handle with a secure address location to store asset's
-     * handle
-     */
-    err = tfm_sst_get_handle(asset_uuid, (uint32_t *)SECURE_ADDR_LOCATION);
-    if (err != TFM_SST_ERR_PARAM_ERROR) {
-        TEST_FAIL("Get handle should fail for an illegal location");
-        return;
-    }
-
     /* Sets data structure */
     io_data.data = (uint8_t *)SECURE_ADDR_LOCATION;
     io_data.size = 1;
     io_data.offset = 0;
 
     /* Calls write with a secure address location */
-    err = tfm_sst_write(hdl, &io_data);
+    err = tfm_sst_write(asset_uuid, &io_data);
     if (err != TFM_SST_ERR_ASSET_NOT_FOUND) {
         TEST_FAIL("Write should fail for an illegal location");
         return;
     }
 
     /* Calls read with a secure address location */
-    err = tfm_sst_read(hdl, &io_data);
+    err = tfm_sst_read(asset_uuid, &io_data);
     if (err != TFM_SST_ERR_ASSET_NOT_FOUND) {
         TEST_FAIL("Read should fail for an illegal location");
         return;
     }
 
     /* Deletes asset to clean up the SST area */
-    err = tfm_sst_delete(hdl);
+    err = tfm_sst_delete(asset_uuid);
     if (err != TFM_SST_ERR_SUCCESS) {
         TEST_FAIL("Delete should not fail");
         return;
@@ -2261,10 +1899,9 @@
 TFM_SST_NS_TEST(1029, "Thread_C")
 {
     struct tfm_sst_asset_info_t asset_info;
-    const uint16_t asset_uuid = SST_ASSET_ID_AES_KEY_192;
+    const uint32_t asset_uuid = SST_ASSET_ID_AES_KEY_192;
     enum tfm_sst_err_t err;
     struct tfm_sst_buf_t io_data;
-    uint32_t hdl;
     uint8_t read_data[READ_BUF_SIZE] = "XXXXXXXXXXXXX";
     uint8_t wrt_data_1[WRITE_BUF_SIZE] = "AAAA";
     uint8_t wrt_data_2[2] = "B";
@@ -2276,26 +1913,20 @@
         return;
     }
 
-    /* Gets asset's handle */
-    err = tfm_sst_get_handle(asset_uuid, &hdl);
-    if (err != TFM_SST_ERR_SUCCESS) {
-        TEST_FAIL("Get handle should return a valid asset handle");
-        return;
-    }
-
     /* Sets data structure */
     io_data.data = wrt_data_1;
     io_data.size = (WRITE_BUF_SIZE - 1);
     io_data.offset = 0;
 
     /* Write data in the asset */
-    err = tfm_sst_write(hdl, &io_data);
+    err = tfm_sst_write(asset_uuid, &io_data);
     if (err != TFM_SST_ERR_SUCCESS) {
         TEST_FAIL("First write should not fail");
         return;
     }
 
-    err = tfm_sst_get_info(hdl, &asset_info);
+    err = tfm_sst_get_info(asset_uuid,
+                           &asset_info);
     if (err != TFM_SST_ERR_SUCCESS) {
         TEST_FAIL("Thread_C should read the information of this asset");
         return;
@@ -2313,13 +1944,14 @@
     io_data.offset = 1;
 
     /* Write data in the asset */
-    err = tfm_sst_write(hdl, &io_data);
+    err = tfm_sst_write(asset_uuid, &io_data);
     if (err != TFM_SST_ERR_SUCCESS) {
         TEST_FAIL("Second write should not fail");
         return;
     }
 
-    err = tfm_sst_get_info(hdl, &asset_info);
+    err = tfm_sst_get_info(asset_uuid,
+                           &asset_info);
     if (err != TFM_SST_ERR_SUCCESS) {
         TEST_FAIL("Thread_C should read the information of this asset");
         return;
@@ -2336,7 +1968,7 @@
     io_data.offset = 0;
 
     /* Calls read with a non-existing address location */
-    err = tfm_sst_read(hdl, &io_data);
+    err = tfm_sst_read(asset_uuid, &io_data);
     if (err != TFM_SST_ERR_SUCCESS) {
         TEST_FAIL("Read should not fail");
         return;
@@ -2355,7 +1987,7 @@
     io_data.size = 1;
     io_data.offset = (asset_info.size_current + 1);
 
-    err = tfm_sst_write(hdl, &io_data);
+    err = tfm_sst_write(asset_uuid, &io_data);
     if (err != TFM_SST_ERR_PARAM_ERROR) {
         TEST_FAIL("Write must fail if the offset is bigger than the current"
                   " asset's size");
@@ -2371,14 +2003,13 @@
  */
 TFM_SST_NS_TEST(1030, "Thread_B")
 {
-    const uint16_t asset_uuid = SST_ASSET_ID_SHA224_HASH;
+    const uint32_t asset_uuid = SST_ASSET_ID_SHA224_HASH;
     struct tfm_sst_asset_attrs_t wrt_attrs;
     struct tfm_sst_asset_attrs_t read_attrs = {
         .attrs = 0,
         .validity.start = 0,
         .validity.end = 0 };
     enum tfm_sst_err_t err;
-    uint32_t hdl;
 
     err = tfm_sst_create(asset_uuid);
     if (err != TFM_SST_ERR_SUCCESS) {
@@ -2386,24 +2017,20 @@
         return;
     }
 
-    err = tfm_sst_get_handle(asset_uuid, &hdl);
-    if (err != TFM_SST_ERR_SUCCESS) {
-        TEST_FAIL("Get handle should not fail");
-        return;
-    }
-
     wrt_attrs.attrs = (TFM_SST_ASSET_ATTR_ENCRYPT | TFM_SST_ASSET_ATTR_DECRYPT |
                        TFM_SST_ASSET_ATTR_SIGN | TFM_SST_ASSET_ATTR_VERIFY);
     wrt_attrs.validity.start = 0;
     wrt_attrs.validity.end   = 0;
 
-    err = tfm_sst_set_attributes(hdl, &wrt_attrs);
+    err = tfm_sst_set_attributes(asset_uuid,
+                                 &wrt_attrs);
     if (err != TFM_SST_ERR_SUCCESS) {
         TEST_FAIL("Set attributes should not fail");
         return;
     }
 
-    err = tfm_sst_get_attributes(hdl, &read_attrs);
+    err = tfm_sst_get_attributes(asset_uuid,
+                                 &read_attrs);
     if (err != TFM_SST_ERR_SUCCESS) {
         TEST_FAIL("Get attributes should not fail");
         return;
diff --git a/test/suites/sst/non_secure/sst_policy_testsuite.c b/test/suites/sst/non_secure/sst_policy_testsuite.c
index 53254dc..4378317 100644
--- a/test/suites/sst/non_secure/sst_policy_testsuite.c
+++ b/test/suites/sst/non_secure/sst_policy_testsuite.c
@@ -72,11 +72,6 @@
 #define WRITE_BUF_SIZE (sizeof(WRITE_DATA_A))
 #define READ_BUF_SIZE  (sizeof(READ_DATA))
 
-/* Asset handle to be shared between threads. Used to test policy in the case
- * where an unauthorised thread has gained access to a valid handle.
- */
-static uint32_t shared_handle;
-
 /* Define test suite for SST policy tests */
 /* List of tests */
 static void tfm_sst_test_4001(struct test_result_t *ret);
@@ -130,11 +125,10 @@
  */
 TFM_SST_NS_TEST(4001, "Thread_C")
 {
-    const uint16_t asset_uuid = SST_ASSET_ID_AES_KEY_192;
+    const uint32_t asset_uuid = SST_ASSET_ID_AES_KEY_192;
     struct tfm_sst_asset_info_t asset_info;
     struct tfm_sst_buf_t buf;
     enum tfm_sst_err_t err;
-    uint32_t hdl;
     uint8_t write_data[WRITE_BUF_SIZE] = WRITE_DATA_C;
     uint8_t read_data[READ_BUF_SIZE] = READ_DATA;
 
@@ -145,20 +139,13 @@
         return;
     }
 
-    /* The get handle function requires any permission other than NONE */
-    err = tfm_sst_get_handle(asset_uuid, &hdl);
-    if (err != TFM_SST_ERR_SUCCESS) {
-        TEST_FAIL("Get handle should not fail for Thread_C");
-        return;
-    }
-
     /* Sets the tfm_sst_buf_t structure */
     buf.data = write_data;
     buf.size = WRITE_BUF_SIZE;
     buf.offset = 0;
 
     /* The write function requires WRITE permission */
-    err = tfm_sst_write(hdl, &buf);
+    err = tfm_sst_write(asset_uuid, &buf);
     if (err != TFM_SST_ERR_SUCCESS) {
         TEST_FAIL("Write should not fail for Thread_C");
         return;
@@ -170,7 +157,7 @@
     buf.offset = 0;
 
     /* The read function requires READ permission */
-    err = tfm_sst_read(hdl, &buf);
+    err = tfm_sst_read(asset_uuid, &buf);
     if (err != TFM_SST_ERR_SUCCESS) {
         TEST_FAIL("Read should not fail for Thread_C");
         return;
@@ -183,7 +170,8 @@
     }
 
     /* The get information function requires any permission other than NONE */
-    err = tfm_sst_get_info(hdl, &asset_info);
+    err = tfm_sst_get_info(asset_uuid,
+                           &asset_info);
     if (err != TFM_SST_ERR_SUCCESS) {
         TEST_FAIL("Get information should not fail for Thread_C");
         return;
@@ -212,11 +200,10 @@
  */
 TFM_SST_NS_TEST(4002, "Thread_A")
 {
-    const uint16_t asset_uuid = SST_ASSET_ID_AES_KEY_192;
+    const uint32_t asset_uuid = SST_ASSET_ID_AES_KEY_192;
     struct tfm_sst_asset_info_t asset_info;
     struct tfm_sst_buf_t buf;
     enum tfm_sst_err_t err;
-    uint32_t hdl;
     uint8_t write_data[WRITE_BUF_SIZE] = WRITE_DATA_A;
     uint8_t read_data[READ_BUF_SIZE] = READ_DATA;
 
@@ -227,13 +214,6 @@
         return;
     }
 
-    /* Get handle should succeed as Thread_A has at least one permission */
-    err = tfm_sst_get_handle(asset_uuid, &hdl);
-    if (err != TFM_SST_ERR_SUCCESS) {
-        TEST_FAIL("Get handle should not fail for Thread_A");
-        return;
-    }
-
     /* Sets the tfm_sst_buf_t structure */
     buf.data = write_data;
     buf.size = WRITE_BUF_SIZE;
@@ -241,7 +221,7 @@
     buf.offset = 1;
 
     /* Write should fail as Thread_A does not have WRITE permission */
-    err = tfm_sst_write(hdl, &buf);
+    err = tfm_sst_write(asset_uuid, &buf);
     if (err != TFM_SST_ERR_ASSET_NOT_FOUND) {
         TEST_FAIL("Write should not succeed for Thread_A");
         return;
@@ -253,7 +233,7 @@
     buf.offset = 0;
 
     /* Read should fail as Thread_A does not have READ permission */
-    err = tfm_sst_read(hdl, &buf);
+    err = tfm_sst_read(asset_uuid, &buf);
     if (err != TFM_SST_ERR_ASSET_NOT_FOUND) {
         TEST_FAIL("Read should not succeed for Thread_A");
         return;
@@ -266,7 +246,8 @@
     }
 
     /* Get information should succeed as Thread_A has at least one permission */
-    err = tfm_sst_get_info(hdl, &asset_info);
+    err = tfm_sst_get_info(asset_uuid,
+                           &asset_info);
     if (err != TFM_SST_ERR_SUCCESS) {
         TEST_FAIL("Get information should not fail for Thread_A");
         return;
@@ -284,7 +265,7 @@
     }
 
     /* Delete should fail as Thread_A does not have WRITE permission */
-    err = tfm_sst_delete(hdl);
+    err = tfm_sst_delete(asset_uuid);
     if (err != TFM_SST_ERR_ASSET_NOT_FOUND) {
         TEST_FAIL("Delete should not succeed for Thread_A");
         return;
@@ -302,11 +283,10 @@
  */
 TFM_SST_NS_TEST(4003, "Thread_B")
 {
-    const uint16_t asset_uuid = SST_ASSET_ID_AES_KEY_192;
+    const uint32_t asset_uuid = SST_ASSET_ID_AES_KEY_192;
     struct tfm_sst_asset_info_t asset_info;
     struct tfm_sst_buf_t buf;
     enum tfm_sst_err_t err;
-    uint32_t hdl;
     uint8_t write_data[WRITE_BUF_SIZE] = WRITE_DATA_B;
     uint8_t read_data[READ_BUF_SIZE] = READ_DATA;
 
@@ -317,13 +297,6 @@
         return;
     }
 
-    /* Get handle should succeed as Thread_B has at least one permission */
-    err = tfm_sst_get_handle(asset_uuid, &hdl);
-    if (err != TFM_SST_ERR_SUCCESS) {
-        TEST_FAIL("Get handle should not fail for Thread_B");
-        return;
-    }
-
     /* Sets the tfm_sst_buf_t structure */
     buf.data = write_data;
     buf.size = WRITE_BUF_SIZE;
@@ -331,7 +304,7 @@
     buf.offset = 2;
 
     /* Write should fail as Thread_B does not have WRITE permission */
-    err = tfm_sst_write(hdl, &buf);
+    err = tfm_sst_write(asset_uuid, &buf);
     if (err != TFM_SST_ERR_ASSET_NOT_FOUND) {
         TEST_FAIL("Write should not succeed for Thread_B");
         return;
@@ -343,7 +316,7 @@
     buf.offset = 0;
 
     /* Read should succeed as Thread_B has READ permission */
-    err = tfm_sst_read(hdl, &buf);
+    err = tfm_sst_read(asset_uuid, &buf);
     if (err != TFM_SST_ERR_SUCCESS) {
         TEST_FAIL("Read should not fail for Thread_B");
         return;
@@ -357,8 +330,9 @@
         return;
     }
 
-    /* Get information should succeed as Thread_B has at least one permission */
-    err = tfm_sst_get_info(hdl, &asset_info);
+    /* Get attributes should succeed as Thread_B has at least one permission */
+    err = tfm_sst_get_info(asset_uuid,
+                           &asset_info);
     if (err != TFM_SST_ERR_SUCCESS) {
         TEST_FAIL("Get information should not fail for Thread_B");
         return;
@@ -376,7 +350,7 @@
     }
 
     /* Delete should fail as Thread_B does not have WRITE permission */
-    err = tfm_sst_delete(hdl);
+    err = tfm_sst_delete(asset_uuid);
     if (err != TFM_SST_ERR_ASSET_NOT_FOUND) {
         TEST_FAIL("Delete should not succeed for Thread_B");
         return;
@@ -397,18 +371,11 @@
  */
 TFM_SST_NS_TEST(4004, "Thread_C")
 {
-    const uint16_t asset_uuid = SST_ASSET_ID_AES_KEY_192;
+    const uint32_t asset_uuid = SST_ASSET_ID_AES_KEY_192;
     enum tfm_sst_err_t err;
-    uint32_t hdl;
-
-    err = tfm_sst_get_handle(asset_uuid, &hdl);
-    if (err != TFM_SST_ERR_SUCCESS) {
-        TEST_FAIL("Get handle should not fail for Thread_C");
-        return;
-    }
 
     /* The delete function requires WRITE permission */
-    err = tfm_sst_delete(hdl);
+    err = tfm_sst_delete(asset_uuid);
     if (err != TFM_SST_ERR_SUCCESS) {
         TEST_FAIL("Delete should not fail for Thread_C");
         return;
@@ -426,7 +393,7 @@
  */
 TFM_SST_NS_TEST(4005, "Thread_B")
 {
-    const uint16_t asset_uuid = SST_ASSET_ID_SHA224_HASH;
+    const uint32_t asset_uuid = SST_ASSET_ID_SHA224_HASH;
     struct tfm_sst_asset_info_t asset_info;
     struct tfm_sst_buf_t buf;
     enum tfm_sst_err_t err;
@@ -440,23 +407,13 @@
         return;
     }
 
-    /* Get handle should succeed as Thread_B has at least one permission. Writes
-     * the handle into shared_handle so that the next test has access to a valid
-     * handle that it does not have the right to get or use.
-     */
-    err = tfm_sst_get_handle(asset_uuid, &shared_handle);
-    if (err != TFM_SST_ERR_SUCCESS) {
-        TEST_FAIL("Get handle should not fail for Thread_B");
-        return;
-    }
-
     /* Sets the tfm_sst_buf_t structure */
     buf.data = write_data;
     buf.size = WRITE_BUF_SIZE;
     buf.offset = 0;
 
     /* Write should succeed as Thread_B has WRITE permission */
-    err = tfm_sst_write(shared_handle, &buf);
+    err = tfm_sst_write(asset_uuid, &buf);
     if (err != TFM_SST_ERR_SUCCESS) {
         TEST_FAIL("Write should not fail for Thread_B");
         return;
@@ -468,7 +425,7 @@
     buf.offset = 0;
 
     /* Read should succeed as Thread_B has READ permission */
-    err = tfm_sst_read(shared_handle, &buf);
+    err = tfm_sst_read(asset_uuid, &buf);
     if (err != TFM_SST_ERR_SUCCESS) {
         TEST_FAIL("Read should not fail for Thread_B");
         return;
@@ -481,7 +438,8 @@
     }
 
     /* Get information should succeed as Thread_B has at least one permission */
-    err = tfm_sst_get_info(shared_handle, &asset_info);
+    err = tfm_sst_get_info(asset_uuid,
+                           &asset_info);
     if (err != TFM_SST_ERR_SUCCESS) {
         TEST_FAIL("Get information should not fail for Thread_B");
         return;
@@ -510,11 +468,10 @@
  */
 TFM_SST_NS_TEST(4006, "Thread_A")
 {
-    const uint16_t asset_uuid = SST_ASSET_ID_SHA224_HASH;
+    const uint32_t asset_uuid = SST_ASSET_ID_SHA224_HASH;
     struct tfm_sst_asset_info_t asset_info = { 0 };
     struct tfm_sst_buf_t buf;
     enum tfm_sst_err_t err;
-    uint32_t hdl = 0;
     uint8_t write_data[WRITE_BUF_SIZE] = WRITE_DATA_A;
     uint8_t read_data[READ_BUF_SIZE] = READ_DATA;
 
@@ -525,30 +482,17 @@
         return;
     }
 
-    /* Get handle should fail as Thread_A has no permissions */
-    err = tfm_sst_get_handle(asset_uuid, &hdl);
-    if (err != TFM_SST_ERR_ASSET_NOT_FOUND) {
-        TEST_FAIL("Get handle should not succeed for Thread_A");
-        return;
-    }
-
-    /* Checks handle has not been changed by the call to get handle */
-    if (hdl != 0) {
-        TEST_FAIL("Handle should not have changed");
-        return;
-    }
-
     /* Sets the tfm_sst_buf_t structure */
     buf.data = write_data;
     buf.size = WRITE_BUF_SIZE;
     buf.offset = 0;
 
-    /* The write function uses a valid handle, obtained by the previous test, to
-     * check that Thread_A cannot perform the write without the proper access
-     * permissions even if it has a valid handle. So the write should fail as
+    /* The write function uses a valid asset ID, obtained by the previous test,
+     * to check that Thread_A cannot perform the write without the proper access
+     * permissions even if it has a valid asset ID. So the write should fail as
      * Thread_A has no permissions.
      */
-    err = tfm_sst_write(shared_handle, &buf);
+    err = tfm_sst_write(asset_uuid, &buf);
     if (err != TFM_SST_ERR_ASSET_NOT_FOUND) {
         TEST_FAIL("Write should not succeed for Thread_A");
         return;
@@ -560,7 +504,7 @@
     buf.offset = 0;
 
     /* Read should fail as Thread_A has no permissions */
-    err = tfm_sst_read(shared_handle, &buf);
+    err = tfm_sst_read(asset_uuid, &buf);
     if (err != TFM_SST_ERR_ASSET_NOT_FOUND) {
         TEST_FAIL("Read should not succeed for Thread_A");
         return;
@@ -573,7 +517,8 @@
     }
 
     /* Get information should fail as Thread_A has no permissions */
-    err = tfm_sst_get_info(shared_handle, &asset_info);
+    err = tfm_sst_get_info(asset_uuid,
+                           &asset_info);
     if (err != TFM_SST_ERR_ASSET_NOT_FOUND) {
         TEST_FAIL("Get information should not succeed for Thread_A");
         return;
@@ -591,7 +536,7 @@
     }
 
     /* Delete should fail as Thread_A has no permissions */
-    err = tfm_sst_delete(shared_handle);
+    err = tfm_sst_delete(asset_uuid);
     if (err != TFM_SST_ERR_ASSET_NOT_FOUND) {
         TEST_FAIL("Delete should not succeed for Thread_A");
         return;
@@ -612,10 +557,11 @@
  */
 TFM_SST_NS_TEST(4007, "Thread_B")
 {
+    const uint32_t asset_uuid = SST_ASSET_ID_SHA224_HASH;
     enum tfm_sst_err_t err;
 
     /* Delete should succeed as Thread_B has WRITE permission */
-    err = tfm_sst_delete(shared_handle);
+    err = tfm_sst_delete(asset_uuid);
     if (err != TFM_SST_ERR_SUCCESS) {
         TEST_FAIL("Delete should not fail for Thread_B");
         return;
@@ -633,7 +579,7 @@
  */
 TFM_SST_NS_TEST(4008, "Thread_C")
 {
-    const uint16_t asset_uuid = SST_ASSET_ID_SHA384_HASH;
+    const uint32_t asset_uuid = SST_ASSET_ID_SHA384_HASH;
     struct tfm_sst_asset_info_t asset_info;
     struct tfm_sst_buf_t buf;
     enum tfm_sst_err_t err;
@@ -647,23 +593,13 @@
         return;
     }
 
-    /* Get handle should succeed as Thread_C has at least one permission. Writes
-     * the handle into shared_handle so that the next test has access to a valid
-     * handle that it does not have the right to get or use.
-     */
-    err = tfm_sst_get_handle(asset_uuid, &shared_handle);
-    if (err != TFM_SST_ERR_SUCCESS) {
-        TEST_FAIL("Get handle should not fail for Thread_C");
-        return;
-    }
-
     /* Sets the tfm_sst_buf_t structure */
     buf.data = write_data;
     buf.size = WRITE_BUF_SIZE;
     buf.offset = 0;
 
     /* Write should succeed as Thread_C has WRITE permission */
-    err = tfm_sst_write(shared_handle, &buf);
+    err = tfm_sst_write(asset_uuid, &buf);
     if (err != TFM_SST_ERR_SUCCESS) {
         TEST_FAIL("Write should not fail for Thread_C");
         return;
@@ -675,7 +611,7 @@
     buf.offset = 0;
 
     /* Read should fail as Thread_C does not have READ permission */
-    err = tfm_sst_read(shared_handle, &buf);
+    err = tfm_sst_read(asset_uuid, &buf);
     if (err != TFM_SST_ERR_ASSET_NOT_FOUND) {
         TEST_FAIL("Read should not succeed for Thread_C");
         return;
@@ -688,7 +624,8 @@
     }
 
     /* Get information should succeed as Thread_C has at least one permission */
-    err = tfm_sst_get_info(shared_handle, &asset_info);
+    err = tfm_sst_get_info(asset_uuid,
+                           &asset_info);
     if (err != TFM_SST_ERR_SUCCESS) {
         TEST_FAIL("Get information should not fail for Thread_C");
         return;
@@ -718,11 +655,10 @@
  */
 TFM_SST_NS_TEST(4009, "Thread_A")
 {
-    const uint16_t asset_uuid = SST_ASSET_ID_SHA384_HASH;
+    const uint32_t asset_uuid = SST_ASSET_ID_SHA384_HASH;
     struct tfm_sst_asset_info_t asset_info = { 0 };
     struct tfm_sst_buf_t buf;
     enum tfm_sst_err_t err;
-    uint32_t hdl = 0;
     uint8_t write_data[WRITE_BUF_SIZE] = WRITE_DATA_A;
     uint8_t read_data[READ_BUF_SIZE] = READ_DATA;
 
@@ -733,30 +669,17 @@
         return;
     }
 
-    /* Get handle should fail as Thread_A has no permissions */
-    err = tfm_sst_get_handle(asset_uuid, &hdl);
-    if (err != TFM_SST_ERR_ASSET_NOT_FOUND) {
-        TEST_FAIL("Get handle should not succeed for Thread_A");
-        return;
-    }
-
-    /* Checks handle has not been changed by the call to get handle */
-    if (hdl != 0) {
-        TEST_FAIL("Handle should not have changed");
-        return;
-    }
-
     /* Sets the tfm_sst_buf_t structure */
     buf.data = write_data;
     buf.size = WRITE_BUF_SIZE;
     buf.offset = 0;
 
-    /* The write function uses a valid handle, obtained by the previous test, to
-     * check that Thread_A cannot perform the write without the proper access
-     * permissions even if it has a valid handle. So the write should fail as
+    /* The write function uses a valid asset ID, obtained by the previous test,
+     * to check that Thread_A cannot perform the write without the proper access
+     * permissions even if it has a valid asset ID. So the write should fail as
      * Thread_A has no permissions.
      */
-    err = tfm_sst_write(shared_handle, &buf);
+    err = tfm_sst_write(asset_uuid, &buf);
     if (err != TFM_SST_ERR_ASSET_NOT_FOUND) {
         TEST_FAIL("Write should not succeed for Thread_A");
         return;
@@ -768,7 +691,7 @@
     buf.offset = 0;
 
     /* Read should fail as Thread_A has no permissions */
-    err = tfm_sst_read(shared_handle, &buf);
+    err = tfm_sst_read(asset_uuid, &buf);
     if (err != TFM_SST_ERR_ASSET_NOT_FOUND) {
         TEST_FAIL("Read should not succeed for Thread_A");
         return;
@@ -781,7 +704,8 @@
     }
 
     /* Get information should fail as Thread_A has no permissions */
-    err = tfm_sst_get_info(shared_handle, &asset_info);
+    err = tfm_sst_get_info(asset_uuid,
+                           &asset_info);
     if (err != TFM_SST_ERR_ASSET_NOT_FOUND) {
         TEST_FAIL("Get information should not succeed for Thread_A");
         return;
@@ -799,7 +723,7 @@
     }
 
     /* Delete should fail as Thread_A has no permissions */
-    err = tfm_sst_delete(shared_handle);
+    err = tfm_sst_delete(asset_uuid);
     if (err != TFM_SST_ERR_ASSET_NOT_FOUND) {
         TEST_FAIL("Delete should not succeed for Thread_A");
         return;
@@ -820,10 +744,11 @@
  */
 TFM_SST_NS_TEST(4010, "Thread_C")
 {
+    const uint32_t asset_uuid = SST_ASSET_ID_SHA384_HASH;
     enum tfm_sst_err_t err;
 
     /* Delete should succeed as Thread_C has WRITE permission */
-    err = tfm_sst_delete(shared_handle);
+    err = tfm_sst_delete(asset_uuid);
     if (err != TFM_SST_ERR_SUCCESS) {
         TEST_FAIL("Delete should not fail for Thread_C");
         return;
diff --git a/test/suites/sst/secure/sst_reliability_testsuite.c b/test/suites/sst/secure/sst_reliability_testsuite.c
index 836d5ea..679688a 100644
--- a/test/suites/sst/secure/sst_reliability_testsuite.c
+++ b/test/suites/sst/secure/sst_reliability_testsuite.c
@@ -61,13 +61,12 @@
 #ifdef SST_ENABLE_PARTIAL_ASSET_RW
 static void tfm_sst_test_3001(struct test_result_t *ret)
 {
-    uint32_t hdl;
     uint32_t app_id = S_APP_ID;
+    uint32_t asset_offset = 0;
+    const uint32_t asset_uuid = SST_ASSET_ID_X509_CERT_LARGE;
     struct tfm_sst_buf_t io_data;
     enum tfm_sst_err_t err;
     uint32_t itr;
-    uint32_t asset_offset = 0;
-    const uint16_t asset_uuid = SST_ASSET_ID_X509_CERT_LARGE;
     uint8_t wrt_data[WRITE_BUF_SIZE] = WRITE_DATA;
     uint8_t read_data[READ_BUF_SIZE] = READ_DATA;
 
@@ -83,12 +82,6 @@
         return;
     }
 
-    err = tfm_sst_veneer_get_handle(app_id, asset_uuid, &hdl);
-    if (err != TFM_SST_ERR_SUCCESS) {
-        TEST_FAIL("Get handle should not fail");
-        return;
-    }
-
     /* Sets write and read sizes */
     io_data.size = WRITE_BUF_SIZE-1;
 
@@ -101,7 +94,7 @@
             io_data.offset = asset_offset;
 
             /* Checks write permissions in the write function */
-            err = tfm_sst_veneer_write(app_id, hdl, &io_data);
+            err = tfm_sst_veneer_write(app_id, asset_uuid, &io_data);
             if (err != TFM_SST_ERR_SUCCESS) {
                 TEST_FAIL("Write should not fail for application S_APP_ID");
                 return;
@@ -111,7 +104,7 @@
             io_data.data = &read_data[3];
 
             /* Checks write permissions in the read function */
-            err = tfm_sst_veneer_read(app_id, hdl, &io_data);
+            err = tfm_sst_veneer_read(app_id, asset_uuid, &io_data);
             if (err != TFM_SST_ERR_SUCCESS) {
                 TEST_FAIL("Application S_APP_ID must get file handle");
                 return;
@@ -138,7 +131,7 @@
     TEST_LOG("\n");
 
     /* Checks write permissions in delete function */
-    err = tfm_sst_veneer_delete(app_id, hdl);
+    err = tfm_sst_veneer_delete(app_id, asset_uuid);
     if (err != TFM_SST_ERR_SUCCESS) {
         TEST_FAIL("Delete should not fail for application S_APP_ID");
         return;
@@ -149,12 +142,11 @@
 #else
 static void tfm_sst_test_3001(struct test_result_t *ret)
 {
-    uint32_t hdl;
     uint32_t app_id = S_APP_ID;
     struct tfm_sst_buf_t io_data;
     enum tfm_sst_err_t err;
     uint32_t itr;
-    const uint16_t asset_uuid = SST_ASSET_ID_AES_KEY_192;
+    const uint32_t asset_uuid = SST_ASSET_ID_AES_KEY_192;
     uint8_t data[BUFFER_PLUS_PADDING_SIZE] = {0};
     uint32_t i;
 
@@ -170,12 +162,6 @@
         return;
     }
 
-    err = tfm_sst_veneer_get_handle(app_id, asset_uuid, &hdl);
-    if (err != TFM_SST_ERR_SUCCESS) {
-        TEST_FAIL("Get handle should not fail");
-        return;
-    }
-
     /* Sets write and read sizes */
     io_data.size = SST_ASSET_MAX_SIZE_AES_KEY_192;
 
@@ -188,7 +174,7 @@
         io_data.offset = 0;
 
         /* Checks write permissions in the write function */
-        err = tfm_sst_veneer_write(app_id, hdl, &io_data);
+        err = tfm_sst_veneer_write(app_id, asset_uuid, &io_data);
         if (err != TFM_SST_ERR_SUCCESS) {
             TEST_FAIL("Write should not fail for application S_APP_ID");
             return;
@@ -198,7 +184,7 @@
         io_data.data = data + HALF_PADDING_SIZE;
 
         /* Checks write permissions in the read function */
-        err = tfm_sst_veneer_read(app_id, hdl, &io_data);
+        err = tfm_sst_veneer_read(app_id, asset_uuid, &io_data);
         if (err != TFM_SST_ERR_SUCCESS) {
             TEST_FAIL("Application S_APP_ID must get file handle");
             return;
@@ -227,7 +213,7 @@
     TEST_LOG("\n");
 
     /* Checks write permissions in delete function */
-    err = tfm_sst_veneer_delete(app_id, hdl);
+    err = tfm_sst_veneer_delete(app_id, asset_uuid);
     if (err != TFM_SST_ERR_SUCCESS) {
         TEST_FAIL("Delete should not fail for application S_APP_ID");
         return;
@@ -247,13 +233,12 @@
 #ifdef SST_ENABLE_PARTIAL_ASSET_RW
 static void tfm_sst_test_3002(struct test_result_t *ret)
 {
-    uint32_t hdl;
     uint32_t app_id = S_APP_ID;
+    uint32_t asset_offset = 0;
+    const uint32_t asset_uuid = SST_ASSET_ID_X509_CERT_LARGE;
     struct tfm_sst_buf_t io_data;
     enum tfm_sst_err_t err;
     uint32_t itr;
-    uint32_t asset_offset = 0;
-    const uint16_t asset_uuid = SST_ASSET_ID_X509_CERT_LARGE;
     uint8_t wrt_data[WRITE_BUF_SIZE] = WRITE_DATA;
     uint8_t read_data[READ_BUF_SIZE] = READ_DATA;
 
@@ -275,19 +260,13 @@
             return;
         }
 
-        err = tfm_sst_veneer_get_handle(app_id, asset_uuid, &hdl);
-        if (err != TFM_SST_ERR_SUCCESS) {
-            TEST_FAIL("Get handle should not fail");
-            return;
-        }
-
         do {
             /* Sets data structure */
             io_data.data = wrt_data;
             io_data.offset = asset_offset;
 
             /* Checks write permissions in the write function */
-            err = tfm_sst_veneer_write(app_id, hdl, &io_data);
+            err = tfm_sst_veneer_write(app_id, asset_uuid, &io_data);
             if (err != TFM_SST_ERR_SUCCESS) {
                 TEST_FAIL("Write should not fail for application S_APP_ID");
                 return;
@@ -297,7 +276,7 @@
             io_data.data = &read_data[3];
 
             /* Checks write permissions in the read function */
-            err = tfm_sst_veneer_read(app_id, hdl, &io_data);
+            err = tfm_sst_veneer_read(app_id, asset_uuid, &io_data);
             if (err != TFM_SST_ERR_SUCCESS) {
                 TEST_FAIL("Application S_APP_ID must get file handle");
                 return;
@@ -322,7 +301,7 @@
         asset_offset = 0;
 
         /* Checks write permissions in delete function */
-        err = tfm_sst_veneer_delete(app_id, hdl);
+        err = tfm_sst_veneer_delete(app_id, asset_uuid);
         if (err != TFM_SST_ERR_SUCCESS) {
             TEST_FAIL("Delete should not fail for application S_APP_ID");
             return;
@@ -337,12 +316,11 @@
 #else
 static void tfm_sst_test_3002(struct test_result_t *ret)
 {
-    uint32_t hdl;
     uint32_t app_id = S_APP_ID;
     struct tfm_sst_buf_t io_data;
     enum tfm_sst_err_t err;
     uint32_t itr;
-    const uint16_t asset_uuid = SST_ASSET_ID_AES_KEY_192;
+    const uint32_t asset_uuid = SST_ASSET_ID_AES_KEY_192;
     uint8_t data[BUFFER_PLUS_PADDING_SIZE] = {0};
     uint32_t i;
 
@@ -364,19 +342,13 @@
             return;
         }
 
-        err = tfm_sst_veneer_get_handle(app_id, asset_uuid, &hdl);
-        if (err != TFM_SST_ERR_SUCCESS) {
-            TEST_FAIL("Get handle should not fail");
-            return;
-        }
-
         memset(data, 0, BUFFER_PLUS_PADDING_SIZE);
         /* Sets data structure */
         io_data.data = data;
         io_data.offset = 0;
 
         /* Checks write permissions in the write function */
-        err = tfm_sst_veneer_write(app_id, hdl, &io_data);
+        err = tfm_sst_veneer_write(app_id, asset_uuid, &io_data);
         if (err != TFM_SST_ERR_SUCCESS) {
             TEST_FAIL("Write should not fail for application S_APP_ID");
             return;
@@ -386,7 +358,7 @@
         io_data.data = data + HALF_PADDING_SIZE;
 
         /* Checks write permissions in the read function */
-        err = tfm_sst_veneer_read(app_id, hdl, &io_data);
+        err = tfm_sst_veneer_read(app_id, asset_uuid, &io_data);
         if (err != TFM_SST_ERR_SUCCESS) {
             TEST_FAIL("Application S_APP_ID must get file handle");
             return;
@@ -412,7 +384,7 @@
         }
 
         /* Checks write permissions in delete function */
-        err = tfm_sst_veneer_delete(app_id, hdl);
+        err = tfm_sst_veneer_delete(app_id, asset_uuid);
         if (err != TFM_SST_ERR_SUCCESS) {
             TEST_FAIL("Delete should not fail for application S_APP_ID");
             return;
diff --git a/test/suites/sst/secure/sst_sec_interface_testsuite.c b/test/suites/sst/secure/sst_sec_interface_testsuite.c
index 0222a70..91d6ce0 100644
--- a/test/suites/sst/secure/sst_sec_interface_testsuite.c
+++ b/test/suites/sst/secure/sst_sec_interface_testsuite.c
@@ -69,9 +69,9 @@
     {&tfm_sst_test_2001, "TFM_SST_TEST_2001",
      "Create interface", {0} },
     {&tfm_sst_test_2002, "TFM_SST_TEST_2002",
-     "Get handle interface", {0} },
+     "Get handle interface (DEPRECATED)", {0} },
     {&tfm_sst_test_2003, "TFM_SST_TEST_2003",
-     "Get handle with null handle pointer", {0} },
+     "Get handle with null handle pointer (DEPRECATED)", {0} },
     {&tfm_sst_test_2004, "TFM_SST_TEST_2004",
      "Get information interface", {0} },
     {&tfm_sst_test_2005, "TFM_SST_TEST_2005",
@@ -133,7 +133,7 @@
 static void tfm_sst_test_2001(struct test_result_t *ret)
 {
     const uint32_t app_id = S_APP_ID;
-    const uint16_t asset_uuid = SST_ASSET_ID_AES_KEY_192;
+    const uint32_t asset_uuid = SST_ASSET_ID_AES_KEY_192;
     enum tfm_sst_err_t err;
 
     /* Prepares test context */
@@ -179,99 +179,38 @@
  * - Valid asset ID and created file
  * - Invalid app ID
  * - Invalid asset ID
+ *
+ * \note This test is deprecated and will be removed in next iterations.
  */
 static void tfm_sst_test_2002(struct test_result_t *ret)
 {
-    const uint32_t app_id = S_APP_ID;
-    const uint16_t asset_uuid = SST_ASSET_ID_AES_KEY_192;
-    enum tfm_sst_err_t err;
-    uint32_t hdl;
-
-    /* Prepares test context */
-    if (prepare_test_ctx(ret) != 0) {
-        TEST_FAIL("Prepare test context should not fail");
-        return;
-    }
-
-    /* Calls get handle before create the asset */
-    err = tfm_sst_veneer_get_handle(app_id, asset_uuid, &hdl);
-    if (err == TFM_SST_ERR_SUCCESS) {
-        TEST_FAIL("Get handle should fail as the file is not created");
-        return;
-    }
-
-    /* Creates asset to get a valid handle */
-    err = tfm_sst_veneer_create(app_id, asset_uuid);
-    if (err != TFM_SST_ERR_SUCCESS) {
-        TEST_FAIL("Create should not fail for application S_APP_ID");
-        return;
-    }
-
-    /* Resets handle before read the new one */
-    hdl = 0;
-
-    /* Gets asset's handle */
-    err = tfm_sst_veneer_get_handle(app_id, asset_uuid, &hdl);
-    if (err != TFM_SST_ERR_SUCCESS) {
-        TEST_FAIL("Get handle should return a valid asset handle");
-        return;
-    }
-
-    /* Calls get handle with invalid app ID */
-    err = tfm_sst_veneer_get_handle(INVALID_APP_ID, asset_uuid, &hdl);
-    if (err == TFM_SST_ERR_SUCCESS) {
-        TEST_FAIL("Get handle should fail as application ID is invalid");
-        return;
-    }
-
-    /* Calls get handle with invalid asset ID */
-    err = tfm_sst_veneer_get_handle(app_id, INVALID_ASSET_ID, &hdl);
-    if (err == TFM_SST_ERR_SUCCESS) {
-        TEST_FAIL("Get handle should fail as asset handle is invalid");
-        return;
-    }
-
+    TEST_LOG("This test is DEPRECATED and the test execution was SKIPPED\r\n");
     ret->val = TEST_PASSED;
 }
 
 /**
  * \brief Tests the get handle function with an invalid handle pointer.
+ *
+ * \note This test is deprecated and will be removed in next iterations.
  */
 static void tfm_sst_test_2003(struct test_result_t *ret)
 {
-    const uint32_t app_id = S_APP_ID;
-    const uint16_t asset_uuid = SST_ASSET_ID_AES_KEY_192;
-    enum tfm_sst_err_t err;
-
-    /* Prepares test context */
-    if (prepare_test_ctx(ret) != 0) {
-        TEST_FAIL("Prepare test context should not fail");
-        return;
-    }
-
-    /* Calls get handle with invalid handle pointer */
-    err = tfm_sst_veneer_get_handle(app_id, asset_uuid, NULL);
-    if (err == TFM_SST_ERR_SUCCESS) {
-        TEST_FAIL("Get handle should fail as asset handler pointer is invalid");
-        return;
-    }
-
+    TEST_LOG("This test is DEPRECATED and the test execution was SKIPPED\r\n");
     ret->val = TEST_PASSED;
 }
 
 /**
  * \brief Tests get attributes function against:
- * - Valid application ID, asset handle and attributes struct pointer
+ * - Valid application ID and attributes struct pointer
  * - Invalid application ID
- * - Invalid asset handle
+ * - Invalid asset ID
  */
 static void tfm_sst_test_2004(struct test_result_t *ret)
 {
     const uint32_t app_id = S_APP_ID;
-    const uint16_t asset_uuid = SST_ASSET_ID_AES_KEY_192;
+    const uint32_t asset_uuid = SST_ASSET_ID_AES_KEY_192;
     struct tfm_sst_asset_info_t asset_info;
     enum tfm_sst_err_t err;
-    uint32_t hdl;
 
     /* Prepares test context */
     if (prepare_test_ctx(ret) != 0) {
@@ -279,24 +218,17 @@
         return;
     }
 
-    /* Creates asset to get a valid handle */
+    /* Creates asset */
     err = tfm_sst_veneer_create(app_id, asset_uuid);
     if (err != TFM_SST_ERR_SUCCESS) {
         TEST_FAIL("Create should not fail for application S_APP_ID");
         return;
     }
 
-    /* Gets asset's handle */
-    err = tfm_sst_veneer_get_handle(app_id, asset_uuid, &hdl);
-    if (err != TFM_SST_ERR_SUCCESS) {
-        TEST_FAIL("Get handle should return a valid asset handle");
-        return;
-    }
-
-    /* Calls get_attributes with valid application ID, asset handle and
+    /* Calls get_attributes with valid application ID and
      * attributes struct pointer
      */
-    err = tfm_sst_veneer_get_info(app_id, hdl, &asset_info);
+    err = tfm_sst_veneer_get_info(app_id, asset_uuid, &asset_info);
     if (err != TFM_SST_ERR_SUCCESS) {
         TEST_FAIL("Application S_APP_ID should be able to read the "
                   "information of this asset");
@@ -315,18 +247,18 @@
     }
 
     /* Calls get_attributes with invalid application ID */
-    err = tfm_sst_veneer_get_info(INVALID_APP_ID, hdl, &asset_info);
+    err = tfm_sst_veneer_get_info(INVALID_APP_ID, asset_uuid, &asset_info);
     if (err == TFM_SST_ERR_SUCCESS) {
         TEST_FAIL("Get information function should fail for an invalid "
                   "application ID");
         return;
     }
 
-    /* Calls get_attributes with invalid asset handle */
-    err = tfm_sst_veneer_get_info(app_id, 0, &asset_info);
+    /* Calls get information with invalid asset ID */
+    err = tfm_sst_veneer_get_info(app_id, INVALID_ASSET_ID, &asset_info);
     if (err == TFM_SST_ERR_SUCCESS) {
-        TEST_FAIL("Get information function should fail for an invalid "
-                  "asset handle");
+        TEST_FAIL("Get attributes function should fail for an invalid "
+                  "asset ID");
         return;
     }
 
@@ -340,9 +272,8 @@
 static void tfm_sst_test_2005(struct test_result_t *ret)
 {
     const uint32_t app_id = S_APP_ID;
-    const uint16_t asset_uuid = SST_ASSET_ID_AES_KEY_192;
+    const uint32_t asset_uuid = SST_ASSET_ID_AES_KEY_192;
     enum tfm_sst_err_t err;
-    uint32_t hdl;
 
     /* Prepares test context */
     if (prepare_test_ctx(ret) != 0) {
@@ -350,22 +281,15 @@
         return;
     }
 
-    /* Creates asset to get a valid handle */
+    /* Creates asset */
     err = tfm_sst_veneer_create(app_id, asset_uuid);
     if (err != TFM_SST_ERR_SUCCESS) {
         TEST_FAIL("Create should not fail for application S_APP_ID");
         return;
     }
 
-    /* Gets asset's handle */
-    err = tfm_sst_veneer_get_handle(app_id, asset_uuid, &hdl);
-    if (err != TFM_SST_ERR_SUCCESS) {
-        TEST_FAIL("Get handle should return a valid asset handle");
-        return;
-    }
-
-    /* Calls get_attributes with invalid struct attributes pointer */
-    err = tfm_sst_veneer_get_info(app_id, hdl, NULL);
+    /* Calls get information with invalid struct attributes pointer */
+    err = tfm_sst_veneer_get_info(app_id, asset_uuid, NULL);
     if (err != TFM_SST_ERR_PARAM_ERROR) {
         TEST_FAIL("Get information function should fail for an invalid "
                   "struct info pointer");
@@ -377,18 +301,17 @@
 
 /**
  * \brief Tests write function against:
- * - Valid application ID, asset handle and data pointer
+ * - Valid application ID and data pointer
  * - Invalid application ID
- * - Invalid asset handle
+ * - Invalid asset ID
  */
 static void tfm_sst_test_2006(struct test_result_t *ret)
 {
     const uint32_t app_id = S_APP_ID;
-    const uint16_t asset_uuid = SST_ASSET_ID_AES_KEY_192;
+    const uint32_t asset_uuid = SST_ASSET_ID_AES_KEY_192;
     struct tfm_sst_asset_info_t asset_info;
     enum tfm_sst_err_t err;
     struct tfm_sst_buf_t io_data;
-    uint32_t hdl;
     uint8_t wrt_data[WRITE_BUF_SIZE] = "DATA";
 
     /* Prepares test context */
@@ -397,36 +320,29 @@
         return;
     }
 
-    /* Creates asset to get a valid handle */
+    /* Creates asset */
     err = tfm_sst_veneer_create(app_id, asset_uuid);
     if (err != TFM_SST_ERR_SUCCESS) {
         TEST_FAIL("Create should not fail for application S_APP_ID");
         return;
     }
 
-    /* Gets asset's handle */
-    err = tfm_sst_veneer_get_handle(app_id, asset_uuid, &hdl);
-    if (err != TFM_SST_ERR_SUCCESS) {
-        TEST_FAIL("Get handle should return a valid asset handle");
-        return;
-    }
-
     /* Sets data structure */
     io_data.data = wrt_data;
     io_data.size = WRITE_BUF_SIZE;
     io_data.offset = 0;
 
     /* Writes data in the asset */
-    err = tfm_sst_veneer_write(app_id, hdl, &io_data);
+    err = tfm_sst_veneer_write(app_id, asset_uuid, &io_data);
     if (err != TFM_SST_ERR_SUCCESS) {
         TEST_FAIL("Write should work correctly");
         return;
     }
 
-    /* Calls get_attributes with valid application ID, asset handle and
+    /* Calls get information with valid application ID and
      * attributes struct pointer
      */
-    err = tfm_sst_veneer_get_info(app_id, hdl, &asset_info);
+    err = tfm_sst_veneer_get_info(app_id, asset_uuid, &asset_info);
     if (err != TFM_SST_ERR_SUCCESS) {
         TEST_FAIL("Application S_APP_ID should be able to read the "
                   "information of this asset");
@@ -440,16 +356,16 @@
     }
 
     /* Calls write function with invalid application ID */
-    err = tfm_sst_veneer_write(INVALID_APP_ID, hdl, &io_data);
+    err = tfm_sst_veneer_write(INVALID_APP_ID, asset_uuid, &io_data);
     if (err != TFM_SST_ERR_ASSET_NOT_FOUND) {
         TEST_FAIL("Invalid application ID should not write in the file");
         return;
     }
 
-    /* Calls write function with invalid asset handle */
-    err = tfm_sst_veneer_write(app_id, 0, &io_data);
+    /* Calls write function with invalid asset ID */
+    err = tfm_sst_veneer_write(app_id, INVALID_ASSET_ID, &io_data);
     if (err != TFM_SST_ERR_ASSET_NOT_FOUND) {
-        TEST_FAIL("Invalid asset handle should not write in the file");
+        TEST_FAIL("Invalid asset ID should not write in the file");
         return;
     }
 
@@ -464,10 +380,9 @@
 static void tfm_sst_test_2007(struct test_result_t *ret)
 {
     const uint32_t app_id = S_APP_ID;
-    const uint16_t asset_uuid = SST_ASSET_ID_AES_KEY_192;
+    const uint32_t asset_uuid = SST_ASSET_ID_AES_KEY_192;
     enum tfm_sst_err_t err;
     struct tfm_sst_buf_t io_data;
-    uint32_t hdl;
 
     /* Prepares test context */
     if (prepare_test_ctx(ret) != 0) {
@@ -475,22 +390,15 @@
         return;
     }
 
-    /* Creates asset to get a valid handle */
+    /* Creates asset */
     err = tfm_sst_veneer_create(app_id, asset_uuid);
     if (err != TFM_SST_ERR_SUCCESS) {
         TEST_FAIL("Create should not fail for application S_APP_ID");
         return;
     }
 
-    /* Gets asset's handle */
-    err = tfm_sst_veneer_get_handle(app_id, asset_uuid, &hdl);
-    if (err != TFM_SST_ERR_SUCCESS) {
-        TEST_FAIL("Get handle should return a valid asset handle");
-        return;
-    }
-
     /* Calls write function with tfm_sst_buf_t pointer set to NULL */
-    err = tfm_sst_veneer_write(app_id, hdl, NULL);
+    err = tfm_sst_veneer_write(app_id, asset_uuid, NULL);
     if (err != TFM_SST_ERR_ASSET_NOT_FOUND) {
         TEST_FAIL("Write should fail with tfm_sst_buf_t pointer set to NULL");
         return;
@@ -502,7 +410,7 @@
     io_data.offset = 0;
 
     /* Calls write function with data pointer set to NULL */
-    err = tfm_sst_veneer_write(app_id, hdl, &io_data);
+    err = tfm_sst_veneer_write(app_id, asset_uuid, &io_data);
     if (err != TFM_SST_ERR_ASSET_NOT_FOUND) {
         TEST_FAIL("Write should fail with data pointer set to NULL");
         return;
@@ -518,10 +426,9 @@
 static void tfm_sst_test_2008(struct test_result_t *ret)
 {
     const uint32_t app_id = S_APP_ID;
-    const uint16_t asset_uuid = SST_ASSET_ID_AES_KEY_192;
+    const uint32_t asset_uuid = SST_ASSET_ID_AES_KEY_192;
     enum tfm_sst_err_t err;
     struct tfm_sst_buf_t io_data;
-    uint32_t hdl;
     uint8_t wrt_data[BUFFER_PLUS_PADDING_SIZE] = {0};
 
     /* Prepares test context */
@@ -530,26 +437,19 @@
         return;
     }
 
-    /* Creates asset to get a valid handle */
+    /* Creates asset */
     err = tfm_sst_veneer_create(app_id, asset_uuid);
     if (err != TFM_SST_ERR_SUCCESS) {
         TEST_FAIL("Create should not fail for application S_APP_ID");
         return;
     }
 
-    /* Gets asset's handle */
-    err = tfm_sst_veneer_get_handle(app_id, asset_uuid, &hdl);
-    if (err != TFM_SST_ERR_SUCCESS) {
-        TEST_FAIL("Get handle should return a valid asset handle");
-        return;
-    }
-
     /* Attempts to write beyond end of asset starting from a valid offset */
     io_data.data = wrt_data;
     io_data.size = BUFFER_SIZE_PLUS_ONE;
     io_data.offset = 0;
 
-    err = tfm_sst_veneer_write(app_id, hdl, &io_data);
+    err = tfm_sst_veneer_write(app_id, asset_uuid, &io_data);
     if (err == TFM_SST_ERR_SUCCESS) {
         TEST_FAIL("Writing beyond end of asset should not succeed");
         return;
@@ -559,7 +459,7 @@
     io_data.size = 1;
     io_data.offset = SST_ASSET_MAX_SIZE_AES_KEY_192;
 
-    err = tfm_sst_veneer_write(app_id, hdl, &io_data);
+    err = tfm_sst_veneer_write(app_id, asset_uuid, &io_data);
     if (err == TFM_SST_ERR_SUCCESS) {
         TEST_FAIL("Write to an offset beyond end of asset should not succeed");
         return;
@@ -570,17 +470,16 @@
 
 /**
  * \brief Tests read function against:
- * - Valid application ID, asset handle and data pointer
+ * - Valid application ID and data pointer
  * - Invalid application ID
- * - Invalid asset handle
+ * - Invalid asset ID
  */
 static void tfm_sst_test_2009(struct test_result_t *ret)
 {
     const uint32_t app_id = S_APP_ID;
-    const uint16_t asset_uuid = SST_ASSET_ID_AES_KEY_192;
+    const uint32_t asset_uuid = SST_ASSET_ID_AES_KEY_192;
     enum tfm_sst_err_t err;
     struct tfm_sst_buf_t io_data;
-    uint32_t hdl;
     uint8_t wrt_data[WRITE_BUF_SIZE] = "DATA";
     uint8_t read_data[READ_BUF_SIZE] = "XXXXXXXXXXXXX";
 
@@ -590,27 +489,20 @@
         return;
     }
 
-    /* Creates asset to get a valid handle */
+    /* Creates asset */
     err = tfm_sst_veneer_create(app_id, asset_uuid);
     if (err != TFM_SST_ERR_SUCCESS) {
         TEST_FAIL("Create should not fail for application S_APP_ID");
         return;
     }
 
-    /* Gets asset's handle */
-    err = tfm_sst_veneer_get_handle(app_id, asset_uuid, &hdl);
-    if (err != TFM_SST_ERR_SUCCESS) {
-        TEST_FAIL("Get handle should return a valid asset handle");
-        return;
-    }
-
     /* Sets data structure */
     io_data.data = wrt_data;
     io_data.size = WRITE_BUF_SIZE;
     io_data.offset = 0;
 
     /* Writes data in the asset */
-    err = tfm_sst_veneer_write(app_id, hdl, &io_data);
+    err = tfm_sst_veneer_write(app_id, asset_uuid, &io_data);
     if (err != TFM_SST_ERR_SUCCESS) {
         TEST_FAIL("Write should work correctly");
         return;
@@ -622,7 +514,7 @@
     io_data.offset = 0;
 
     /* Read data from the asset */
-    err = tfm_sst_veneer_read(app_id, hdl, &io_data);
+    err = tfm_sst_veneer_read(app_id, asset_uuid, &io_data);
     if (err != TFM_SST_ERR_SUCCESS) {
         TEST_FAIL("Read should work correctly");
         return;
@@ -645,18 +537,18 @@
     }
 
     /* Calls read with invalid application ID */
-    err = tfm_sst_veneer_read(INVALID_APP_ID, hdl, &io_data);
+    err = tfm_sst_veneer_read(INVALID_APP_ID, asset_uuid, &io_data);
     if (err != TFM_SST_ERR_ASSET_NOT_FOUND) {
         TEST_FAIL("Read should fail when read is called with an invalid "
                   "application ID");
         return;
     }
 
-    /* Calls read with invalid asset handle */
-    err = tfm_sst_veneer_read(app_id, 0, &io_data);
+    /* Calls read with invalid asset ID */
+    err = tfm_sst_veneer_read(app_id, INVALID_ASSET_ID, &io_data);
     if (err != TFM_SST_ERR_ASSET_NOT_FOUND) {
         TEST_FAIL("Read should fail when read is called with an invalid "
-                  "asset handle");
+                  "asset ID");
         return;
     }
 
@@ -671,10 +563,9 @@
 static void tfm_sst_test_2010(struct test_result_t *ret)
 {
     const uint32_t app_id = S_APP_ID;
-    const uint16_t asset_uuid = SST_ASSET_ID_AES_KEY_192;
+    const uint32_t asset_uuid = SST_ASSET_ID_AES_KEY_192;
     enum tfm_sst_err_t err;
     struct tfm_sst_buf_t io_data;
-    uint32_t hdl;
 
     /* Prepares test context */
     if (prepare_test_ctx(ret) != 0) {
@@ -682,22 +573,15 @@
         return;
     }
 
-    /* Creates asset to get a valid handle */
+    /* Creates asset */
     err = tfm_sst_veneer_create(app_id, asset_uuid);
     if (err != TFM_SST_ERR_SUCCESS) {
         TEST_FAIL("Create should not fail for application S_APP_ID");
         return;
     }
 
-    /* Gets asset's handle */
-    err = tfm_sst_veneer_get_handle(app_id, asset_uuid, &hdl);
-    if (err != TFM_SST_ERR_SUCCESS) {
-        TEST_FAIL("Get handle should return a valid asset handle");
-        return;
-    }
-
     /* Calls read with invalid tfm_sst_buf_t pointer */
-    err = tfm_sst_veneer_read(app_id, hdl, NULL);
+    err = tfm_sst_veneer_read(app_id, asset_uuid, NULL);
     if (err != TFM_SST_ERR_ASSET_NOT_FOUND) {
         TEST_FAIL("Read with tfm_sst_buf_t pointer set to NULL should fail");
         return;
@@ -708,7 +592,7 @@
     io_data.offset = 0;
 
     /* Calls read with invalid data pointer */
-    err = tfm_sst_veneer_read(app_id, hdl, &io_data);
+    err = tfm_sst_veneer_read(app_id, asset_uuid, &io_data);
     if (err != TFM_SST_ERR_ASSET_NOT_FOUND) {
         TEST_FAIL("Read with read data pointer set to NULL should fail");
         return;
@@ -724,11 +608,10 @@
 static void tfm_sst_test_2011(struct test_result_t *ret)
 {
     const uint32_t app_id = S_APP_ID;
-    const uint16_t asset_uuid = SST_ASSET_ID_AES_KEY_192;
+    const uint32_t asset_uuid = SST_ASSET_ID_AES_KEY_192;
     enum tfm_sst_err_t err;
     struct tfm_sst_buf_t io_data;
     struct tfm_sst_asset_info_t asset_info;
-    uint32_t hdl;
     uint8_t data[BUFFER_SIZE_PLUS_ONE] = {0};
 
     /* Prepares test context */
@@ -737,34 +620,27 @@
         return;
     }
 
-    /* Creates asset to get a valid handle */
+    /* Creates asset */
     err = tfm_sst_veneer_create(app_id, asset_uuid);
     if (err != TFM_SST_ERR_SUCCESS) {
         TEST_FAIL("Create should not fail for application S_APP_ID");
         return;
     }
 
-    /* Gets asset's handle */
-    err = tfm_sst_veneer_get_handle(app_id, asset_uuid, &hdl);
-    if (err != TFM_SST_ERR_SUCCESS) {
-        TEST_FAIL("Get handle should return a valid asset handle");
-        return;
-    }
-
     /* Sets data structure */
     io_data.data = data;
     io_data.size = SST_ASSET_MAX_SIZE_AES_KEY_192;
     io_data.offset = 0;
 
     /* Writes data in the asset */
-    err = tfm_sst_veneer_write(app_id, hdl, &io_data);
+    err = tfm_sst_veneer_write(app_id, asset_uuid, &io_data);
     if (err != TFM_SST_ERR_SUCCESS) {
         TEST_FAIL("Write should work correctly");
         return;
     }
 
-    /* Gets current asset attributes */
-    err = tfm_sst_veneer_get_info(app_id, hdl, &asset_info);
+    /* Gets current asset information */
+    err = tfm_sst_veneer_get_info(app_id, asset_uuid, &asset_info);
     if (err != TFM_SST_ERR_SUCCESS) {
         TEST_FAIL("Application S_APP_ID should be able to read the "
                   "information of this asset");
@@ -782,7 +658,7 @@
     io_data.size = BUFFER_SIZE_PLUS_ONE;
     io_data.offset = 0;
 
-    err = tfm_sst_veneer_read(app_id, hdl, &io_data);
+    err = tfm_sst_veneer_read(app_id, asset_uuid, &io_data);
     if (err == TFM_SST_ERR_SUCCESS) {
         TEST_FAIL("Read beyond current size should not succeed");
         return;
@@ -792,7 +668,7 @@
     io_data.size = 1;
     io_data.offset = asset_info.size_current;
 
-    err = tfm_sst_veneer_read(app_id, hdl, &io_data);
+    err = tfm_sst_veneer_read(app_id, asset_uuid, &io_data);
     if (err == TFM_SST_ERR_SUCCESS) {
         TEST_FAIL("Read from an offset beyond current size should not succeed");
         return;
@@ -803,9 +679,9 @@
 
 /**
  * \brief Tests delete function against:
- * - Valid application ID and asset handle
+ * - Valid application ID
  * - Invalid application ID
- * - Invalid asset handle
+ * - Invalid asset ID
  * - Remove first asset in the data block and check if
  *   next asset's data is compacted correctly.
  */
@@ -813,12 +689,10 @@
 {
     const uint32_t app_id_1 = S_APP_ID;
     const uint32_t app_id_2 = S_APP_ID;
-    const uint16_t asset_uuid_1 = SST_ASSET_ID_SHA224_HASH;
-    const uint16_t asset_uuid_2 = SST_ASSET_ID_SHA384_HASH;
+    const uint32_t asset_uuid_1 =  SST_ASSET_ID_SHA224_HASH;
+    const uint32_t asset_uuid_2 = SST_ASSET_ID_SHA384_HASH;
     struct tfm_sst_buf_t io_data;
     enum tfm_sst_err_t err;
-    uint32_t hdl_1;
-    uint32_t hdl_2;
     uint8_t read_data[BUF_SIZE_SHA224] = READ_DATA_SHA224;
     uint8_t wrt_data[BUF_SIZE_SHA224] = WRITE_DATA_SHA224_1;
 
@@ -828,22 +702,15 @@
         return;
     }
 
-    /* Creates assset to get a valid handle */
+    /* Creates assset */
     err = tfm_sst_veneer_create(app_id_1, asset_uuid_1);
     if (err != TFM_SST_ERR_SUCCESS) {
         TEST_FAIL("Create should not fail for application S_APP_ID");
         return;
     }
 
-    /* Gets asset's handle */
-    err = tfm_sst_veneer_get_handle(app_id_1, asset_uuid_1, &hdl_1);
-    if (err != TFM_SST_ERR_SUCCESS) {
-        TEST_FAIL("Get handle should return a valid asset handle");
-        return;
-    }
-
     /* Calls delete asset with invalid application ID */
-    err = tfm_sst_veneer_delete(INVALID_APP_ID, hdl_1);
+    err = tfm_sst_veneer_delete(INVALID_APP_ID, asset_uuid_1);
     if (err != TFM_SST_ERR_ASSET_NOT_FOUND) {
         TEST_FAIL("The delete action should fail if an invalid application "
                   "ID is provided");
@@ -851,23 +718,23 @@
     }
 
     /* Calls delete asset */
-    err = tfm_sst_veneer_delete(app_id_1, hdl_1);
+    err = tfm_sst_veneer_delete(app_id_1, asset_uuid_1);
     if (err != TFM_SST_ERR_SUCCESS) {
         TEST_FAIL("The delete action should work correctly");
         return;
     }
 
-    /* Calls delete with a deleted asset handle */
-    err = tfm_sst_veneer_delete(app_id_1, hdl_1);
+    /* Calls delete with a deleted asset ID */
+    err = tfm_sst_veneer_delete(app_id_1, asset_uuid_1);
     if (err != TFM_SST_ERR_ASSET_NOT_FOUND) {
-        TEST_FAIL("The delete action should fail as handle is not valid");
+        TEST_FAIL("The delete action should fail as ID is not valid");
         return;
     }
 
-    /* Calls delete asset with invalid asset handle */
-    err = tfm_sst_veneer_delete(app_id_1, 0);
+    /* Calls delete asset with invalid asset ID */
+    err = tfm_sst_veneer_delete(app_id_1, INVALID_ASSET_ID);
     if (err != TFM_SST_ERR_ASSET_NOT_FOUND) {
-        TEST_FAIL("The delete action should fail if an invalid asset handle "
+        TEST_FAIL("The delete action should fail if an invalid asset ID "
                   "is provided");
         return;
     }
@@ -888,34 +755,20 @@
         return;
     }
 
-    /* Gets asset 2 handle */
-    err = tfm_sst_veneer_get_handle(app_id_2, asset_uuid_2, &hdl_2);
-    if (err != TFM_SST_ERR_SUCCESS) {
-        TEST_FAIL("Get handle should return a valid asset handle");
-        return;
-    }
-
     /* Creates asset 1 to locate it after the asset 2 in the data block */
-    err = tfm_sst_veneer_create(app_id_1, asset_uuid_1);
+    err = tfm_sst_veneer_create(app_id_1, SST_ASSET_ID_SHA224_HASH);
     if (err != TFM_SST_ERR_SUCCESS) {
         TEST_FAIL("Create should not fail for application S_APP_ID");
         return;
     }
 
-    /* Gets asset 1 handle */
-    err = tfm_sst_veneer_get_handle(app_id_1, asset_uuid_1, &hdl_1);
-    if (err != TFM_SST_ERR_SUCCESS) {
-        TEST_FAIL("Get handle should return a valid asset handle");
-        return;
-    }
-
     /* Sets data structure */
     io_data.data = wrt_data;
     io_data.size = SST_ASSET_MAX_SIZE_SHA224_HASH;
     io_data.offset = 0;
 
     /* Writes data in asset 1 */
-    err = tfm_sst_veneer_write(app_id_1, hdl_1, &io_data);
+    err = tfm_sst_veneer_write(app_id_1, asset_uuid_1, &io_data);
     if (err != TFM_SST_ERR_SUCCESS) {
         TEST_FAIL("Write data should work for application S_APP_ID");
         return;
@@ -924,7 +777,7 @@
     /* Deletes asset 2. It means that after the delete call, asset 1 should be
      * at the beginning of the block.
      */
-    err = tfm_sst_veneer_delete(app_id_2, hdl_2);
+    err = tfm_sst_veneer_delete(app_id_2, asset_uuid_2);
     if (err != TFM_SST_ERR_SUCCESS) {
         TEST_FAIL("The delete action should work correctly");
         return;
@@ -940,7 +793,7 @@
     io_data.offset = 0;
 
     /* Read back the asset 1 */
-    err = tfm_sst_veneer_read(app_id_1, hdl_1, &io_data);
+    err = tfm_sst_veneer_read(app_id_1, asset_uuid_1, &io_data);
     if (err != TFM_SST_ERR_SUCCESS) {
         TEST_FAIL("Incorrect number of bytes read back");
         return;
@@ -960,10 +813,9 @@
 static void tfm_sst_test_2013(struct test_result_t *ret)
 {
     const uint32_t app_id = S_APP_ID;
-    const uint16_t asset_uuid = SST_ASSET_ID_AES_KEY_192;
+    const uint32_t asset_uuid = SST_ASSET_ID_AES_KEY_192;
     enum tfm_sst_err_t err;
     struct tfm_sst_buf_t io_data;
-    uint32_t hdl;
     uint32_t i;
     uint8_t read_data[READ_BUF_SIZE] = "XXXXXXXXXXXXX";
     uint8_t wrt_data[WRITE_BUF_SIZE] = "DATA";
@@ -974,27 +826,20 @@
         return;
     }
 
-    /* Creates asset to get a valid handle */
+    /* Creates asset */
     err = tfm_sst_veneer_create(app_id, asset_uuid);
     if (err != TFM_SST_ERR_SUCCESS) {
         TEST_FAIL("Create should not fail for application S_APP_ID");
         return;
     }
 
-    /* Gets asset's handle */
-    err = tfm_sst_veneer_get_handle(app_id, asset_uuid, &hdl);
-    if (err != TFM_SST_ERR_SUCCESS) {
-        TEST_FAIL("Get handle should return a valid asset handle");
-        return;
-    }
-
     /* Sets data structure */
     io_data.data = wrt_data;
     io_data.size = WRITE_BUF_SIZE;
     io_data.offset = 0;
 
     /* Writes data in the asset */
-    err = tfm_sst_veneer_write(app_id, hdl, &io_data);
+    err = tfm_sst_veneer_write(app_id, asset_uuid, &io_data);
     if (err != TFM_SST_ERR_SUCCESS) {
         TEST_FAIL("Write should work correctly");
         return;
@@ -1007,7 +852,7 @@
 
     for (i = 0; i < WRITE_BUF_SIZE ; i++) {
         /* Read data from the asset */
-        err = tfm_sst_veneer_read(app_id, hdl, &io_data);
+        err = tfm_sst_veneer_read(app_id, asset_uuid, &io_data);
 #ifdef SST_ENABLE_PARTIAL_ASSET_RW
         if (err != TFM_SST_ERR_SUCCESS) {
 #else
@@ -1055,10 +900,9 @@
 static void tfm_sst_test_2014(struct test_result_t *ret)
 {
     const uint32_t app_id = S_APP_ID;
-    const uint16_t asset_uuid = SST_ASSET_ID_AES_KEY_192;
+    const uint32_t asset_uuid = SST_ASSET_ID_AES_KEY_192;
     enum tfm_sst_err_t err;
     struct tfm_sst_buf_t io_data;
-    uint32_t hdl;
     uint8_t read_data[READ_BUF_SIZE] = "XXXXXXXXXXXXX";
     uint8_t wrt_data[WRITE_BUF_SIZE] = "DATA";
 
@@ -1068,27 +912,20 @@
         return;
     }
 
-    /* Creates asset to get a valid handle */
+    /* Creates asset */
     err = tfm_sst_veneer_create(app_id, asset_uuid);
     if (err != TFM_SST_ERR_SUCCESS) {
         TEST_FAIL("Create should not fail for application S_APP_ID");
         return;
     }
 
-    /* Gets asset's handle */
-    err = tfm_sst_veneer_get_handle(app_id, asset_uuid, &hdl);
-    if (err != TFM_SST_ERR_SUCCESS) {
-        TEST_FAIL("Get handle should return a valid asset handle");
-        return;
-    }
-
     /* Sets data structure */
     io_data.data = wrt_data;
     io_data.size = WRITE_BUF_SIZE;
     io_data.offset = 0;
 
     /* Writes data in the asset */
-    err = tfm_sst_veneer_write(app_id, hdl, &io_data);
+    err = tfm_sst_veneer_write(app_id, asset_uuid, &io_data);
     if (err != TFM_SST_ERR_SUCCESS) {
         TEST_FAIL("Write should work correctly");
         return;
@@ -1107,7 +944,7 @@
     io_data.offset = 0;
 
     /* Reads back the data after the prepare */
-    err = tfm_sst_veneer_read(app_id, hdl, &io_data);
+    err = tfm_sst_veneer_read(app_id, asset_uuid, &io_data);
     if (err != TFM_SST_ERR_SUCCESS) {
         TEST_FAIL("Incorrect number of bytes read back");
         return;
@@ -1139,10 +976,9 @@
 static void tfm_sst_test_2015(struct test_result_t *ret)
 {
     const uint32_t app_id = S_APP_ID;
-    const uint16_t asset_uuid = SST_ASSET_ID_SHA224_HASH;
+    const uint32_t asset_uuid = SST_ASSET_ID_AES_KEY_192;
     enum tfm_sst_err_t err;
     struct tfm_sst_buf_t io_data;
-    uint32_t hdl;
     uint8_t wrt_data[BUF_SIZE_SHA224] = {0};
 
     /* Prepares test context */
@@ -1151,27 +987,20 @@
         return;
     }
 
-    /* Creates asset to get a valid handle */
+    /* Creates asset */
     err = tfm_sst_veneer_create(app_id, asset_uuid);
     if (err != TFM_SST_ERR_SUCCESS) {
         TEST_FAIL("Create should not fail for application S_APP_ID");
         return;
     }
 
-    /* Gets asset's handle */
-    err = tfm_sst_veneer_get_handle(app_id, asset_uuid, &hdl);
-    if (err != TFM_SST_ERR_SUCCESS) {
-        TEST_FAIL("Get handle should return a valid asset handle");
-        return;
-    }
-
     /* Sets data structure */
     io_data.data = wrt_data;
     io_data.size = SST_ASSET_MAX_SIZE_SHA224_HASH + 1;
     io_data.offset = 0;
 
     /* Writes data in the asset when data size is bigger than asset size */
-    err = tfm_sst_veneer_write(app_id, hdl, &io_data);
+    err = tfm_sst_veneer_write(app_id, asset_uuid, &io_data);
     if (err == TFM_SST_ERR_SUCCESS) {
         TEST_FAIL("Should have failed asset write of too large");
         return;
@@ -1187,10 +1016,9 @@
 static void tfm_sst_test_2016(struct test_result_t *ret)
 {
     const uint32_t app_id = S_APP_ID;
-    const uint16_t asset_uuid = SST_ASSET_ID_SHA224_HASH;
+    const uint32_t asset_uuid = SST_ASSET_ID_SHA224_HASH;
     enum tfm_sst_err_t err;
     struct tfm_sst_buf_t io_data;
-    uint32_t hdl;
     uint8_t read_data[READ_BUF_SIZE]  = "XXXXXXXXXXXXX";
     uint8_t wrt_data[WRITE_BUF_SIZE+1]  = "Hello";
     uint8_t wrt_data2[WRITE_BUF_SIZE+1] = "World";
@@ -1201,27 +1029,20 @@
         return;
     }
 
-    /* Creates asset to get a valid handle */
+    /* Creates asset */
     err = tfm_sst_veneer_create(app_id, asset_uuid);
     if (err != TFM_SST_ERR_SUCCESS) {
         TEST_FAIL("Create should not fail for application S_APP_ID");
         return;
     }
 
-    /* Gets asset's handle */
-    err = tfm_sst_veneer_get_handle(app_id, asset_uuid, &hdl);
-    if (err != TFM_SST_ERR_SUCCESS) {
-        TEST_FAIL("Get handle should return a valid asset handle");
-        return;
-    }
-
     /* Sets data structure */
     io_data.data = wrt_data;
     io_data.size = WRITE_BUF_SIZE;
     io_data.offset = 0;
 
     /* Writes data in the asset */
-    err = tfm_sst_veneer_write(app_id, hdl, &io_data);
+    err = tfm_sst_veneer_write(app_id, asset_uuid, &io_data);
     if (err != TFM_SST_ERR_SUCCESS) {
         TEST_FAIL("Write data 1 failed");
         return;
@@ -1233,7 +1054,7 @@
     io_data.offset = WRITE_BUF_SIZE;
 
     /* Writes data 2 in the asset */
-    err = tfm_sst_veneer_write(app_id, hdl, &io_data);
+    err = tfm_sst_veneer_write(app_id, asset_uuid, &io_data);
     if (err != TFM_SST_ERR_SUCCESS) {
         TEST_FAIL("Write data 2 failed");
         return;
@@ -1245,7 +1066,7 @@
     io_data.offset = 0;
 
     /* Read back the data */
-    err = tfm_sst_veneer_read(app_id, hdl, &io_data);
+    err = tfm_sst_veneer_read(app_id, asset_uuid, &io_data);
     if (err != TFM_SST_ERR_SUCCESS) {
         TEST_FAIL("Incorrect number of bytes read back");
         return;
@@ -1268,10 +1089,9 @@
 static void tfm_sst_test_2017(struct test_result_t *ret)
 {
     const uint32_t app_id = S_APP_ID;
-    const uint16_t asset_uuid = SST_ASSET_ID_SHA224_HASH;
+    const uint32_t asset_uuid = SST_ASSET_ID_SHA224_HASH;
     enum tfm_sst_err_t err;
     struct tfm_sst_buf_t io_data;
-    uint32_t hdl;
     uint8_t read_data[BUF_SIZE_SHA224] = READ_DATA_SHA224;
     uint8_t wrt_data[BUF_SIZE_SHA224] = WRITE_DATA_SHA224_1;
     uint8_t wrt_data2[BUF_SIZE_SHA224] = WRITE_DATA_SHA224_2;
@@ -1282,27 +1102,20 @@
         return;
     }
 
-    /* Creates asset to get a valid handle */
+    /* Creates asset */
     err = tfm_sst_veneer_create(app_id, asset_uuid);
     if (err != TFM_SST_ERR_SUCCESS) {
         TEST_FAIL("Create should not fail for application S_APP_ID");
         return;
     }
 
-    /* Gets asset's handle */
-    err = tfm_sst_veneer_get_handle(app_id, asset_uuid, &hdl);
-    if (err != TFM_SST_ERR_SUCCESS) {
-        TEST_FAIL("Get handle should return a valid asset handle");
-        return;
-    }
-
     /* Sets data structure */
     io_data.data = wrt_data;
     io_data.size = WRITE_BUF_SIZE;
     io_data.offset = 0;
 
     /* Writes data in the asset */
-    err = tfm_sst_veneer_write(app_id, hdl, &io_data);
+    err = tfm_sst_veneer_write(app_id, asset_uuid, &io_data);
     if (err != TFM_SST_ERR_SUCCESS) {
         TEST_FAIL("Write data 1 failed");
         return;
@@ -1314,7 +1127,7 @@
     io_data.offset = WRITE_BUF_SIZE;
 
     /* Writes data in the asset */
-    err = tfm_sst_veneer_write(app_id, hdl, &io_data);
+    err = tfm_sst_veneer_write(app_id, asset_uuid, &io_data);
     if (err == TFM_SST_ERR_SUCCESS) {
         TEST_FAIL("Write data 2 should have failed as this write tries to "
                   "write more bytes than the max size");
@@ -1327,7 +1140,7 @@
     io_data.offset = WRITE_BUF_SIZE;
 
     /* Writes data in the asset */
-    err = tfm_sst_veneer_write(app_id, hdl, &io_data);
+    err = tfm_sst_veneer_write(app_id, asset_uuid, &io_data);
     if (err != TFM_SST_ERR_SUCCESS) {
         TEST_FAIL("Write data 3 failed");
         return;
@@ -1339,7 +1152,7 @@
     io_data.offset = 0;
 
     /* Read back the data */
-    err = tfm_sst_veneer_read(app_id, hdl, &io_data);
+    err = tfm_sst_veneer_read(app_id, asset_uuid, &io_data);
     if (err != TFM_SST_ERR_SUCCESS) {
         TEST_FAIL("Incorrect number of bytes read back");
         return;
@@ -1361,11 +1174,9 @@
 
     const uint32_t app_id_1 = S_APP_ID;
     const uint32_t app_id_2 = S_APP_ID;
-    const uint16_t asset_uuid_1 = SST_ASSET_ID_AES_KEY_192;
-    const uint16_t asset_uuid_2 = SST_ASSET_ID_SHA224_HASH;
+    const uint32_t asset_uuid_1 = SST_ASSET_ID_AES_KEY_192;
+    const uint32_t asset_uuid_2 = SST_ASSET_ID_SHA224_HASH;
     enum tfm_sst_err_t err;
-    uint32_t hdl_1;
-    uint32_t hdl_2;
     struct tfm_sst_buf_t io_data;
     uint8_t read_data[READ_BUF_SIZE] = "XXXXXXXXXXXXX";
     uint8_t wrt_data[WRITE_BUF_SIZE+1] = "Hello";
@@ -1379,41 +1190,27 @@
         return;
     }
 
-    /* Creates asset 1 to get a valid handle */
+    /* Creates asset 1 */
     err = tfm_sst_veneer_create(app_id_1, asset_uuid_1);
     if (err != TFM_SST_ERR_SUCCESS) {
         TEST_FAIL("Create should not fail for application S_APP_ID");
         return;
     }
 
-    /* Gets asset's handle 1 */
-    err = tfm_sst_veneer_get_handle(app_id_1, asset_uuid_1, &hdl_1);
-    if (err != TFM_SST_ERR_SUCCESS) {
-        TEST_FAIL("Get handle should return a valid asset handle");
-        return;
-    }
-
-    /* Creates asset 2 to get a valid handle */
+    /* Creates asset 2 */
     err = tfm_sst_veneer_create(app_id_2, asset_uuid_2);
     if (err != TFM_SST_ERR_SUCCESS) {
         TEST_FAIL("Create should not fail for application S_APP_ID");
         return;
     }
 
-    /* Gets asset's handle 2 */
-    err = tfm_sst_veneer_get_handle(app_id_2, asset_uuid_2, &hdl_2);
-    if (err != TFM_SST_ERR_SUCCESS) {
-        TEST_FAIL("Get handle should return a valid asset handle");
-        return;
-    }
-
     /* Sets data structure */
     io_data.data = wrt_data;
     io_data.size = WRITE_BUF_SIZE;
     io_data.offset = 0;
 
     /* Writes data in asset 1 */
-    err = tfm_sst_veneer_write(app_id_1, hdl_1, &io_data);
+    err = tfm_sst_veneer_write(app_id_1, asset_uuid_1, &io_data);
     if (err != TFM_SST_ERR_SUCCESS) {
         TEST_FAIL("Write data should work for application S_APP_ID");
         return;
@@ -1425,7 +1222,7 @@
     io_data.offset = 0;
 
     /* Writes data 2 in asset 2 */
-    err = tfm_sst_veneer_write(app_id_2, hdl_2, &io_data);
+    err = tfm_sst_veneer_write(app_id_2, asset_uuid_2, &io_data);
     if (err != TFM_SST_ERR_SUCCESS) {
         TEST_FAIL("Write data should work for application S_APP_ID");
         return;
@@ -1437,7 +1234,7 @@
     io_data.offset = WRITE_BUF_SIZE;
 
     /* Writes data 3 in asset 1 */
-    err = tfm_sst_veneer_write(app_id_1, hdl_1, &io_data);
+    err = tfm_sst_veneer_write(app_id_1, asset_uuid_1, &io_data);
     if (err != TFM_SST_ERR_SUCCESS) {
         TEST_FAIL("Write data should work for application S_APP_ID");
         return;
@@ -1449,7 +1246,7 @@
     io_data.offset = 2;
 
     /* Writes data 4 in asset 2 */
-    err = tfm_sst_veneer_write(app_id_2, hdl_2, &io_data);
+    err = tfm_sst_veneer_write(app_id_2, asset_uuid_2, &io_data);
     if (err != TFM_SST_ERR_SUCCESS) {
         TEST_FAIL("Write data should work for application S_APP_ID");
         return;
@@ -1461,7 +1258,7 @@
     io_data.offset = 0;
 
     /* Read back the asset 1 */
-    err = tfm_sst_veneer_read(app_id_1, hdl_1, &io_data);
+    err = tfm_sst_veneer_read(app_id_1, asset_uuid_1, &io_data);
     if (err != TFM_SST_ERR_SUCCESS) {
         TEST_FAIL("Incorrect number of bytes read back");
         return;
@@ -1481,7 +1278,7 @@
     io_data.offset = 0;
 
     /* Read back the asset 2 */
-    err = tfm_sst_veneer_read(app_id_2, hdl_2, &io_data);
+    err = tfm_sst_veneer_read(app_id_2, asset_uuid_2, &io_data);
     if (err != TFM_SST_ERR_SUCCESS) {
         TEST_FAIL("Incorrect number of bytes read back");
         return;
@@ -1502,10 +1299,9 @@
 static void tfm_sst_test_2019(struct test_result_t *ret)
 {
     uint32_t app_id = S_APP_ID;
-    const uint16_t asset_uuid = SST_ASSET_ID_SHA224_HASH;
+    const uint32_t asset_uuid = SST_ASSET_ID_SHA224_HASH;
     enum tfm_sst_err_t err;
     struct tfm_sst_buf_t io_data;
-    uint32_t hdl;
 
     /* Prepares test context */
     if (prepare_test_ctx(ret) != 0) {
@@ -1513,44 +1309,27 @@
         return;
     }
 
-    /* Creates asset to get a valid handle */
+    /* Creates asset */
     err = tfm_sst_veneer_create(app_id, asset_uuid);
     if (err != TFM_SST_ERR_SUCCESS) {
         TEST_FAIL("Create should not fail for application S_APP_ID");
         return;
     }
 
-    /* Gets asset's handle */
-    err = tfm_sst_veneer_get_handle(app_id, asset_uuid, &hdl);
-    if (err != TFM_SST_ERR_SUCCESS) {
-        TEST_FAIL("Get handle should return a valid asset handle");
-        return;
-    }
-
-    /* Gets asset's handle with a ROM address location to store asset's
-     * handle
-     */
-    err = tfm_sst_veneer_get_handle(app_id, asset_uuid,
-                                    (uint32_t *)ROM_ADDR_LOCATION);
-    if (err != TFM_SST_ERR_PARAM_ERROR) {
-        TEST_FAIL("Get handle should fail for an illegal location");
-        return;
-    }
-
     /* Sets data structure */
     io_data.data = (uint8_t *)ROM_ADDR_LOCATION;
     io_data.size = 1;
     io_data.offset = 0;
 
     /* Calls write with a ROM address location */
-    err = tfm_sst_veneer_write(app_id, hdl, &io_data);
+    err = tfm_sst_veneer_write(app_id, asset_uuid, &io_data);
     if (err != TFM_SST_ERR_ASSET_NOT_FOUND) {
         TEST_FAIL("Write should fail for an illegal location");
         return;
     }
 
     /* Calls read with a ROM address location */
-    err = tfm_sst_veneer_read(app_id, hdl, &io_data);
+    err = tfm_sst_veneer_read(app_id, asset_uuid, &io_data);
     if (err != TFM_SST_ERR_ASSET_NOT_FOUND) {
         TEST_FAIL("Read should fail for an illegal location");
         return;
@@ -1565,10 +1344,9 @@
 static void tfm_sst_test_2020(struct test_result_t *ret)
 {
     uint32_t app_id = S_APP_ID;
-    const uint16_t asset_uuid = SST_ASSET_ID_SHA224_HASH;
+    const uint32_t asset_uuid = SST_ASSET_ID_SHA224_HASH;
     enum tfm_sst_err_t err;
     struct tfm_sst_buf_t io_data;
-    uint32_t hdl;
 
     /* Prepares test context */
     if (prepare_test_ctx(ret) != 0) {
@@ -1576,44 +1354,27 @@
         return;
     }
 
-    /* Creates asset to get a valid handle */
+    /* Creates asset */
     err = tfm_sst_veneer_create(app_id, asset_uuid);
     if (err != TFM_SST_ERR_SUCCESS) {
         TEST_FAIL("Create should not fail for application S_APP_ID");
         return;
     }
 
-    /* Gets asset's handle */
-    err = tfm_sst_veneer_get_handle(app_id, asset_uuid, &hdl);
-    if (err != TFM_SST_ERR_SUCCESS) {
-        TEST_FAIL("Get handle should return a valid asset handle");
-        return;
-    }
-
-    /* Gets asset's handle with a devices address location to store asset's
-     * handle
-     */
-    err = tfm_sst_veneer_get_handle(app_id, asset_uuid,
-                                    (uint32_t *)DEV_ADDR_LOCATION);
-    if (err != TFM_SST_ERR_PARAM_ERROR) {
-        TEST_FAIL("Get handle should fail for an illegal location");
-        return;
-    }
-
     /* Sets data structure */
     io_data.data = (uint8_t *)DEV_ADDR_LOCATION;
     io_data.size = 1;
     io_data.offset = 0;
 
     /* Calls write with a device address location */
-    err = tfm_sst_veneer_write(app_id, hdl, &io_data);
+    err = tfm_sst_veneer_write(app_id, asset_uuid, &io_data);
     if (err != TFM_SST_ERR_ASSET_NOT_FOUND) {
         TEST_FAIL("Write should fail for an illegal location");
         return;
     }
 
     /* Calls read with a device address location */
-    err = tfm_sst_veneer_read(app_id, hdl, &io_data);
+    err = tfm_sst_veneer_read(app_id, asset_uuid, &io_data);
     if (err != TFM_SST_ERR_ASSET_NOT_FOUND) {
         TEST_FAIL("Read should fail for an illegal location");
         return;
@@ -1628,10 +1389,9 @@
 static void tfm_sst_test_2021(struct test_result_t *ret)
 {
     uint32_t app_id = S_APP_ID;
-    const uint16_t asset_uuid = SST_ASSET_ID_SHA224_HASH;
+    const uint32_t asset_uuid = SST_ASSET_ID_SHA224_HASH;
     enum tfm_sst_err_t err;
     struct tfm_sst_buf_t io_data;
-    uint32_t hdl;
 
     /* Prepares test context */
     if (prepare_test_ctx(ret) != 0) {
@@ -1639,44 +1399,27 @@
         return;
     }
 
-    /* Creates asset to get a valid handle */
+    /* Creates asset */
     err = tfm_sst_veneer_create(app_id, asset_uuid);
     if (err != TFM_SST_ERR_SUCCESS) {
         TEST_FAIL("Create should not fail for application S_APP_ID");
         return;
     }
 
-    /* Gets asset's handle */
-    err = tfm_sst_veneer_get_handle(app_id, asset_uuid, &hdl);
-    if (err != TFM_SST_ERR_SUCCESS) {
-        TEST_FAIL("Get handle should return a valid asset handle");
-        return;
-    }
-
-    /* Gets asset's handle with a non existing address location to store asset's
-     * handle
-     */
-    err = tfm_sst_veneer_get_handle(app_id, asset_uuid,
-                                    (uint32_t *)NON_EXIST_ADDR_LOCATION);
-    if (err != TFM_SST_ERR_PARAM_ERROR) {
-        TEST_FAIL("Get handle should fail for an illegal location");
-        return;
-    }
-
     /* Sets data structure */
     io_data.data = (uint8_t *)NON_EXIST_ADDR_LOCATION;
     io_data.size = 1;
     io_data.offset = 0;
 
     /* Calls write with a non-existing address location */
-    err = tfm_sst_veneer_write(app_id, hdl, &io_data);
+    err = tfm_sst_veneer_write(app_id, asset_uuid, &io_data);
     if (err != TFM_SST_ERR_ASSET_NOT_FOUND) {
         TEST_FAIL("Write should fail for an illegal location");
         return;
     }
 
     /* Calls read with a non-existing address location */
-    err = tfm_sst_veneer_read(app_id, hdl, &io_data);
+    err = tfm_sst_veneer_read(app_id, asset_uuid, &io_data);
     if (err != TFM_SST_ERR_ASSET_NOT_FOUND) {
         TEST_FAIL("Read should fail for an illegal location");
         return;
@@ -1692,11 +1435,10 @@
 static void tfm_sst_test_2022(struct test_result_t *ret)
 {
     const uint32_t app_id = S_APP_ID;
-    const uint16_t asset_uuid = SST_ASSET_ID_AES_KEY_192;
+    const uint32_t asset_uuid = SST_ASSET_ID_AES_KEY_192;
     struct tfm_sst_asset_info_t asset_info;
     struct tfm_sst_buf_t buf;
     enum tfm_sst_err_t err;
-    uint32_t hdl;
     uint8_t read_data[READ_BUF_SIZE] = "XXXXXXXXXXXXX";
     uint8_t write_data_1[WRITE_BUF_SIZE] = "AAAA";
     uint8_t write_data_2[2] = "B";
@@ -1712,24 +1454,18 @@
         return;
     }
 
-    err = tfm_sst_veneer_get_handle(app_id, asset_uuid, &hdl);
-    if (err != TFM_SST_ERR_SUCCESS) {
-        TEST_FAIL("Get handle should not fail");
-        return;
-    }
-
     buf.data = write_data_1;
     buf.size = (WRITE_BUF_SIZE - 1);
     buf.offset = 0;
 
     /* Writes write_data_1 to the asset */
-    err = tfm_sst_veneer_write(app_id, hdl, &buf);
+    err = tfm_sst_veneer_write(app_id, asset_uuid, &buf);
     if (err != TFM_SST_ERR_SUCCESS) {
         TEST_FAIL("First write should not fail");
         return;
     }
 
-    err = tfm_sst_veneer_get_info(app_id, hdl, &asset_info);
+    err = tfm_sst_veneer_get_info(app_id, asset_uuid, &asset_info);
     if (err != TFM_SST_ERR_SUCCESS) {
         TEST_FAIL("Get information should not fail");
         return;
@@ -1748,13 +1484,13 @@
     buf.offset = 1;
 
     /* Overwrites the second character in the asset with write_data_2 */
-    err = tfm_sst_veneer_write(app_id, hdl, &buf);
+    err = tfm_sst_veneer_write(app_id, asset_uuid, &buf);
     if (err != TFM_SST_ERR_SUCCESS) {
         TEST_FAIL("Second write should not fail");
         return;
     }
 
-    err = tfm_sst_veneer_get_info(app_id, hdl, &asset_info);
+    err = tfm_sst_veneer_get_info(app_id, asset_uuid, &asset_info);
     if (err != TFM_SST_ERR_SUCCESS) {
         TEST_FAIL("Get information should not fail");
         return;
@@ -1770,7 +1506,7 @@
     buf.size = (WRITE_BUF_SIZE - 1);
     buf.offset = 0;
 
-    err = tfm_sst_veneer_read(app_id, hdl, &buf);
+    err = tfm_sst_veneer_read(app_id, asset_uuid, &buf);
     if (err != TFM_SST_ERR_SUCCESS) {
         TEST_FAIL("Read should not fail");
         return;
@@ -1789,7 +1525,7 @@
     buf.size = 1;
     buf.offset = (asset_info.size_current + 1);
 
-    err = tfm_sst_veneer_write(app_id, hdl, &buf);
+    err = tfm_sst_veneer_write(app_id, asset_uuid, &buf);
     if (err != TFM_SST_ERR_PARAM_ERROR) {
         TEST_FAIL("Write must fail if the offset is bigger than the current"
                   " asset's size");
diff --git a/test/test_services/tfm_sst_test_service/sst_test_service.c b/test/test_services/tfm_sst_test_service/sst_test_service.c
index 50d8834..4b02653 100644
--- a/test/test_services/tfm_sst_test_service/sst_test_service.c
+++ b/test/test_services/tfm_sst_test_service/sst_test_service.c
@@ -16,6 +16,10 @@
                                0xDE, 0xAD, 0xBE, 0xEF, 0xBA, 0xAD, 0xF0, 0x0D, }
 #define SST_TEST_SERVICE_KEY_SIZE SST_ASSET_MAX_SIZE_AES_KEY_128
 
+/* Define default asset's token */
+#define ASSET_TOKEN      NULL
+#define ASSET_TOKEN_SIZE 0
+
 /**
  * \brief Service initialisation function. No special initialisation is
  *        required.
@@ -31,48 +35,36 @@
 {
     enum tfm_sst_err_t err;
     uint32_t app_id = S_APP_ID;
-    uint32_t key_handle;
-    uint16_t key_uuid = SST_ASSET_ID_AES_KEY_128;
+    const uint32_t key_uuid = SST_ASSET_ID_AES_KEY_128;
+
     uint8_t key_data[SST_TEST_SERVICE_KEY_SIZE] = SST_TEST_SERVICE_KEY;
     struct tfm_sst_buf_t key_buf = { key_data, SST_TEST_SERVICE_KEY_SIZE, 0 };
 
+
     /* Create the key asset using our secure app ID */
     err = tfm_sst_veneer_create(app_id, key_uuid);
     if (err != TFM_SST_ERR_SUCCESS) {
         return err;
     }
 
-    /* Get the handle of the key asset using our secure app ID */
-    err = tfm_sst_veneer_get_handle(app_id, key_uuid, &key_handle);
-    if (err != TFM_SST_ERR_SUCCESS) {
-        return err;
-    }
-
     /* Write the key to the asset using our secure app ID */
-    err = tfm_sst_veneer_write(app_id, key_handle, &key_buf);
+    err = tfm_sst_veneer_write(app_id, key_uuid, &key_buf);
 
     return err;
 }
 
 enum tfm_sst_err_t sst_test_service_sfn_dummy_encrypt(uint32_t app_id,
-                                                      uint16_t key_uuid,
+                                                      uint32_t key_uuid,
                                                       uint8_t *buf,
                                                       uint32_t buf_size)
 {
     enum tfm_sst_err_t err;
     uint32_t i;
-    uint32_t key_handle;
     uint8_t key_data[SST_TEST_SERVICE_KEY_SIZE];
     struct tfm_sst_buf_t key_buf = { key_data, SST_TEST_SERVICE_KEY_SIZE, 0 };
 
-    /* Get the handle of the key asset using the non-secure caller's app ID */
-    err = tfm_sst_veneer_get_handle(app_id, key_uuid, &key_handle);
-    if (err != TFM_SST_ERR_SUCCESS) {
-        return err;
-    }
-
     /* Read the key from the asset using the non-secure caller's app ID */
-    err = tfm_sst_veneer_read(app_id, key_handle, &key_buf);
+    err = tfm_sst_veneer_read(app_id, key_uuid, &key_buf);
     if (err != TFM_SST_ERR_SUCCESS) {
         return err;
     }
@@ -93,7 +85,7 @@
 }
 
 enum tfm_sst_err_t sst_test_service_sfn_dummy_decrypt(uint32_t app_id,
-                                                      uint16_t key_uuid,
+                                                      uint32_t key_uuid,
                                                       uint8_t *buf,
                                                       uint32_t buf_size)
 {
@@ -106,17 +98,10 @@
 {
     enum tfm_sst_err_t err;
     uint32_t app_id = S_APP_ID;
-    uint32_t key_handle;
-    uint16_t key_uuid = SST_ASSET_ID_AES_KEY_128;
-
-    /* Get the handle of the key asset using our secure app ID */
-    err = tfm_sst_veneer_get_handle(app_id, key_uuid, &key_handle);
-    if (err != TFM_SST_ERR_SUCCESS) {
-        return err;
-    }
+    const uint32_t key_uuid = SST_ASSET_ID_AES_KEY_128;
 
     /* Delete the key asset using our secure app ID */
-    err = tfm_sst_veneer_delete(app_id, key_handle);
+    err = tfm_sst_veneer_delete(app_id, key_uuid);
 
     return err;
 }
diff --git a/test/test_services/tfm_sst_test_service/sst_test_service.h b/test/test_services/tfm_sst_test_service/sst_test_service.h
index 1d5ca2c..da55a79 100644
--- a/test/test_services/tfm_sst_test_service/sst_test_service.h
+++ b/test/test_services/tfm_sst_test_service/sst_test_service.h
@@ -35,7 +35,7 @@
  * \return Returns error code as specified in \ref tfm_sst_err_t
  */
 enum tfm_sst_err_t sst_test_service_sfn_dummy_encrypt(uint32_t app_id,
-                                                      uint16_t key_uuid,
+                                                      uint32_t key_uuid,
                                                       uint8_t *buf,
                                                       uint32_t buf_size);
 
@@ -51,7 +51,7 @@
  * \return Returns error code as specified in \ref tfm_sst_err_t
  */
 enum tfm_sst_err_t sst_test_service_sfn_dummy_decrypt(uint32_t app_id,
-                                                      uint16_t key_uuid,
+                                                      uint32_t key_uuid,
                                                       uint8_t *buf,
                                                       uint32_t buf_size);
 
diff --git a/test/test_services/tfm_sst_test_service/sst_test_service_api.c b/test/test_services/tfm_sst_test_service/sst_test_service_api.c
index ebfa44f..1821cd6 100644
--- a/test/test_services/tfm_sst_test_service/sst_test_service_api.c
+++ b/test/test_services/tfm_sst_test_service/sst_test_service_api.c
@@ -17,7 +17,7 @@
 }
 
 __attribute__ ((naked))
-enum tfm_sst_err_t sst_test_service_dummy_encrypt(uint16_t key_uuid,
+enum tfm_sst_err_t sst_test_service_dummy_encrypt(uint32_t key_uuid,
                                                   uint8_t *buf,
                                                   uint32_t buf_size)
 {
@@ -26,7 +26,7 @@
 }
 
 __attribute__ ((naked))
-enum tfm_sst_err_t sst_test_service_dummy_decrypt(uint16_t key_uuid,
+enum tfm_sst_err_t sst_test_service_dummy_decrypt(uint32_t key_uuid,
                                                   uint8_t *buf,
                                                   uint32_t buf_size)
 {
diff --git a/test/test_services/tfm_sst_test_service/sst_test_service_api.h b/test/test_services/tfm_sst_test_service/sst_test_service_api.h
index 3b5e2f6..87f1a4f 100644
--- a/test/test_services/tfm_sst_test_service/sst_test_service_api.h
+++ b/test/test_services/tfm_sst_test_service/sst_test_service_api.h
@@ -33,7 +33,7 @@
  *
  * \return Returns error code as specified in \ref tfm_sst_err_t
  */
-enum tfm_sst_err_t sst_test_service_dummy_encrypt(uint16_t key_uuid,
+enum tfm_sst_err_t sst_test_service_dummy_encrypt(uint32_t key_uuid,
                                                   uint8_t *buf,
                                                   uint32_t buf_size);
 
@@ -47,7 +47,7 @@
  *
  * \return Returns error code as specified in \ref tfm_sst_err_t
  */
-enum tfm_sst_err_t sst_test_service_dummy_decrypt(uint16_t key_uuid,
+enum tfm_sst_err_t sst_test_service_dummy_decrypt(uint32_t key_uuid,
                                                   uint8_t *buf,
                                                   uint32_t buf_size);
 
diff --git a/test/test_services/tfm_sst_test_service/sst_test_service_svc.c b/test/test_services/tfm_sst_test_service/sst_test_service_svc.c
index 467cd05..84ade98 100644
--- a/test/test_services/tfm_sst_test_service/sst_test_service_svc.c
+++ b/test/test_services/tfm_sst_test_service/sst_test_service_svc.c
@@ -15,7 +15,7 @@
     return sst_test_service_veneer_setup();
 }
 
-enum tfm_sst_err_t sst_test_service_svc_dummy_encrypt(uint16_t key_uuid,
+enum tfm_sst_err_t sst_test_service_svc_dummy_encrypt(uint32_t key_uuid,
                                                       uint8_t *buf,
                                                       uint32_t buf_size)
 {
@@ -27,7 +27,7 @@
                                                  buf_size);
 }
 
-enum tfm_sst_err_t sst_test_service_svc_dummy_decrypt(uint16_t key_uuid,
+enum tfm_sst_err_t sst_test_service_svc_dummy_decrypt(uint32_t key_uuid,
                                                       uint8_t *buf,
                                                       uint32_t buf_size)
 {
diff --git a/test/test_services/tfm_sst_test_service/sst_test_service_veneers.c b/test/test_services/tfm_sst_test_service/sst_test_service_veneers.c
index 56e0fbd..b7fa5c5 100644
--- a/test/test_services/tfm_sst_test_service/sst_test_service_veneers.c
+++ b/test/test_services/tfm_sst_test_service/sst_test_service_veneers.c
@@ -21,7 +21,7 @@
 
 __tfm_secure_gateway_attributes__
 enum tfm_sst_err_t sst_test_service_veneer_dummy_encrypt(uint32_t app_id,
-                                                         uint16_t key_uuid,
+                                                         uint32_t key_uuid,
                                                          uint8_t *buf,
                                                          uint32_t buf_size)
 {
@@ -32,7 +32,7 @@
 
 __tfm_secure_gateway_attributes__
 enum tfm_sst_err_t sst_test_service_veneer_dummy_decrypt(uint32_t app_id,
-                                                         uint16_t key_uuid,
+                                                         uint32_t key_uuid,
                                                          uint8_t *buf,
                                                          uint32_t buf_size)
 {
diff --git a/test/test_services/tfm_sst_test_service/sst_test_service_veneers.h b/test/test_services/tfm_sst_test_service/sst_test_service_veneers.h
index c75c7eb..a70819c 100644
--- a/test/test_services/tfm_sst_test_service/sst_test_service_veneers.h
+++ b/test/test_services/tfm_sst_test_service/sst_test_service_veneers.h
@@ -35,7 +35,7 @@
  * \return Returns error code as specified in \ref tfm_sst_err_t
  */
 enum tfm_sst_err_t sst_test_service_veneer_dummy_encrypt(uint32_t app_id,
-                                                         uint16_t key_uuid,
+                                                         uint32_t key_uuid,
                                                          uint8_t *buf,
                                                          uint32_t buf_size);
 /**
@@ -50,7 +50,7 @@
  * \return Returns error code as specified in \ref tfm_sst_err_t
  */
 enum tfm_sst_err_t sst_test_service_veneer_dummy_decrypt(uint32_t app_id,
-                                                         uint16_t key_uuid,
+                                                         uint32_t key_uuid,
                                                          uint8_t *buf,
                                                          uint32_t buf_size);
 /**