Create memory poisoning wrapper for cipher encrypt
Use the preprocessor to wrap psa_cipher_encrypt in a wrapper that
poisons the input and output buffers.
Signed-off-by: David Horstmann <david.horstmann@arm.com>
diff --git a/tests/include/test/psa_memory_poisoning_wrappers.h b/tests/include/test/psa_memory_poisoning_wrappers.h
new file mode 100644
index 0000000..08234b4
--- /dev/null
+++ b/tests/include/test/psa_memory_poisoning_wrappers.h
@@ -0,0 +1,27 @@
+#include "psa/crypto.h"
+
+#include "test/memory.h"
+
+psa_status_t wrap_psa_cipher_encrypt(mbedtls_svc_key_id_t key,
+ psa_algorithm_t alg,
+ const uint8_t *input,
+ size_t input_length,
+ uint8_t *output,
+ size_t output_size,
+ size_t *output_length)
+{
+ MBEDTLS_TEST_MEMORY_POISON(input, input_length);
+ MBEDTLS_TEST_MEMORY_POISON(output, output_size);
+ psa_status_t status = psa_cipher_encrypt(key,
+ alg,
+ input,
+ input_length,
+ output,
+ output_size,
+ output_length);
+ MBEDTLS_TEST_MEMORY_UNPOISON(input, input_length);
+ MBEDTLS_TEST_MEMORY_UNPOISON(output, output_size);
+ return status;
+}
+
+#define psa_cipher_encrypt(...) wrap_psa_cipher_encrypt(__VA_ARGS__)
diff --git a/tests/suites/test_suite_psa_crypto.function b/tests/suites/test_suite_psa_crypto.function
index 1962f7b..a024c1e 100644
--- a/tests/suites/test_suite_psa_crypto.function
+++ b/tests/suites/test_suite_psa_crypto.function
@@ -25,6 +25,10 @@
#define TEST_DRIVER_LOCATION 0x7fffff
#endif
+#if defined(MBEDTLS_TEST_HOOKS)
+#include "test/psa_memory_poisoning_wrappers.h"
+#endif
+
/* If this comes up, it's a bug in the test code or in the test data. */
#define UNUSED 0xdeadbeef