From 24c8db8f0307577b07390a70779d08088fa7559c Mon Sep 17 00:00:00 2001 From: Rohan Luchmun Date: Mon, 28 Sep 2026 10:27:43 +0100 Subject: [PATCH] Added MLDSA guards and MLDSA key-pair test generator dependencies Signed-off-by: Rohan Luchmun --- tests/src/psa_exercise_key.c | 2 ++ util/mbedtls_maintainer/mldsa_test_generator.py | 14 +++++++++++++- 2 files changed, 15 insertions(+), 1 deletion(-) diff --git a/tests/src/psa_exercise_key.c b/tests/src/psa_exercise_key.c index 81f07186f..01a0023d2 100644 --- a/tests/src/psa_exercise_key.c +++ b/tests/src/psa_exercise_key.c @@ -1125,12 +1125,14 @@ int mbedtls_test_psa_exported_key_sanity_check( PSA_EXPORT_PUBLIC_KEY_OUTPUT_SIZE(type, bits)); TEST_ASSERT(exported_length <= PSA_EXPORT_PUBLIC_KEY_MAX_SIZE); +#if defined(PSA_KEY_TYPE_IS_ML_DSA) } else if (PSA_KEY_TYPE_IS_ML_DSA(type)) { TEST_ASSERT(exported_length == PSA_EXPORT_PUBLIC_KEY_OUTPUT_SIZE(type, bits)); TEST_ASSERT(exported_length <= PSA_EXPORT_PUBLIC_KEY_MAX_SIZE); +#endif } else { (void) exported; TEST_FAIL("Sanity check not implemented for this key type"); diff --git a/util/mbedtls_maintainer/mldsa_test_generator.py b/util/mbedtls_maintainer/mldsa_test_generator.py index 09308fc58..a5d1d33b5 100644 --- a/util/mbedtls_maintainer/mldsa_test_generator.py +++ b/util/mbedtls_maintainer/mldsa_test_generator.py @@ -359,7 +359,7 @@ class DriverGenerator(Generator): more_descr = ', ' + more_descr tc = test_case.TestCase() tc.set_function(self.function(function + '_multipart', key.kl)) - tc.set_dependencies([f'TF_PSA_CRYPTO_PQCP_MLDSA_{key.kl}_ENABLED']) + tc.set_dependencies(self.multipart_dependencies(key, type_is_pair)) if type_is_pair: key_bytes = key.private_representation(pkf_described[0]) else: @@ -413,9 +413,21 @@ class DriverGenerator(Generator): for kl in sorted(KEYS.keys()): yield from self.gen_multipart(KEYS[kl][0]) + def multipart_dependencies(self, key: Key, + _type_is_pair: bool) -> List[str]: + return [f'TF_PSA_CRYPTO_PQCP_MLDSA_{key.kl}_ENABLED'] + class DispatchGenerator(DriverGenerator): """Test the driver dispatch layer.""" @classmethod def function(cls, func: str, _kl: int) -> str: return func + + def multipart_dependencies(self, key: Key, + type_is_pair: bool) -> List[str]: + dependencies = super().multipart_dependencies(key, type_is_pair) + if type_is_pair: + dependencies.append('PSA_WANT_KEY_TYPE_ML_DSA_KEY_PAIR') + + return dependencies