2
2
* SPDX-License-Identifier: Apache-2.0
3
3
*/
4
4
#include <zephyr/secure_storage/its/store.h>
5
+ #include <zephyr/secure_storage/its/store/settings_get.h>
5
6
#include <zephyr/init.h>
6
7
#include <zephyr/logging/log.h>
7
8
#include <zephyr/settings/settings.h>
@@ -26,26 +27,37 @@ static int init_settings_subsys(void)
26
27
}
27
28
SYS_INIT (init_settings_subsys , APPLICATION , CONFIG_APPLICATION_INIT_PRIORITY );
28
29
29
- enum { NAME_BUF_SIZE = sizeof (CONFIG_SECURE_STORAGE_ITS_STORE_SETTINGS_PREFIX ) - 1
30
- + 2 * (sizeof (secure_storage_its_uid_t ) + 1 ) };
31
- BUILD_ASSERT (NAME_BUF_SIZE <= SETTINGS_MAX_NAME_LEN + 1 );
30
+ BUILD_ASSERT (CONFIG_SECURE_STORAGE_ITS_STORE_SETTINGS_NAME_MAX_LEN <= SETTINGS_MAX_NAME_LEN );
32
31
33
- static void make_name (secure_storage_its_uid_t uid , char name [static NAME_BUF_SIZE ])
32
+ #ifndef CONFIG_SECURE_STORAGE_ITS_STORE_SETTINGS_NAME_CUSTOM
33
+
34
+ BUILD_ASSERT (CONFIG_SECURE_STORAGE_ITS_STORE_SETTINGS_NAME_MAX_LEN ==
35
+ sizeof (CONFIG_SECURE_STORAGE_ITS_STORE_SETTINGS_PREFIX ) - 1
36
+ + 1 + 1 /* caller ID + '/' */
37
+ + 2 * sizeof (psa_storage_uid_t ) /* hex UID */ );
38
+
39
+ void secure_storage_its_store_settings_get_name (
40
+ secure_storage_its_uid_t uid ,
41
+ char name [static SECURE_STORAGE_ITS_STORE_SETTINGS_NAME_BUF_SIZE ])
34
42
{
35
43
int ret ;
36
44
37
- ret = snprintf (name , NAME_BUF_SIZE , CONFIG_SECURE_STORAGE_ITS_STORE_SETTINGS_PREFIX
38
- "%x/%llx" , uid .caller_id , (unsigned long long )uid .uid );
39
- __ASSERT_NO_MSG (ret > 0 && ret < NAME_BUF_SIZE );
45
+ ret = snprintf (name , SECURE_STORAGE_ITS_STORE_SETTINGS_NAME_BUF_SIZE ,
46
+ CONFIG_SECURE_STORAGE_ITS_STORE_SETTINGS_PREFIX "%x/%llx" ,
47
+ uid .caller_id , (unsigned long long )uid .uid );
48
+ __ASSERT_NO_MSG (ret > 0 && ret < SECURE_STORAGE_ITS_STORE_SETTINGS_NAME_BUF_SIZE );
40
49
}
41
50
51
+ #endif /* !CONFIG_SECURE_STORAGE_ITS_STORE_SETTINGS_NAME_CUSTOM */
52
+
42
53
psa_status_t secure_storage_its_store_set (secure_storage_its_uid_t uid ,
43
54
size_t data_length , const void * data )
44
55
{
45
56
int ret ;
46
- char name [NAME_BUF_SIZE ];
57
+ char name [SECURE_STORAGE_ITS_STORE_SETTINGS_NAME_BUF_SIZE ];
58
+
59
+ secure_storage_its_store_settings_get_name (uid , name );
47
60
48
- make_name (uid , name );
49
61
ret = settings_save_one (name , data , data_length );
50
62
LOG_DBG ("%s %s with %zu bytes. (%d)" ,
51
63
(ret == 0 ) ? "Saved" : "Failed to save" , name , data_length , ret );
@@ -81,10 +93,10 @@ psa_status_t secure_storage_its_store_get(secure_storage_its_uid_t uid, size_t d
81
93
void * data , size_t * data_length )
82
94
{
83
95
psa_status_t ret ;
84
- char name [NAME_BUF_SIZE ];
96
+ char name [SECURE_STORAGE_ITS_STORE_SETTINGS_NAME_BUF_SIZE ];
85
97
struct load_params load_params = {.data_size = data_size , .data = data , .ret = - ENOENT };
86
98
87
- make_name (uid , name );
99
+ secure_storage_its_store_settings_get_name (uid , name );
88
100
89
101
settings_load_subtree_direct (name , load_direct_setting , & load_params );
90
102
if (load_params .ret > 0 ) {
@@ -103,9 +115,10 @@ psa_status_t secure_storage_its_store_get(secure_storage_its_uid_t uid, size_t d
103
115
psa_status_t secure_storage_its_store_remove (secure_storage_its_uid_t uid )
104
116
{
105
117
int ret ;
106
- char name [NAME_BUF_SIZE ];
118
+ char name [SECURE_STORAGE_ITS_STORE_SETTINGS_NAME_BUF_SIZE ];
119
+
120
+ secure_storage_its_store_settings_get_name (uid , name );
107
121
108
- make_name (uid , name );
109
122
ret = settings_delete (name );
110
123
111
124
LOG_DBG ("%s %s. (%d)" , ret ? "Failed to delete" : "Deleted" , name , ret );
0 commit comments