-
Notifications
You must be signed in to change notification settings - Fork 96
PSA Storage: Add psa_trusted_storage_linux persistent storage support for v1.0.0 APIs #180
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Changes from all commits
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -69,6 +69,7 @@ void set_get_remove( int uid_arg, int flags_arg, data_t *data ) | |
uint32_t flags = flags_arg; | ||
struct psa_storage_info_t info; | ||
unsigned char *buffer = NULL; | ||
size_t ret_len = 0; | ||
|
||
ASSERT_ALLOC( buffer, data->len ); | ||
|
||
|
@@ -77,8 +78,8 @@ void set_get_remove( int uid_arg, int flags_arg, data_t *data ) | |
PSA_ASSERT( psa_its_get_info( uid, &info ) ); | ||
TEST_ASSERT( info.size == data->len ); | ||
TEST_ASSERT( info.flags == flags ); | ||
PSA_ASSERT( psa_its_get( uid, 0, data->len, buffer ) ); | ||
ASSERT_COMPARE( data->x, data->len, buffer, data->len ); | ||
PSA_ASSERT( psa_its_get( uid, 0, data->len, buffer, &ret_len ) ); | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. We should probably assert that There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Done |
||
ASSERT_COMPARE( data->x, data->len, buffer, ret_len ); | ||
|
||
PSA_ASSERT( psa_its_remove( uid ) ); | ||
|
||
|
@@ -98,22 +99,24 @@ void set_overwrite( int uid_arg, | |
uint32_t flags2 = flags2_arg; | ||
struct psa_storage_info_t info; | ||
unsigned char *buffer = NULL; | ||
size_t ret_len = 0; | ||
|
||
ASSERT_ALLOC( buffer, MAX( data1->len, data2->len ) ); | ||
|
||
PSA_ASSERT( psa_its_set_wrap( uid, data1->len, data1->x, flags1 ) ); | ||
PSA_ASSERT( psa_its_get_info( uid, &info ) ); | ||
TEST_ASSERT( info.size == data1->len ); | ||
TEST_ASSERT( info.flags == flags1 ); | ||
PSA_ASSERT( psa_its_get( uid, 0, data1->len, buffer ) ); | ||
ASSERT_COMPARE( data1->x, data1->len, buffer, data1->len ); | ||
PSA_ASSERT( psa_its_get( uid, 0, data1->len, buffer, &ret_len ) ); | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. We should probably assert that There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Done |
||
ASSERT_COMPARE( data1->x, data1->len, buffer, ret_len ); | ||
|
||
PSA_ASSERT( psa_its_set_wrap( uid, data2->len, data2->x, flags2 ) ); | ||
PSA_ASSERT( psa_its_get_info( uid, &info ) ); | ||
TEST_ASSERT( info.size == data2->len ); | ||
TEST_ASSERT( info.flags == flags2 ); | ||
PSA_ASSERT( psa_its_get( uid, 0, data2->len, buffer ) ); | ||
ASSERT_COMPARE( data2->x, data2->len, buffer, data2->len ); | ||
ret_len = 0; | ||
PSA_ASSERT( psa_its_get( uid, 0, data2->len, buffer, &ret_len ) ); | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. We should probably assert that There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Done |
||
ASSERT_COMPARE( data2->x, data2->len, buffer, ret_len ); | ||
|
||
PSA_ASSERT( psa_its_remove( uid ) ); | ||
|
||
|
@@ -130,6 +133,7 @@ void set_multiple( int first_id, int count ) | |
psa_storage_uid_t uid; | ||
char stored[40]; | ||
char retrieved[40]; | ||
size_t ret_len = 0; | ||
|
||
memset( stored, '.', sizeof( stored ) ); | ||
for( uid = uid0; uid < uid0 + count; uid++ ) | ||
|
@@ -143,11 +147,11 @@ void set_multiple( int first_id, int count ) | |
{ | ||
mbedtls_snprintf( stored, sizeof( stored ), | ||
"Content of file 0x%08lx", (unsigned long) uid ); | ||
PSA_ASSERT( psa_its_get( uid, 0, sizeof( stored ), retrieved ) ); | ||
ASSERT_COMPARE( retrieved, sizeof( stored ), | ||
PSA_ASSERT( psa_its_get( uid, 0, sizeof( stored ), retrieved, &ret_len ) ); | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. We should probably assert that There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Done |
||
ASSERT_COMPARE( retrieved, ret_len, | ||
stored, sizeof( stored ) ); | ||
PSA_ASSERT( psa_its_remove( uid ) ); | ||
TEST_ASSERT( psa_its_get( uid, 0, 0, NULL ) == | ||
TEST_ASSERT( psa_its_get( uid, 0, 0, NULL, NULL ) == | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Good to see that we are also testing the There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Ok |
||
PSA_ERROR_DOES_NOT_EXIST ); | ||
} | ||
|
||
|
@@ -171,7 +175,7 @@ void nonexistent( int uid_arg, int create_and_remove ) | |
TEST_ASSERT( psa_its_remove( uid ) == PSA_ERROR_DOES_NOT_EXIST ); | ||
TEST_ASSERT( psa_its_get_info( uid, &info ) == | ||
PSA_ERROR_DOES_NOT_EXIST ); | ||
TEST_ASSERT( psa_its_get( uid, 0, 0, NULL ) == | ||
TEST_ASSERT( psa_its_get( uid, 0, 0, NULL, NULL ) == | ||
PSA_ERROR_DOES_NOT_EXIST ); | ||
|
||
exit: | ||
|
@@ -190,18 +194,19 @@ void get_at( int uid_arg, data_t *data, | |
size_t length = length_arg >= 0 ? length_arg : 0; | ||
unsigned char *trailer; | ||
size_t i; | ||
size_t ret_len = 0; | ||
|
||
ASSERT_ALLOC( buffer, length + 16 ); | ||
trailer = buffer + length; | ||
memset( trailer, '-', 16 ); | ||
|
||
PSA_ASSERT( psa_its_set_wrap( uid, data->len, data->x, 0 ) ); | ||
|
||
status = psa_its_get( uid, offset, length_arg, buffer ); | ||
status = psa_its_get( uid, offset, length_arg, buffer, &ret_len ); | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. We should probably assert that There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Done |
||
TEST_ASSERT( status == (psa_status_t) expected_status ); | ||
if( status == PSA_SUCCESS ) | ||
ASSERT_COMPARE( data->x + offset, length, | ||
buffer, length ); | ||
ASSERT_COMPARE( data->x + offset, (size_t) length_arg, | ||
buffer, ret_len ); | ||
for( i = 0; i < 16; i++ ) | ||
TEST_ASSERT( trailer[i] == '-' ); | ||
PSA_ASSERT( psa_its_remove( uid ) ); | ||
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Should we check
data_length
is equal todata_size
and return an error (probablyPSA_ERROR_STORAGE_FAILURE
) if not?There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
yes, its better.