10 #include "../crypto_tests_common.h"
14 #ifdef TFM_CRYPTO_TEST_ALG_CBC
17 #ifdef TFM_CRYPTO_TEST_ALG_CFB
20 #ifdef TFM_CRYPTO_TEST_ALG_CTR
25 #ifdef TFM_CRYPTO_TEST_ALG_CFB
31 #ifdef TFM_CRYPTO_TEST_ALG_SHA_512
37 #ifdef TFM_CRYPTO_TEST_ALG_SHA_512
42 #ifdef TFM_CRYPTO_TEST_ALG_CCM
45 #ifdef TFM_CRYPTO_TEST_ALG_GCM
51 #ifdef TFM_CRYPTO_TEST_ALG_CCM
56 #ifdef TFM_CRYPTO_TEST_HKDF
60 static struct test_t crypto_tests[] = {
61 {&tfm_crypto_test_6001,
"TFM_CRYPTO_TEST_6001",
62 "Non Secure Key management interface", {
TEST_PASSED} },
63 #ifdef TFM_CRYPTO_TEST_ALG_CBC
64 {&tfm_crypto_test_6002,
"TFM_CRYPTO_TEST_6002",
65 "Non Secure Symmetric encryption (AES-128-CBC) interface", {
TEST_PASSED} },
67 #ifdef TFM_CRYPTO_TEST_ALG_CFB
68 {&tfm_crypto_test_6003,
"TFM_CRYPTO_TEST_6003",
69 "Non Secure Symmetric encryption (AES-128-CFB) interface", {
TEST_PASSED} },
71 #ifdef TFM_CRYPTO_TEST_ALG_CTR
72 {&tfm_crypto_test_6005,
"TFM_CRYPTO_TEST_6005",
73 "Non Secure Symmetric encryption (AES-128-CTR) interface", {
TEST_PASSED} },
75 {&tfm_crypto_test_6007,
"TFM_CRYPTO_TEST_6007",
76 "Non Secure Symmetric encryption invalid cipher", {
TEST_PASSED} },
77 {&tfm_crypto_test_6008,
"TFM_CRYPTO_TEST_6008",
78 "Non Secure Symmetric encryption invalid cipher (AES-152)", {
TEST_PASSED} },
79 #ifdef TFM_CRYPTO_TEST_ALG_CFB
80 {&tfm_crypto_test_6009,
"TFM_CRYPTO_TEST_6009",
81 "Non Secure Symmetric encryption invalid cipher (HMAC-128-CFB)", {
TEST_PASSED} },
83 {&tfm_crypto_test_6010,
"TFM_CRYPTO_TEST_6010",
84 "Non Secure Unsupported Hash (SHA-1) interface", {
TEST_PASSED} },
85 {&tfm_crypto_test_6011,
"TFM_CRYPTO_TEST_6011",
86 "Non Secure Hash (SHA-224) interface", {
TEST_PASSED} },
87 {&tfm_crypto_test_6012,
"TFM_CRYPTO_TEST_6012",
88 "Non Secure Hash (SHA-256) interface", {
TEST_PASSED} },
89 #ifdef TFM_CRYPTO_TEST_ALG_SHA_512
90 {&tfm_crypto_test_6013,
"TFM_CRYPTO_TEST_6013",
91 "Non Secure Hash (SHA-384) interface", {
TEST_PASSED} },
92 {&tfm_crypto_test_6014,
"TFM_CRYPTO_TEST_6014",
93 "Non Secure Hash (SHA-512) interface", {
TEST_PASSED} },
95 {&tfm_crypto_test_6019,
"TFM_CRYPTO_TEST_6019",
96 "Non Secure Unsupported HMAC (SHA-1) interface", {
TEST_PASSED} },
97 {&tfm_crypto_test_6020,
"TFM_CRYPTO_TEST_6020",
98 "Non Secure HMAC (SHA-256) interface", {
TEST_PASSED} },
99 #ifdef TFM_CRYPTO_TEST_ALG_SHA_512
100 {&tfm_crypto_test_6021,
"TFM_CRYPTO_TEST_6021",
101 "Non Secure HMAC (SHA-384) interface", {
TEST_PASSED} },
102 {&tfm_crypto_test_6022,
"TFM_CRYPTO_TEST_6022",
103 "Non Secure HMAC (SHA-512) interface", {
TEST_PASSED} },
105 {&tfm_crypto_test_6024,
"TFM_CRYPTO_TEST_6024",
106 "Non Secure HMAC with long key (SHA-224) interface", {
TEST_PASSED} },
107 #ifdef TFM_CRYPTO_TEST_ALG_CCM
108 {&tfm_crypto_test_6030,
"TFM_CRYPTO_TEST_6030",
109 "Non Secure AEAD (AES-128-CCM) interface", {
TEST_PASSED} },
111 #ifdef TFM_CRYPTO_TEST_ALG_GCM
112 {&tfm_crypto_test_6031,
"TFM_CRYPTO_TEST_6031",
113 "Non Secure AEAD (AES-128-GCM) interface", {
TEST_PASSED} },
115 {&tfm_crypto_test_6032,
"TFM_CRYPTO_TEST_6032",
116 "Non Secure key policy interface", {
TEST_PASSED} },
117 {&tfm_crypto_test_6033,
"TFM_CRYPTO_TEST_6033",
118 "Non Secure key policy check permissions", {
TEST_PASSED} },
119 {&tfm_crypto_test_6034,
"TFM_CRYPTO_TEST_6034",
120 "Non Secure persistent key interface", {
TEST_PASSED} },
121 #ifdef TFM_CRYPTO_TEST_ALG_CCM
122 {&tfm_crypto_test_6035,
"TFM_CRYPTO_TEST_6035",
123 "Non Secure AEAD interface with truncated auth tag (AES-128-CCM-8)",
126 {&tfm_crypto_test_6036,
"TFM_CRYPTO_TEST_6036",
127 "Non Secure TLS 1.2 PRF key derivation", {
TEST_PASSED} },
128 {&tfm_crypto_test_6037,
"TFM_CRYPTO_TEST_6037",
129 "Non Secure TLS-1.2 PSK-to-MasterSecret key derivation", {
TEST_PASSED} },
130 #ifdef TFM_CRYPTO_TEST_HKDF
131 {&tfm_crypto_test_6038,
"TFM_CRYPTO_TEST_6038",
138 uint32_t list_size = (
sizeof(crypto_tests) /
sizeof(crypto_tests[0]));
140 set_testsuite(
"Crypto non-secure interface test (TFM_CRYPTO_TEST_6XXX)",
141 crypto_tests, list_size, p_test_suite);
158 #ifdef TFM_CRYPTO_TEST_ALG_CBC
165 #ifdef TFM_CRYPTO_TEST_ALG_CFB
172 #ifdef TFM_CRYPTO_TEST_ALG_CTR
190 #ifdef TFM_CRYPTO_TEST_ALG_CFB
213 #ifdef TFM_CRYPTO_TEST_ALG_SHA_512
236 #ifdef TFM_CRYPTO_TEST_ALG_SHA_512
253 #ifdef TFM_CRYPTO_TEST_ALG_CCM
260 #ifdef TFM_CRYPTO_TEST_ALG_GCM
282 #ifdef TFM_CRYPTO_TEST_ALG_CCM
302 #ifdef TFM_CRYPTO_TEST_HKDF
void psa_unsupported_hash_test(const psa_algorithm_t alg, struct test_result_t *ret)
Tests setup of an unsupported hash algorithm.
void psa_key_interface_test(const psa_key_type_t key_type, struct test_result_t *ret)
Tests the key interfaces with different key types.
void psa_invalid_cipher_test(const psa_key_type_t key_type, const psa_algorithm_t alg, const size_t key_size, struct test_result_t *ret)
Tests invalid key type and algorithm combinations for block ciphers.
enum test_suite_err_t set_testsuite(const char *name, struct test_t *test_list, uint32_t size, struct test_suite_t *p_ts)
Sets test suite parameters.
#define PSA_ALG_HMAC(hash_alg)
void psa_mac_test(const psa_algorithm_t alg, uint8_t use_long_key, struct test_result_t *ret)
Tests different MAC algorithms.
void psa_invalid_key_length_test(struct test_result_t *ret)
Tests invalid key length.
void psa_persistent_key_test(psa_key_id_t key_id, struct test_result_t *ret)
Tests persistent keys.
void psa_policy_key_interface_test(struct test_result_t *ret)
Tests the policy key interface.
void psa_cipher_test(const psa_key_type_t key_type, const psa_algorithm_t alg, struct test_result_t *ret)
Run block ciphering tests with different algorithms and key types.
#define PSA_ALG_CBC_NO_PADDING
#define PSA_ALG_TLS12_PRF(hash_alg)
void register_testsuite_ns_crypto_interface(struct test_suite_t *p_test_suite)
Register testsuite for Crypto non-secure interface.
uint32_t psa_algorithm_t
Encoding of a cryptographic algorithm.
void psa_aead_test(const psa_key_type_t key_type, const psa_algorithm_t alg, struct test_result_t *ret)
Run AEAD tests with different algorithms and key types.
void psa_unsupported_mac_test(const psa_key_type_t key_type, const psa_algorithm_t alg, struct test_result_t *ret)
Tests setup of an unsupported MAC algorithm.
void psa_key_derivation_test(psa_algorithm_t deriv_alg, struct test_result_t *ret)
Key derivation test.
#define PSA_KEY_TYPE_HMAC
#define PSA_ALG_HKDF(hash_alg)
#define TRUNCATED_AUTH_TAG_LEN
The length of truncated authentication tag for AEAD algorithm.
void psa_hash_test(const psa_algorithm_t alg, struct test_result_t *ret)
Tests different hashing algorithms.
void psa_policy_invalid_policy_usage_test(struct test_result_t *ret)
Tests invalid policy usage.
#define PSA_ALG_TLS12_PSK_TO_MS(hash_alg)
#define PSA_ALG_AEAD_WITH_TAG_LENGTH(aead_alg, tag_length)