1 /*
2  * Copyright (c) 2023, Arm Limited. All rights reserved.
3  *
4  * SPDX-License-Identifier: BSD-3-Clause
5  *
6  */
7 
8 #include "psa/client.h"
9 #include "psa_manifest/sid.h"
10 #include "tfm_its_defs.h"
11 #include "psa_manifest/pid.h"
12 #include "tfm_internal_trusted_storage.h"
13 
14 uint8_t *p_psa_src_data;
15 uint8_t *p_psa_dest_data;
16 
psa_its_set(psa_storage_uid_t uid,size_t data_length,void * p_data,psa_storage_create_flags_t create_flags)17 psa_status_t psa_its_set(psa_storage_uid_t uid,
18                          size_t data_length,
19                          void *p_data,
20                          psa_storage_create_flags_t create_flags)
21 {
22     p_psa_src_data = p_data;
23 
24     return tfm_its_set(TFM_SP_PS, uid, data_length, create_flags);
25 }
26 
psa_its_get(psa_storage_uid_t uid,size_t data_offset,size_t data_size,void * p_data,size_t * p_data_length)27 psa_status_t psa_its_get(psa_storage_uid_t uid,
28                          size_t data_offset,
29                          size_t data_size,
30                          void *p_data,
31                          size_t *p_data_length)
32 {
33     if (p_data_length == NULL) {
34         return PSA_ERROR_INVALID_ARGUMENT;
35     }
36 
37     p_psa_dest_data = p_data;
38 
39     return tfm_its_get(TFM_SP_PS, uid, data_offset, data_size, p_data_length);
40 }
41 
psa_its_get_info(psa_storage_uid_t uid,struct psa_storage_info_t * p_info)42 psa_status_t psa_its_get_info(psa_storage_uid_t uid,
43                               struct psa_storage_info_t *p_info)
44 {
45     return tfm_its_get_info(TFM_SP_PS, uid, p_info);
46 }
47 
psa_its_remove(psa_storage_uid_t uid)48 psa_status_t psa_its_remove(psa_storage_uid_t uid)
49 {
50     return tfm_its_remove(TFM_SP_PS, uid);
51 }
52