SST: Add asset authentication token in the APIs
This patch adds asset authentication token in the APIs to be used in
the future for asset key derivation. It also updates all files which
depend on these APIs and their documentation
Change-Id: I53e193b3dd3151798588c5515cd5198270836acf
Signed-off-by: Marc Moreno <marc.morenoberengue@arm.com>
diff --git a/interface/src/tfm_sst_api.c b/interface/src/tfm_sst_api.c
index d363c0a..ab47fd8 100644
--- a/interface/src/tfm_sst_api.c
+++ b/interface/src/tfm_sst_api.c
@@ -8,70 +8,125 @@
#include "tfm_sst_defs.h"
#include "tfm_ns_lock.h"
-enum tfm_sst_err_t tfm_sst_create(uint32_t asset_uuid)
+enum tfm_sst_err_t tfm_sst_create(uint32_t asset_uuid, const uint8_t* token,
+ uint32_t token_size)
{
+ struct tfm_sst_token_t s_token;
+
+ /* Pack the token information in the token structure */
+ s_token.token = token;
+ s_token.token_size = token_size;
+
return tfm_ns_lock_svc_dispatch(SVC_TFM_SST_CREATE,
asset_uuid,
- 0,
+ (uint32_t)&s_token,
0,
0);
}
enum tfm_sst_err_t tfm_sst_get_info(uint32_t asset_uuid,
+ const uint8_t* token,
+ uint32_t token_size,
struct tfm_sst_asset_info_t *info)
{
+ struct tfm_sst_token_t s_token;
+
+ /* Pack the token information in the token structure */
+ s_token.token = token;
+ s_token.token_size = token_size;
+
return tfm_ns_lock_svc_dispatch(SVC_TFM_SST_GET_INFO,
asset_uuid,
+ (uint32_t)&s_token,
(uint32_t)info,
- 0,
0);
}
enum tfm_sst_err_t tfm_sst_get_attributes(uint32_t asset_uuid,
+ const uint8_t* token,
+ uint32_t token_size,
struct tfm_sst_asset_attrs_t *attrs)
{
+ struct tfm_sst_token_t s_token;
+
+ /* Pack the token information in the token structure */
+ s_token.token = token;
+ s_token.token_size = token_size;
+
return tfm_ns_lock_svc_dispatch(SVC_TFM_SST_GET_ATTRIBUTES,
asset_uuid,
+ (uint32_t)&s_token,
(uint32_t)attrs,
- 0,
0);
}
enum tfm_sst_err_t tfm_sst_set_attributes(uint32_t asset_uuid,
+ const uint8_t* token,
+ uint32_t token_size,
const struct tfm_sst_asset_attrs_t *attrs)
{
+ struct tfm_sst_token_t s_token;
+
+ /* Pack the token information in the token structure */
+ s_token.token = token;
+ s_token.token_size = token_size;
+
return tfm_ns_lock_svc_dispatch(SVC_TFM_SST_SET_ATTRIBUTES,
asset_uuid,
+ (uint32_t)&s_token,
(uint32_t)attrs,
- 0,
0);
}
enum tfm_sst_err_t tfm_sst_read(uint32_t asset_uuid,
+ const uint8_t* token,
+ uint32_t token_size,
struct tfm_sst_buf_t* data)
{
+ struct tfm_sst_token_t s_token;
+
+ /* Pack the token information in the token structure */
+ s_token.token = token;
+ s_token.token_size = token_size;
+
return tfm_ns_lock_svc_dispatch(SVC_TFM_SST_READ,
asset_uuid,
+ (uint32_t)&s_token,
(uint32_t)data,
- 0,
0);
}
enum tfm_sst_err_t tfm_sst_write(uint32_t asset_uuid,
+ const uint8_t* token,
+ uint32_t token_size,
struct tfm_sst_buf_t* data)
{
+ struct tfm_sst_token_t s_token;
+
+ /* Pack the token information in the token structure */
+ s_token.token = token;
+ s_token.token_size = token_size;
+
return tfm_ns_lock_svc_dispatch(SVC_TFM_SST_WRITE,
asset_uuid,
+ (uint32_t)&s_token,
(uint32_t)data,
- 0,
0);
}
-enum tfm_sst_err_t tfm_sst_delete(uint32_t asset_uuid)
+enum tfm_sst_err_t tfm_sst_delete(uint32_t asset_uuid,
+ const uint8_t* token,
+ uint32_t token_size)
{
+ struct tfm_sst_token_t s_token;
+
+ /* Pack the token information in the token structure */
+ s_token.token = token;
+ s_token.token_size = token_size;
+
return tfm_ns_lock_svc_dispatch(SVC_TFM_SST_DELETE,
asset_uuid,
- 0,
+ (uint32_t)&s_token,
0,
0);
}