aboutsummaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorDavid Hu <david.hu@arm.com>2020-04-27 13:18:10 +0800
committerDavid Hu <david.hu@arm.com>2020-05-29 02:17:07 +0000
commit0d4047702fd67a6be09a8ae98999b80f6ab55faa (patch)
treea8c3a6889073b0bfe027392be0b514545f035577 /test
parentbc88eb463511eafa18d326d79af94627470f0e9a (diff)
downloadtrusted-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.inc41
-rw-r--r--test/suites/crypto/non_secure/crypto_ns_interface_testsuite.c67
-rw-r--r--test/suites/crypto/secure/crypto_sec_interface_testsuite.c66
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