Skip to content

Commit de4453d

Browse files
authored
Merge pull request #174 from dgreen-arm/psa-se-driver-hooks
Add mock tests for hooks for secure element drivers
2 parents b090d5d + 0892d0f commit de4453d

File tree

4 files changed

+632
-1
lines changed

4 files changed

+632
-1
lines changed

library/psa_crypto.c

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1835,7 +1835,9 @@ psa_status_t psa_import_key( const psa_key_attributes_t *attributes,
18351835
if( driver != NULL )
18361836
{
18371837
const psa_drv_se_t *drv = psa_get_se_driver_methods( driver );
1838-
size_t bits;
1838+
/* The driver should set the number of key bits, however in
1839+
* case it doesn't, we initialize bits to an invalid value. */
1840+
size_t bits = PSA_MAX_KEY_BITS + 1;
18391841
if( drv->key_management == NULL ||
18401842
drv->key_management->p_import == NULL )
18411843
{

tests/CMakeLists.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -143,6 +143,7 @@ add_test_suite(psa_crypto_init)
143143
add_test_suite(psa_crypto_metadata)
144144
add_test_suite(psa_crypto_persistent_key)
145145
add_test_suite(psa_crypto_se_driver_hal)
146+
add_test_suite(psa_crypto_se_driver_hal_mocks)
146147
add_test_suite(psa_crypto_slot_management)
147148
add_test_suite(psa_its)
148149
add_test_suite(shax)
Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
SE key importing mock test
2+
mock_import:PSA_SUCCESS:PSA_SUCCESS:0:PSA_SUCCESS
3+
4+
SE key importing mock test: max key bits
5+
mock_import:PSA_SUCCESS:PSA_SUCCESS:PSA_MAX_KEY_BITS:PSA_SUCCESS
6+
7+
SE key importing mock test: more than max key bits
8+
mock_import:PSA_SUCCESS:PSA_ERROR_NOT_SUPPORTED:PSA_MAX_KEY_BITS+1:PSA_ERROR_NOT_SUPPORTED
9+
10+
SE key importing mock test: alloc failed
11+
mock_import:PSA_ERROR_HARDWARE_FAILURE:PSA_SUCCESS:0:PSA_ERROR_HARDWARE_FAILURE
12+
13+
SE key importing mock test: import failed
14+
mock_import:PSA_SUCCESS:PSA_ERROR_HARDWARE_FAILURE:0:PSA_ERROR_HARDWARE_FAILURE
15+
16+
SE key exporting mock test
17+
mock_export:PSA_SUCCESS:PSA_SUCCESS
18+
19+
SE key exporting mock test: export failed
20+
mock_export:PSA_ERROR_HARDWARE_FAILURE:PSA_ERROR_HARDWARE_FAILURE
21+
22+
SE public key exporting mock test
23+
mock_export_public:PSA_SUCCESS:PSA_SUCCESS
24+
25+
SE public key exporting mock test: export failed
26+
mock_export_public:PSA_ERROR_HARDWARE_FAILURE:PSA_ERROR_HARDWARE_FAILURE
27+
28+
SE key generating mock test
29+
mock_generate:PSA_SUCCESS:PSA_SUCCESS:PSA_SUCCESS
30+
31+
SE key generating mock test: alloc failed
32+
mock_generate:PSA_ERROR_HARDWARE_FAILURE:PSA_SUCCESS:PSA_ERROR_HARDWARE_FAILURE
33+
34+
SE key generating mock test: generating failed
35+
mock_generate:PSA_SUCCESS:PSA_ERROR_HARDWARE_FAILURE:PSA_ERROR_HARDWARE_FAILURE
36+
37+
SE signing mock test
38+
mock_sign:PSA_SUCCESS:PSA_SUCCESS
39+
40+
SE signing mock test: sign failed
41+
mock_sign:PSA_ERROR_HARDWARE_FAILURE:PSA_ERROR_HARDWARE_FAILURE
42+
43+
SE verification mock test
44+
mock_verify:PSA_SUCCESS:PSA_SUCCESS
45+
46+
SE verification mock test: verify failed
47+
mock_verify:PSA_ERROR_HARDWARE_FAILURE:PSA_ERROR_HARDWARE_FAILURE

0 commit comments

Comments
 (0)