Skip to content

Commit 5da7b3e

Browse files
Drivers must have a psa_destroy_key method
Drivers that allow destroying a key must have a destroy method. This test bug was previously not caught because of an implementation bug that lost the error triggered by the missing destroy method.
1 parent 4b7f340 commit 5da7b3e

File tree

1 file changed

+16
-2
lines changed

1 file changed

+16
-2
lines changed

tests/suites/test_suite_psa_crypto_se_driver_hal.function

Lines changed: 16 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -162,6 +162,17 @@ static psa_status_t null_generate( psa_drv_se_context_t *context,
162162
return( PSA_SUCCESS );
163163
}
164164

165+
/* Null destroy: do nothing, but pretend it worked. */
166+
static psa_status_t null_destroy( psa_drv_se_context_t *context,
167+
void *persistent_data,
168+
psa_key_slot_number_t slot_number )
169+
{
170+
(void) context;
171+
(void) persistent_data;
172+
(void) slot_number;
173+
return( PSA_SUCCESS );
174+
}
175+
165176

166177

167178
/****************************************************************/
@@ -898,6 +909,7 @@ void import_key_smoke( int type_arg, int alg_arg,
898909
driver.persistent_data_size = sizeof( psa_key_slot_number_t );
899910
key_management.p_allocate = counter_allocate;
900911
key_management.p_import = null_import;
912+
key_management.p_destroy = null_destroy;
901913

902914
PSA_ASSERT( psa_register_se_driver( lifetime, &driver ) );
903915
PSA_ASSERT( psa_crypto_init( ) );
@@ -995,6 +1007,7 @@ void generate_key_smoke( int type_arg, int bits_arg, int alg_arg )
9951007
driver.persistent_data_size = sizeof( psa_key_slot_number_t );
9961008
key_management.p_allocate = counter_allocate;
9971009
key_management.p_generate = null_generate;
1010+
key_management.p_destroy = null_destroy;
9981011

9991012
PSA_ASSERT( psa_register_se_driver( lifetime, &driver ) );
10001013
PSA_ASSERT( psa_crypto_init( ) );
@@ -1220,10 +1233,11 @@ void register_key_smoke_test( int lifetime_arg,
12201233

12211234
memset( &driver, 0, sizeof( driver ) );
12221235
driver.hal_version = PSA_DRV_SE_HAL_VERSION;
1236+
memset( &key_management, 0, sizeof( key_management ) );
1237+
driver.key_management = &key_management;
1238+
key_management.p_destroy = null_destroy;
12231239
if( validate >= 0 )
12241240
{
1225-
memset( &key_management, 0, sizeof( key_management ) );
1226-
driver.key_management = &key_management;
12271241
key_management.p_validate_slot_number = validate_slot_number_as_directed;
12281242
validate_slot_number_directions.slot_number = wanted_slot;
12291243
validate_slot_number_directions.method = PSA_KEY_CREATION_REGISTER;

0 commit comments

Comments
 (0)