@@ -20,6 +20,7 @@ static struct
20
20
size_t bits;
21
21
size_t extra_size;
22
22
size_t pubkey_out_size;
23
+ psa_status_t return_value;
23
24
} mock_generate_data;
24
25
25
26
static struct
@@ -31,24 +32,28 @@ static struct
31
32
psa_algorithm_t algorithm;
32
33
psa_key_usage_t usage;
33
34
size_t data_length;
35
+ psa_status_t return_value;
34
36
} mock_import_data;
35
37
36
38
static struct
37
39
{
38
40
uint16_t called;
39
41
psa_key_slot_number_t slot_number;
40
42
size_t data_size;
43
+ psa_status_t return_value;
41
44
} mock_export_data;
42
45
43
46
static struct
44
47
{
45
48
uint16_t called;
49
+ psa_status_t return_value;
46
50
} mock_allocate_data;
47
51
48
52
static struct
49
53
{
50
54
uint16_t called;
51
55
psa_key_slot_number_t slot_number;
56
+ psa_status_t return_value;
52
57
} mock_destroy_data;
53
58
54
59
static void mock_teardown( void )
@@ -82,7 +87,7 @@ static psa_status_t mock_generate( psa_key_slot_number_t key_slot,
82
87
mock_generate_data.extra_size = extra_size;
83
88
mock_generate_data.pubkey_out_size = pubkey_out_size;
84
89
85
- return( PSA_SUCCESS );
90
+ return( mock_generate_data.return_value );
86
91
}
87
92
88
93
static psa_status_t mock_import( psa_key_slot_number_t slot_number,
@@ -103,7 +108,7 @@ static psa_status_t mock_import( psa_key_slot_number_t slot_number,
103
108
mock_import_data.usage = usage;
104
109
mock_import_data.data_length = data_length;
105
110
106
- return( PSA_SUCCESS );
111
+ return( mock_import_data.return_value );
107
112
}
108
113
109
114
psa_status_t mock_export( psa_key_slot_number_t slot_number,
@@ -118,7 +123,7 @@ psa_status_t mock_export( psa_key_slot_number_t slot_number,
118
123
mock_export_data.slot_number = slot_number;
119
124
mock_export_data.data_size = data_size;
120
125
121
- return( PSA_SUCCESS );
126
+ return( mock_export_data.return_value );
122
127
}
123
128
124
129
psa_status_t mock_allocate( const psa_key_attributes_t *attributes,
@@ -132,15 +137,15 @@ psa_status_t mock_allocate( const psa_key_attributes_t *attributes,
132
137
mock_allocate_data.called++;
133
138
*slot_number = 0;
134
139
135
- return( PSA_SUCCESS );
140
+ return( mock_allocate_data.return_value );
136
141
}
137
142
138
143
psa_status_t mock_destroy( psa_key_slot_number_t slot_number )
139
144
{
140
145
mock_destroy_data.called++;
141
146
mock_destroy_data.slot_number = slot_number;
142
147
143
- return( PSA_SUCCESS );
148
+ return( mock_destroy_data.return_value );
144
149
}
145
150
146
151
/* END_HEADER */
@@ -216,7 +221,9 @@ exit:
216
221
/* END_CASE */
217
222
218
223
/* BEGIN_CASE */
219
- void mock_import( )
224
+ void mock_import( int mock_alloc_return_value,
225
+ int mock_import_return_value,
226
+ int expected_result)
220
227
{
221
228
psa_drv_se_t driver;
222
229
psa_drv_se_key_management_t key_management;
@@ -226,6 +233,8 @@ void mock_import( )
226
233
psa_key_attributes_t attributes = PSA_KEY_ATTRIBUTES_INIT;
227
234
const uint8_t key_material[3] = {0xfa, 0xca, 0xde};
228
235
236
+ mock_allocate_data.return_value = mock_alloc_return_value;
237
+ mock_import_data.return_value = mock_import_return_value;
229
238
memset( &driver, 0, sizeof( driver ) );
230
239
memset( &key_management, 0, sizeof( key_management ) );
231
240
driver.hal_version = PSA_DRV_SE_HAL_VERSION;
@@ -242,26 +251,29 @@ void mock_import( )
242
251
psa_set_key_lifetime( &attributes, lifetime );
243
252
psa_set_key_usage_flags( &attributes, PSA_KEY_USAGE_EXPORT );
244
253
psa_set_key_type( &attributes, PSA_KEY_TYPE_RAW_DATA );
245
- PSA_ASSERT ( psa_import_key( &attributes,
254
+ TEST_ASSERT ( psa_import_key( &attributes,
246
255
key_material, sizeof( key_material ),
247
- &handle ) );
256
+ &handle ) == expected_result );
248
257
249
258
TEST_ASSERT( mock_allocate_data.called == 1 );
250
- TEST_ASSERT( mock_import_data.called == 1 );
251
- TEST_ASSERT( mock_import_data.type == PSA_KEY_TYPE_RAW_DATA);
252
-
253
- PSA_ASSERT( psa_destroy_key( handle ) );
254
-
255
- TEST_ASSERT( mock_destroy_data.called == 1 );
256
-
259
+ TEST_ASSERT( mock_import_data.called ==
260
+ (expected_result == PSA_SUCCESS? 1 : 0) );
261
+ TEST_ASSERT( mock_import_data.type ==
262
+ (expected_result == PSA_SUCCESS? PSA_KEY_TYPE_RAW_DATA : 0));
263
+
264
+ if( expected_result == PSA_SUCCESS )
265
+ {
266
+ PSA_ASSERT( psa_destroy_key( handle ) );
267
+ TEST_ASSERT( mock_destroy_data.called == 1 );
268
+ }
257
269
exit:
258
270
PSA_DONE( );
259
271
mock_teardown( );
260
272
}
261
273
/* END_CASE */
262
274
263
275
/* BEGIN_CASE */
264
- void mock_export( )
276
+ void mock_export( int mock_export_return_value, int expected_result )
265
277
{
266
278
psa_drv_se_t driver;
267
279
psa_drv_se_key_management_t key_management;
@@ -273,6 +285,7 @@ void mock_export( )
273
285
uint8_t exported[sizeof( key_material )];
274
286
size_t exported_length;
275
287
288
+ mock_export_data.return_value = mock_export_return_value;
276
289
memset( &driver, 0, sizeof( driver ) );
277
290
memset( &key_management, 0, sizeof( key_management ) );
278
291
driver.hal_version = PSA_DRV_SE_HAL_VERSION;
@@ -294,9 +307,9 @@ void mock_export( )
294
307
key_material, sizeof( key_material ),
295
308
&handle ) );
296
309
297
- PSA_ASSERT ( psa_export_key( handle,
310
+ TEST_ASSERT ( psa_export_key( handle,
298
311
exported, sizeof( exported ),
299
- &exported_length ) );
312
+ &exported_length ) == expected_result );
300
313
301
314
TEST_ASSERT( mock_export_data.called == 1 );
302
315
@@ -311,7 +324,7 @@ exit:
311
324
/* END_CASE */
312
325
313
326
/* BEGIN_CASE */
314
- void mock_generate( )
327
+ void mock_generate( int mock_generate_return_value, int expected_result )
315
328
{
316
329
psa_drv_se_t driver;
317
330
psa_drv_se_key_management_t key_management;
@@ -320,6 +333,7 @@ void mock_generate( )
320
333
psa_key_handle_t handle = 0;
321
334
psa_key_attributes_t attributes = PSA_KEY_ATTRIBUTES_INIT;
322
335
336
+ mock_generate_data.return_value = mock_generate_return_value;
323
337
memset( &driver, 0, sizeof( driver ) );
324
338
memset( &key_management, 0, sizeof( key_management ) );
325
339
driver.hal_version = PSA_DRV_SE_HAL_VERSION;
@@ -336,7 +350,7 @@ void mock_generate( )
336
350
psa_set_key_lifetime( &attributes, lifetime );
337
351
psa_set_key_usage_flags( &attributes, PSA_KEY_USAGE_EXPORT );
338
352
psa_set_key_type( &attributes, PSA_KEY_TYPE_RAW_DATA );
339
- PSA_ASSERT ( psa_generate_key( &attributes, &handle ) );
353
+ TEST_ASSERT ( psa_generate_key( &attributes, &handle ) == expected_result );
340
354
TEST_ASSERT( mock_generate_data.called == 1 );
341
355
342
356
exit:
0 commit comments