diff options
author | David Hu <david.hu@arm.com> | 2020-04-27 13:18:10 +0800 |
---|---|---|
committer | David Hu <david.hu@arm.com> | 2020-05-29 02:17:07 +0000 |
commit | 0d4047702fd67a6be09a8ae98999b80f6ab55faa (patch) | |
tree | a8c3a6889073b0bfe027392be0b514545f035577 /test | |
parent | bc88eb463511eafa18d326d79af94627470f0e9a (diff) | |
download | trusted-firmware-m-0d4047702fd67a6be09a8ae98999b80f6ab55faa.tar.gz |
Test: Add config flags to control build of Crypto test cases
Add several configuration flags to control the build of Crypto
test cases.
TF-M Profiles can skip Crypto test cases in which the algorithms
are not supported.
Common Crypto tests will be optimized in further patches.
Change-Id: I48f7609858f65d321767af9a95a8894929f32e9f
Signed-off-by: David Hu <david.hu@arm.com>
Diffstat (limited to 'test')
-rw-r--r-- | test/suites/crypto/CMakeLists.inc | 41 | ||||
-rw-r--r-- | test/suites/crypto/non_secure/crypto_ns_interface_testsuite.c | 67 | ||||
-rw-r--r-- | test/suites/crypto/secure/crypto_sec_interface_testsuite.c | 66 |
3 files changed, 173 insertions, 1 deletions
diff --git a/test/suites/crypto/CMakeLists.inc b/test/suites/crypto/CMakeLists.inc index 1e2fa0e2a8..20f7ca61ae 100644 --- a/test/suites/crypto/CMakeLists.inc +++ b/test/suites/crypto/CMakeLists.inc @@ -1,5 +1,5 @@ #------------------------------------------------------------------------------- -# Copyright (c) 2018-2019, Arm Limited. All rights reserved. +# Copyright (c) 2018-2020, Arm Limited. All rights reserved. # # SPDX-License-Identifier: BSD-3-Clause # @@ -32,6 +32,45 @@ elseif (ENABLE_CRYPTO_SERVICE_TESTS) list(APPEND ALL_SRC_C_NS "${CRYPTO_TEST_DIR}/non_secure/crypto_ns_interface_testsuite.c" "${CRYPTO_TEST_DIR}/crypto_tests_common.c") + #Enable the test cases by default + if (NOT DEFINED TFM_CRYPTO_TEST_ALG_CBC) + set(TFM_CRYPTO_TEST_ALG_CBC ON) + endif() + if (NOT DEFINED TFM_CRYPTO_TEST_ALG_CCM) + set(TFM_CRYPTO_TEST_ALG_CCM ON) + endif() + if (NOT DEFINED TFM_CRYPTO_TEST_ALG_CFB) + set(TFM_CRYPTO_TEST_ALG_CFB ON) + endif() + if (NOT DEFINED TFM_CRYPTO_TEST_ALG_CTR) + set(TFM_CRYPTO_TEST_ALG_CTR ON) + endif() + if (NOT DEFINED TFM_CRYPTO_TEST_ALG_GCM) + set(TFM_CRYPTO_TEST_ALG_GCM ON) + endif() + if (NOT DEFINED TFM_CRYPTO_TEST_ALG_SHA_512) + set(TFM_CRYPTO_TEST_ALG_SHA_512 ON) + endif() + + if (TFM_CRYPTO_TEST_ALG_CBC) + add_definitions(-DTFM_CRYPTO_TEST_ALG_CBC) + endif() + if (TFM_CRYPTO_TEST_ALG_CCM) + add_definitions(-DTFM_CRYPTO_TEST_ALG_CCM) + endif() + if (TFM_CRYPTO_TEST_ALG_CFB) + add_definitions(-DTFM_CRYPTO_TEST_ALG_CFB) + endif() + if (TFM_CRYPTO_TEST_ALG_CTR) + add_definitions(-DTFM_CRYPTO_TEST_ALG_CTR) + endif() + if (TFM_CRYPTO_TEST_ALG_GCM) + add_definitions(-DTFM_CRYPTO_TEST_ALG_GCM) + endif() + if (TFM_CRYPTO_TEST_ALG_SHA_512) + add_definitions(-DTFM_CRYPTO_TEST_ALG_SHA_512) + endif() + #Setting include directories embedded_include_directories(PATH ${TFM_ROOT_DIR} ABSOLUTE) embedded_include_directories(PATH ${TFM_ROOT_DIR}/interface/include ABSOLUTE) diff --git a/test/suites/crypto/non_secure/crypto_ns_interface_testsuite.c b/test/suites/crypto/non_secure/crypto_ns_interface_testsuite.c index fa15df1c8b..2611952d5d 100644 --- a/test/suites/crypto/non_secure/crypto_ns_interface_testsuite.c +++ b/test/suites/crypto/non_secure/crypto_ns_interface_testsuite.c @@ -11,73 +11,117 @@ /* List of tests */ static void tfm_crypto_test_6001(struct test_result_t *ret); +#ifdef TFM_CRYPTO_TEST_ALG_CBC static void tfm_crypto_test_6002(struct test_result_t *ret); +#endif /* TFM_CRYPTO_TEST_ALG_CBC */ +#ifdef TFM_CRYPTO_TEST_ALG_CFB static void tfm_crypto_test_6003(struct test_result_t *ret); +#endif /* TFM_CRYPTO_TEST_ALG_CFB */ +#ifdef TFM_CRYPTO_TEST_ALG_CTR static void tfm_crypto_test_6005(struct test_result_t *ret); +#endif /* TFM_CRYPTO_TEST_ALG_CTR */ +#ifdef TFM_CRYPTO_TEST_ALG_GCM static void tfm_crypto_test_6007(struct test_result_t *ret); +#endif /* TFM_CRYPTO_TEST_ALG_GCM */ +#ifdef TFM_CRYPTO_TEST_ALG_CBC static void tfm_crypto_test_6008(struct test_result_t *ret); +#endif /* TFM_CRYPTO_TEST_ALG_CBC */ +#ifdef TFM_CRYPTO_TEST_ALG_CFB static void tfm_crypto_test_6009(struct test_result_t *ret); +#endif /* TFM_CRYPTO_TEST_ALG_CFB */ static void tfm_crypto_test_6010(struct test_result_t *ret); static void tfm_crypto_test_6011(struct test_result_t *ret); static void tfm_crypto_test_6012(struct test_result_t *ret); +#ifdef TFM_CRYPTO_TEST_ALG_SHA_512 static void tfm_crypto_test_6013(struct test_result_t *ret); static void tfm_crypto_test_6014(struct test_result_t *ret); +#endif /* TFM_CRYPTO_TEST_ALG_SHA_512 */ static void tfm_crypto_test_6019(struct test_result_t *ret); static void tfm_crypto_test_6020(struct test_result_t *ret); +#ifdef TFM_CRYPTO_TEST_ALG_SHA_512 static void tfm_crypto_test_6021(struct test_result_t *ret); static void tfm_crypto_test_6022(struct test_result_t *ret); +#endif /* TFM_CRYPTO_TEST_ALG_SHA_512 */ static void tfm_crypto_test_6024(struct test_result_t *ret); +#ifdef TFM_CRYPTO_TEST_ALG_CCM static void tfm_crypto_test_6030(struct test_result_t *ret); +#endif /* TFM_CRYPTO_TEST_ALG_CCM */ +#ifdef TFM_CRYPTO_TEST_ALG_GCM static void tfm_crypto_test_6031(struct test_result_t *ret); +#endif /* TFM_CRYPTO_TEST_ALG_GCM */ +#ifdef TFM_CRYPTO_TEST_ALG_CBC static void tfm_crypto_test_6032(struct test_result_t *ret); static void tfm_crypto_test_6033(struct test_result_t *ret); static void tfm_crypto_test_6034(struct test_result_t *ret); +#endif /* TFM_CRYPTO_TEST_ALG_CBC */ static struct test_t crypto_tests[] = { {&tfm_crypto_test_6001, "TFM_CRYPTO_TEST_6001", "Non Secure Key management interface", {TEST_PASSED} }, +#ifdef TFM_CRYPTO_TEST_ALG_CBC {&tfm_crypto_test_6002, "TFM_CRYPTO_TEST_6002", "Non Secure Symmetric encryption (AES-128-CBC) interface", {TEST_PASSED} }, +#endif /* TFM_CRYPTO_TEST_ALG_CBC */ +#ifdef TFM_CRYPTO_TEST_ALG_CFB {&tfm_crypto_test_6003, "TFM_CRYPTO_TEST_6003", "Non Secure Symmetric encryption (AES-128-CFB) interface", {TEST_PASSED} }, +#endif /* TFM_CRYPTO_TEST_ALG_CFB */ +#ifdef TFM_CRYPTO_TEST_ALG_CTR {&tfm_crypto_test_6005, "TFM_CRYPTO_TEST_6005", "Non Secure Symmetric encryption (AES-128-CTR) interface", {TEST_PASSED} }, +#endif /* TFM_CRYPTO_TEST_ALG_CTR */ +#ifdef TFM_CRYPTO_TEST_ALG_GCM {&tfm_crypto_test_6007, "TFM_CRYPTO_TEST_6007", "Non Secure Symmetric encryption invalid cipher (AES-128-GCM)", {TEST_PASSED} }, +#endif /* TFM_CRYPTO_TEST_ALG_GCM */ +#ifdef TFM_CRYPTO_TEST_ALG_CBC {&tfm_crypto_test_6008, "TFM_CRYPTO_TEST_6008", "Non Secure Symmetric encryption invalid cipher (AES-152-CBC)", {TEST_PASSED} }, +#endif /* TFM_CRYPTO_TEST_ALG_CBC */ +#ifdef TFM_CRYPTO_TEST_ALG_CFB {&tfm_crypto_test_6009, "TFM_CRYPTO_TEST_6009", "Non Secure Symmetric encryption invalid cipher (HMAC-128-CFB)", {TEST_PASSED} }, +#endif /* TFM_CRYPTO_TEST_ALG_CFB */ {&tfm_crypto_test_6010, "TFM_CRYPTO_TEST_6010", "Non Secure Unsupported Hash (SHA-1) interface", {TEST_PASSED} }, {&tfm_crypto_test_6011, "TFM_CRYPTO_TEST_6011", "Non Secure Hash (SHA-224) interface", {TEST_PASSED} }, {&tfm_crypto_test_6012, "TFM_CRYPTO_TEST_6012", "Non Secure Hash (SHA-256) interface", {TEST_PASSED} }, +#ifdef TFM_CRYPTO_TEST_ALG_SHA_512 {&tfm_crypto_test_6013, "TFM_CRYPTO_TEST_6013", "Non Secure Hash (SHA-384) interface", {TEST_PASSED} }, {&tfm_crypto_test_6014, "TFM_CRYPTO_TEST_6014", "Non Secure Hash (SHA-512) interface", {TEST_PASSED} }, +#endif /* TFM_CRYPTO_TEST_ALG_SHA_512 */ {&tfm_crypto_test_6019, "TFM_CRYPTO_TEST_6019", "Non Secure Unsupported HMAC (SHA-1) interface", {TEST_PASSED} }, {&tfm_crypto_test_6020, "TFM_CRYPTO_TEST_6020", "Non Secure HMAC (SHA-256) interface", {TEST_PASSED} }, +#ifdef TFM_CRYPTO_TEST_ALG_SHA_512 {&tfm_crypto_test_6021, "TFM_CRYPTO_TEST_6021", "Non Secure HMAC (SHA-384) interface", {TEST_PASSED} }, {&tfm_crypto_test_6022, "TFM_CRYPTO_TEST_6022", "Non Secure HMAC (SHA-512) interface", {TEST_PASSED} }, +#endif /* TFM_CRYPTO_TEST_ALG_SHA_512 */ {&tfm_crypto_test_6024, "TFM_CRYPTO_TEST_6024", "Non Secure HMAC with long key (SHA-224) interface", {TEST_PASSED} }, +#ifdef TFM_CRYPTO_TEST_ALG_CCM {&tfm_crypto_test_6030, "TFM_CRYPTO_TEST_6030", "Non Secure AEAD (AES-128-CCM) interface", {TEST_PASSED} }, +#endif /* TFM_CRYPTO_TEST_ALG_CCM */ +#ifdef TFM_CRYPTO_TEST_ALG_GCM {&tfm_crypto_test_6031, "TFM_CRYPTO_TEST_6031", "Non Secure AEAD (AES-128-GCM) interface", {TEST_PASSED} }, +#endif /* TFM_CRYPTO_TEST_ALG_GCM */ +#ifdef TFM_CRYPTO_TEST_ALG_CBC {&tfm_crypto_test_6032, "TFM_CRYPTO_TEST_6032", "Non Secure key policy interface", {TEST_PASSED} }, {&tfm_crypto_test_6033, "TFM_CRYPTO_TEST_6033", "Non Secure key policy check permissions", {TEST_PASSED} }, {&tfm_crypto_test_6034, "TFM_CRYPTO_TEST_6034", "Non Secure persistent key interface", {TEST_PASSED} }, +#endif /* TFM_CRYPTO_TEST_ALG_CBC */ }; void register_testsuite_ns_crypto_interface(struct test_suite_t *p_test_suite) @@ -102,37 +146,49 @@ static void tfm_crypto_test_6001(struct test_result_t *ret) psa_key_interface_test(PSA_KEY_TYPE_AES, ret); } +#ifdef TFM_CRYPTO_TEST_ALG_CBC static void tfm_crypto_test_6002(struct test_result_t *ret) { psa_cipher_test(PSA_KEY_TYPE_AES, PSA_ALG_CBC_NO_PADDING, ret); } +#endif /* TFM_CRYPTO_TEST_ALG_CBC */ +#ifdef TFM_CRYPTO_TEST_ALG_CFB static void tfm_crypto_test_6003(struct test_result_t *ret) { psa_cipher_test(PSA_KEY_TYPE_AES, PSA_ALG_CFB, ret); } +#endif /* TFM_CRYPTO_TEST_ALG_CFB */ +#ifdef TFM_CRYPTO_TEST_ALG_CTR static void tfm_crypto_test_6005(struct test_result_t *ret) { psa_cipher_test(PSA_KEY_TYPE_AES, PSA_ALG_CTR, ret); } +#endif /* TFM_CRYPTO_TEST_ALG_CTR */ +#ifdef TFM_CRYPTO_TEST_ALG_GCM static void tfm_crypto_test_6007(struct test_result_t *ret) { /* GCM is an AEAD mode */ psa_invalid_cipher_test(PSA_KEY_TYPE_AES, PSA_ALG_GCM, 16, ret); } +#endif /* TFM_CRYPTO_TEST_ALG_GCM */ +#ifdef TFM_CRYPTO_TEST_ALG_CBC static void tfm_crypto_test_6008(struct test_result_t *ret) { psa_invalid_key_length_test(ret); } +#endif /* TFM_CRYPTO_TEST_ALG_CBC */ +#ifdef TFM_CRYPTO_TEST_ALG_CFB static void tfm_crypto_test_6009(struct test_result_t *ret) { /* HMAC is not a block cipher */ psa_invalid_cipher_test(PSA_KEY_TYPE_HMAC, PSA_ALG_CFB, 16, ret); } +#endif /* TFM_CRYPTO_TEST_ALG_CFB */ static void tfm_crypto_test_6010(struct test_result_t *ret) { @@ -149,6 +205,7 @@ static void tfm_crypto_test_6012(struct test_result_t *ret) psa_hash_test(PSA_ALG_SHA_256, ret); } +#ifdef TFM_CRYPTO_TEST_ALG_SHA_512 static void tfm_crypto_test_6013(struct test_result_t *ret) { psa_hash_test(PSA_ALG_SHA_384, ret); @@ -158,6 +215,7 @@ static void tfm_crypto_test_6014(struct test_result_t *ret) { psa_hash_test(PSA_ALG_SHA_512, ret); } +#endif /* TFM_CRYPTO_TEST_ALG_SHA_512 */ static void tfm_crypto_test_6019(struct test_result_t *ret) { @@ -170,6 +228,7 @@ static void tfm_crypto_test_6020(struct test_result_t *ret) psa_mac_test(PSA_ALG_HMAC(PSA_ALG_SHA_256), 0, ret); } +#ifdef TFM_CRYPTO_TEST_ALG_SHA_512 static void tfm_crypto_test_6021(struct test_result_t *ret) { psa_mac_test(PSA_ALG_HMAC(PSA_ALG_SHA_384), 0, ret); @@ -179,21 +238,28 @@ static void tfm_crypto_test_6022(struct test_result_t *ret) { psa_mac_test(PSA_ALG_HMAC(PSA_ALG_SHA_512), 0, ret); } +#endif /* TFM_CRYPTO_TEST_ALG_SHA_512 */ + static void tfm_crypto_test_6024(struct test_result_t *ret) { psa_mac_test(PSA_ALG_HMAC(PSA_ALG_SHA_224), 1, ret); } +#ifdef TFM_CRYPTO_TEST_ALG_CCM static void tfm_crypto_test_6030(struct test_result_t *ret) { psa_aead_test(PSA_KEY_TYPE_AES, PSA_ALG_CCM, ret); } +#endif /* TFM_CRYPTO_TEST_ALG_CCM */ +#ifdef TFM_CRYPTO_TEST_ALG_GCM static void tfm_crypto_test_6031(struct test_result_t *ret) { psa_aead_test(PSA_KEY_TYPE_AES, PSA_ALG_GCM, ret); } +#endif /* TFM_CRYPTO_TEST_ALG_GCM */ +#ifdef TFM_CRYPTO_TEST_ALG_CBC static void tfm_crypto_test_6032(struct test_result_t *ret) { psa_policy_key_interface_test(ret); @@ -208,3 +274,4 @@ static void tfm_crypto_test_6034(struct test_result_t *ret) { psa_persistent_key_test(1, ret); } +#endif /* TFM_CRYPTO_TEST_ALG_CBC */ diff --git a/test/suites/crypto/secure/crypto_sec_interface_testsuite.c b/test/suites/crypto/secure/crypto_sec_interface_testsuite.c index 0b1279f5e5..6803d92b23 100644 --- a/test/suites/crypto/secure/crypto_sec_interface_testsuite.c +++ b/test/suites/crypto/secure/crypto_sec_interface_testsuite.c @@ -12,74 +12,118 @@ /* List of tests */ static void tfm_crypto_test_5001(struct test_result_t *ret); +#ifdef TFM_CRYPTO_TEST_ALG_CBC static void tfm_crypto_test_5002(struct test_result_t *ret); +#endif /* TFM_CRYPTO_TEST_ALG_CBC */ +#ifdef TFM_CRYPTO_TEST_ALG_CFB static void tfm_crypto_test_5003(struct test_result_t *ret); +#endif /* TFM_CRYPTO_TEST_ALG_CFB */ +#ifdef TFM_CRYPTO_TEST_ALG_CTR static void tfm_crypto_test_5005(struct test_result_t *ret); +#endif /* TFM_CRYPTO_TEST_ALG_CTR */ +#ifdef TFM_CRYPTO_TEST_ALG_GCM static void tfm_crypto_test_5007(struct test_result_t *ret); +#endif /* TFM_CRYPTO_TEST_ALG_GCM */ +#ifdef TFM_CRYPTO_TEST_ALG_CBC static void tfm_crypto_test_5008(struct test_result_t *ret); +#endif /* TFM_CRYPTO_TEST_ALG_CBC */ +#ifdef TFM_CRYPTO_TEST_ALG_CFB static void tfm_crypto_test_5009(struct test_result_t *ret); +#endif /* TFM_CRYPTO_TEST_ALG_CFB */ static void tfm_crypto_test_5010(struct test_result_t *ret); static void tfm_crypto_test_5011(struct test_result_t *ret); static void tfm_crypto_test_5012(struct test_result_t *ret); +#ifdef TFM_CRYPTO_TEST_ALG_SHA_512 static void tfm_crypto_test_5013(struct test_result_t *ret); static void tfm_crypto_test_5014(struct test_result_t *ret); +#endif /* TFM_CRYPTO_TEST_ALG_SHA_512 */ static void tfm_crypto_test_5019(struct test_result_t *ret); static void tfm_crypto_test_5020(struct test_result_t *ret); +#ifdef TFM_CRYPTO_TEST_ALG_SHA_512 static void tfm_crypto_test_5021(struct test_result_t *ret); static void tfm_crypto_test_5022(struct test_result_t *ret); +#endif /* TFM_CRYPTO_TEST_ALG_SHA_512 */ static void tfm_crypto_test_5024(struct test_result_t *ret); +#ifdef TFM_CRYPTO_TEST_ALG_CCM static void tfm_crypto_test_5030(struct test_result_t *ret); +#endif /* TFM_CRYPTO_TEST_ALG_CCM */ +#ifdef TFM_CRYPTO_TEST_ALG_GCM static void tfm_crypto_test_5031(struct test_result_t *ret); +#endif /* TFM_CRYPTO_TEST_ALG_GCM */ +#ifdef TFM_CRYPTO_TEST_ALG_CBC static void tfm_crypto_test_5032(struct test_result_t *ret); static void tfm_crypto_test_5033(struct test_result_t *ret); static void tfm_crypto_test_5034(struct test_result_t *ret); +#endif /* TFM_CRYPTO_TEST_ALG_CBC */ static void tfm_crypto_test_5035(struct test_result_t *ret); static struct test_t crypto_tests[] = { {&tfm_crypto_test_5001, "TFM_CRYPTO_TEST_5001", "Secure Key management interface", {TEST_PASSED} }, +#ifdef TFM_CRYPTO_TEST_ALG_CBC {&tfm_crypto_test_5002, "TFM_CRYPTO_TEST_5002", "Secure Symmetric encryption (AES-128-CBC) interface", {TEST_PASSED} }, +#endif /* TFM_CRYPTO_TEST_ALG_CBC */ +#ifdef TFM_CRYPTO_TEST_ALG_CFB {&tfm_crypto_test_5003, "TFM_CRYPTO_TEST_5003", "Secure Symmetric encryption (AES-128-CFB) interface", {TEST_PASSED} }, +#endif /* TFM_CRYPTO_TEST_ALG_CFB */ +#ifdef TFM_CRYPTO_TEST_ALG_CTR {&tfm_crypto_test_5005, "TFM_CRYPTO_TEST_5005", "Secure Symmetric encryption (AES-128-CTR) interface", {TEST_PASSED} }, +#endif /* TFM_CRYPTO_TEST_ALG_CTR */ +#ifdef TFM_CRYPTO_TEST_ALG_GCM {&tfm_crypto_test_5007, "TFM_CRYPTO_TEST_5007", "Secure Symmetric encryption invalid cipher (AES-128-GCM)", {TEST_PASSED} }, +#endif /* TFM_CRYPTO_TEST_ALG_GCM */ +#ifdef TFM_CRYPTO_TEST_ALG_CBC {&tfm_crypto_test_5008, "TFM_CRYPTO_TEST_5008", "Secure Symmetric encryption invalid cipher (AES-152-CBC)", {TEST_PASSED} }, +#endif /* TFM_CRYPTO_TEST_ALG_CBC */ +#ifdef TFM_CRYPTO_TEST_ALG_CFB {&tfm_crypto_test_5009, "TFM_CRYPTO_TEST_5009", "Secure Symmetric encryption invalid cipher (HMAC-128-CFB)", {TEST_PASSED} }, +#endif /* TFM_CRYPTO_TEST_ALG_CFB */ {&tfm_crypto_test_5010, "TFM_CRYPTO_TEST_5010", "Secure Unsupported Hash (SHA-1) interface", {TEST_PASSED} }, {&tfm_crypto_test_5011, "TFM_CRYPTO_TEST_5011", "Secure Hash (SHA-224) interface", {TEST_PASSED} }, {&tfm_crypto_test_5012, "TFM_CRYPTO_TEST_5012", "Secure Hash (SHA-256) interface", {TEST_PASSED} }, +#ifdef TFM_CRYPTO_TEST_ALG_SHA_512 {&tfm_crypto_test_5013, "TFM_CRYPTO_TEST_5013", "Secure Hash (SHA-384) interface", {TEST_PASSED} }, {&tfm_crypto_test_5014, "TFM_CRYPTO_TEST_5014", "Secure Hash (SHA-512) interface", {TEST_PASSED} }, +#endif /* TFM_CRYPTO_TEST_ALG_SHA_512 */ {&tfm_crypto_test_5019, "TFM_CRYPTO_TEST_5019", "Secure Unsupported HMAC (SHA-1) interface", {TEST_PASSED} }, {&tfm_crypto_test_5020, "TFM_CRYPTO_TEST_5020", "Secure HMAC (SHA-256) interface", {TEST_PASSED} }, +#ifdef TFM_CRYPTO_TEST_ALG_SHA_512 {&tfm_crypto_test_5021, "TFM_CRYPTO_TEST_5021", "Secure HMAC (SHA-384) interface", {TEST_PASSED} }, {&tfm_crypto_test_5022, "TFM_CRYPTO_TEST_5022", "Secure HMAC (SHA-512) interface", {TEST_PASSED} }, +#endif /* TFM_CRYPTO_TEST_ALG_SHA_512 */ {&tfm_crypto_test_5024, "TFM_CRYPTO_TEST_5024", "Secure HMAC with long key (SHA-224) interface", {TEST_PASSED} }, +#ifdef TFM_CRYPTO_TEST_ALG_CCM {&tfm_crypto_test_5030, "TFM_CRYPTO_TEST_5030", "Secure AEAD (AES-128-CCM) interface", {TEST_PASSED} }, +#endif /* TFM_CRYPTO_TEST_ALG_CCM */ +#ifdef TFM_CRYPTO_TEST_ALG_GCM {&tfm_crypto_test_5031, "TFM_CRYPTO_TEST_5031", "Secure AEAD (AES-128-GCM) interface", {TEST_PASSED} }, +#endif /* TFM_CRYPTO_TEST_ALG_GCM */ +#ifdef TFM_CRYPTO_TEST_ALG_CBC {&tfm_crypto_test_5032, "TFM_CRYPTO_TEST_5032", "Secure key policy interface", {TEST_PASSED} }, {&tfm_crypto_test_5033, "TFM_CRYPTO_TEST_5033", "Secure key policy check permissions", {TEST_PASSED} }, {&tfm_crypto_test_5034, "TFM_CRYPTO_TEST_5034", "Secure persistent key interface", {TEST_PASSED} }, +#endif /* TFM_CRYPTO_TEST_ALG_CBC */ {&tfm_crypto_test_5035, "TFM_CRYPTO_TEST_5035", "Key access control", {TEST_PASSED} }, }; @@ -106,37 +150,49 @@ static void tfm_crypto_test_5001(struct test_result_t *ret) psa_key_interface_test(PSA_KEY_TYPE_AES, ret); } +#ifdef TFM_CRYPTO_TEST_ALG_CBC static void tfm_crypto_test_5002(struct test_result_t *ret) { psa_cipher_test(PSA_KEY_TYPE_AES, PSA_ALG_CBC_NO_PADDING, ret); } +#endif /* TFM_CRYPTO_TEST_ALG_CBC */ +#ifdef TFM_CRYPTO_TEST_ALG_CFB static void tfm_crypto_test_5003(struct test_result_t *ret) { psa_cipher_test(PSA_KEY_TYPE_AES, PSA_ALG_CFB, ret); } +#endif /* TFM_CRYPTO_TEST_ALG_CFB */ +#ifdef TFM_CRYPTO_TEST_ALG_CTR static void tfm_crypto_test_5005(struct test_result_t *ret) { psa_cipher_test(PSA_KEY_TYPE_AES, PSA_ALG_CTR, ret); } +#endif /* TFM_CRYPTO_TEST_ALG_CTR */ +#ifdef TFM_CRYPTO_TEST_ALG_GCM static void tfm_crypto_test_5007(struct test_result_t *ret) { /* GCM is an AEAD mode */ psa_invalid_cipher_test(PSA_KEY_TYPE_AES, PSA_ALG_GCM, 16, ret); } +#endif /* TFM_CRYPTO_TEST_ALG_GCM */ +#ifdef TFM_CRYPTO_TEST_ALG_CBC static void tfm_crypto_test_5008(struct test_result_t *ret) { psa_invalid_key_length_test(ret); } +#endif /* TFM_CRYPTO_TEST_ALG_CBC */ +#ifdef TFM_CRYPTO_TEST_ALG_CFB static void tfm_crypto_test_5009(struct test_result_t *ret) { /* HMAC is not a block cipher */ psa_invalid_cipher_test(PSA_KEY_TYPE_HMAC, PSA_ALG_CFB, 16, ret); } +#endif /* TFM_CRYPTO_TEST_ALG_CFB */ static void tfm_crypto_test_5010(struct test_result_t *ret) { @@ -153,6 +209,7 @@ static void tfm_crypto_test_5012(struct test_result_t *ret) psa_hash_test(PSA_ALG_SHA_256, ret); } +#ifdef TFM_CRYPTO_TEST_ALG_SHA_512 static void tfm_crypto_test_5013(struct test_result_t *ret) { psa_hash_test(PSA_ALG_SHA_384, ret); @@ -162,6 +219,7 @@ static void tfm_crypto_test_5014(struct test_result_t *ret) { psa_hash_test(PSA_ALG_SHA_512, ret); } +#endif /* TFM_CRYPTO_TEST_ALG_SHA_512 */ static void tfm_crypto_test_5019(struct test_result_t *ret) { @@ -174,6 +232,7 @@ static void tfm_crypto_test_5020(struct test_result_t *ret) psa_mac_test(PSA_ALG_HMAC(PSA_ALG_SHA_256), 0, ret); } +#ifdef TFM_CRYPTO_TEST_ALG_SHA_512 static void tfm_crypto_test_5021(struct test_result_t *ret) { psa_mac_test(PSA_ALG_HMAC(PSA_ALG_SHA_384), 0, ret); @@ -183,22 +242,28 @@ static void tfm_crypto_test_5022(struct test_result_t *ret) { psa_mac_test(PSA_ALG_HMAC(PSA_ALG_SHA_512), 0, ret); } +#endif /* TFM_CRYPTO_TEST_ALG_SHA_512 */ static void tfm_crypto_test_5024(struct test_result_t *ret) { psa_mac_test(PSA_ALG_HMAC(PSA_ALG_SHA_224), 1, ret); } +#ifdef TFM_CRYPTO_TEST_ALG_CCM static void tfm_crypto_test_5030(struct test_result_t *ret) { psa_aead_test(PSA_KEY_TYPE_AES, PSA_ALG_CCM, ret); } +#endif /* TFM_CRYPTO_TEST_ALG_CCM */ +#ifdef TFM_CRYPTO_TEST_ALG_GCM static void tfm_crypto_test_5031(struct test_result_t *ret) { psa_aead_test(PSA_KEY_TYPE_AES, PSA_ALG_GCM, ret); } +#endif /* TFM_CRYPTO_TEST_ALG_GCM */ +#ifdef TFM_CRYPTO_TEST_ALG_CBC static void tfm_crypto_test_5032(struct test_result_t *ret) { psa_policy_key_interface_test(ret); @@ -213,6 +278,7 @@ static void tfm_crypto_test_5034(struct test_result_t *ret) { psa_persistent_key_test(1, ret); } +#endif /* TFM_CRYPTO_TEST_ALG_CBC */ /** * \brief Tests key access control based on partition ID |