Skip to content

Commit 563701d

Browse files
author
itayzafrir
committed
crypto: Add test of key handles
Test key handles by adding a test to TESTS/mbed-crypto/sanity/main.cpp
1 parent 0bc9bcc commit 563701d

File tree

1 file changed

+46
-0
lines changed

1 file changed

+46
-0
lines changed

TESTS/mbed-crypto/sanity/main.cpp

Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -293,6 +293,51 @@ void test_crypto_key_derivation(void)
293293
TEST_ASSERT_EQUAL(PSA_SUCCESS, psa_destroy_key(derived_slot));
294294
}
295295

296+
void test_crypto_key_handles(void)
297+
{
298+
psa_key_id_t id = 999;
299+
psa_key_type_t type = PSA_KEY_TYPE_AES;
300+
size_t bits = 256;
301+
psa_key_usage_t usage = PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_DECRYPT;
302+
psa_algorithm_t alg = PSA_ALG_CBC_NO_PADDING;
303+
psa_key_handle_t key_handle;
304+
psa_key_policy_t policy;
305+
306+
key_handle = 0;
307+
TEST_ASSERT_EQUAL(PSA_SUCCESS, psa_allocate_key(&key_handle));
308+
TEST_ASSERT_NOT_EQUAL(0, key_handle);
309+
policy = psa_key_policy_init();
310+
psa_key_policy_set_usage(&policy, usage, alg);
311+
TEST_ASSERT_EQUAL(PSA_SUCCESS, psa_set_key_policy(key_handle, &policy));
312+
TEST_ASSERT_EQUAL(PSA_SUCCESS, psa_generate_key(key_handle, type, bits, NULL, 0));
313+
TEST_ASSERT_EQUAL(PSA_SUCCESS, psa_close_key(key_handle));
314+
315+
key_handle = 0;
316+
TEST_ASSERT_EQUAL(PSA_SUCCESS, psa_allocate_key(&key_handle));
317+
TEST_ASSERT_NOT_EQUAL(0, key_handle);
318+
policy = psa_key_policy_init();
319+
psa_key_policy_set_usage(&policy, usage, alg);
320+
TEST_ASSERT_EQUAL(PSA_SUCCESS, psa_set_key_policy(key_handle, &policy));
321+
TEST_ASSERT_EQUAL(PSA_SUCCESS, psa_generate_key(key_handle, type, bits, NULL, 0));
322+
TEST_ASSERT_EQUAL(PSA_SUCCESS, psa_destroy_key(key_handle));
323+
324+
key_handle = 0;
325+
TEST_ASSERT_EQUAL(PSA_SUCCESS, psa_create_key(PSA_KEY_LIFETIME_PERSISTENT, id, &key_handle));
326+
TEST_ASSERT_NOT_EQUAL(0, key_handle);
327+
policy = psa_key_policy_init();
328+
psa_key_policy_set_usage(&policy, usage, alg);
329+
TEST_ASSERT_EQUAL(PSA_SUCCESS, psa_set_key_policy(key_handle, &policy));
330+
TEST_ASSERT_EQUAL(PSA_SUCCESS, psa_generate_key(key_handle, type, bits, NULL, 0));
331+
TEST_ASSERT_EQUAL(PSA_SUCCESS, psa_close_key(key_handle));
332+
333+
key_handle = 0;
334+
TEST_ASSERT_EQUAL(PSA_SUCCESS, psa_open_key(PSA_KEY_LIFETIME_PERSISTENT, id, &key_handle));
335+
TEST_ASSERT_NOT_EQUAL(0, key_handle);
336+
TEST_ASSERT_EQUAL(PSA_SUCCESS, psa_destroy_key(key_handle));
337+
338+
key_handle = 0;
339+
TEST_ASSERT_EQUAL(PSA_ERROR_EMPTY_SLOT, psa_open_key(PSA_KEY_LIFETIME_PERSISTENT, id, &key_handle));
340+
}
296341

297342
utest::v1::status_t case_setup_handler(const Case *const source, const size_t index_of_case)
298343
{
@@ -326,6 +371,7 @@ Case cases[] = {
326371
Case("mbed-crypto symmetric cipher encrypt/decrypt", case_setup_handler, test_crypto_symmetric_cipher_encrypt_decrypt, case_teardown_handler),
327372
Case("mbed-crypto asymmetric sign/verify", case_setup_handler, test_crypto_asymmetric_sign_verify, case_teardown_handler),
328373
Case("mbed-crypto key derivation", case_setup_handler, test_crypto_key_derivation, case_teardown_handler),
374+
Case("mbed-crypto key handles", case_setup_handler, test_crypto_key_handles, case_teardown_handler),
329375
};
330376

331377
Specification specification(test_setup, cases);

0 commit comments

Comments
 (0)