psa: Fix builds without MBEDTLS_PLATFORM_C
When `MBEDTLS_PLATFORM_C` is not enabled, our PSA Crypto implementation
depends on the standard C library for functions like snprintf() and
exit(). However, our implementation was not including the proper header
files nor redefining all `mbedtls_*` symbols properly to ensure
successful builds without MBEDTLS_PLATFORM_C. Add the necessary header
files and macro definitions to our PSA Crypto implementation.
diff --git a/library/psa_crypto_storage.c b/library/psa_crypto_storage.c
index 687269b..b4e4076 100644
--- a/library/psa_crypto_storage.c
+++ b/library/psa_crypto_storage.c
@@ -38,6 +38,7 @@
#if defined(MBEDTLS_PLATFORM_C)
#include "mbedtls/platform.h"
#else
+#include <stdlib.h>
#define mbedtls_calloc calloc
#define mbedtls_free free
#endif
diff --git a/library/psa_crypto_storage_file.c b/library/psa_crypto_storage_file.c
index 87420be..d7c3362 100644
--- a/library/psa_crypto_storage_file.c
+++ b/library/psa_crypto_storage_file.c
@@ -36,6 +36,7 @@
#if defined(MBEDTLS_PLATFORM_C)
#include "mbedtls/platform.h"
#else
+#include <stdio.h>
#define mbedtls_snprintf snprintf
#endif
diff --git a/programs/psa/crypto_examples.c b/programs/psa/crypto_examples.c
index d7a667b..9947a70 100644
--- a/programs/psa/crypto_examples.c
+++ b/programs/psa/crypto_examples.c
@@ -5,7 +5,10 @@
#include "mbedtls/platform.h"
#else
#include <stdio.h>
+#include <stdlib.h>
+#define MBEDTLS_EXIT_FAILURE EXIT_FAILURE
#define mbedtls_printf printf
+#define mbedtls_exit exit
#endif
#define ASSERT( predicate ) \
diff --git a/programs/psa/key_ladder_demo.c b/programs/psa/key_ladder_demo.c
index 0943bf5..c9d7676 100644
--- a/programs/psa/key_ladder_demo.c
+++ b/programs/psa/key_ladder_demo.c
@@ -66,6 +66,7 @@
#define mbedtls_calloc calloc
#define mbedtls_free free
#define mbedtls_printf printf
+#define mbedtls_exit exit
#endif
#include <stdio.h>
#include <string.h>