38 #ifndef MBEDTLS_PLATFORM_H 39 #define MBEDTLS_PLATFORM_H 41 #if !defined(MBEDTLS_CONFIG_FILE) 44 #include MBEDTLS_CONFIG_FILE 47 #if defined(MBEDTLS_HAVE_TIME) 52 #define MBEDTLS_ERR_PLATFORM_HW_ACCEL_FAILED -0x0070 54 #define MBEDTLS_ERR_PLATFORM_FEATURE_UNSUPPORTED -0x0072 72 #if defined(__MINGW32__) || (defined(_MSC_VER) && _MSC_VER <= 1900) 73 #define MBEDTLS_PLATFORM_HAS_NON_CONFORMING_SNPRINTF 74 #define MBEDTLS_PLATFORM_HAS_NON_CONFORMING_VSNPRINTF 77 #if !defined(MBEDTLS_PLATFORM_NO_STD_FUNCTIONS) 80 #if defined(MBEDTLS_HAVE_TIME) 83 #if !defined(MBEDTLS_PLATFORM_STD_SNPRINTF) 84 #if defined(MBEDTLS_PLATFORM_HAS_NON_CONFORMING_SNPRINTF) 85 #define MBEDTLS_PLATFORM_STD_SNPRINTF mbedtls_platform_win32_snprintf 87 #define MBEDTLS_PLATFORM_STD_SNPRINTF snprintf 90 #if !defined(MBEDTLS_PLATFORM_STD_VSNPRINTF) 91 #if defined(MBEDTLS_PLATFORM_HAS_NON_CONFORMING_VSNPRINTF) 92 #define MBEDTLS_PLATFORM_STD_VSNPRINTF mbedtls_platform_win32_vsnprintf 94 #define MBEDTLS_PLATFORM_STD_VSNPRINTF vsnprintf 97 #if !defined(MBEDTLS_PLATFORM_STD_PRINTF) 98 #define MBEDTLS_PLATFORM_STD_PRINTF printf 100 #if !defined(MBEDTLS_PLATFORM_STD_FPRINTF) 101 #define MBEDTLS_PLATFORM_STD_FPRINTF fprintf 103 #if !defined(MBEDTLS_PLATFORM_STD_CALLOC) 104 #define MBEDTLS_PLATFORM_STD_CALLOC calloc 106 #if !defined(MBEDTLS_PLATFORM_STD_FREE) 107 #define MBEDTLS_PLATFORM_STD_FREE free 109 #if !defined(MBEDTLS_PLATFORM_STD_EXIT) 110 #define MBEDTLS_PLATFORM_STD_EXIT exit 112 #if !defined(MBEDTLS_PLATFORM_STD_TIME) 113 #define MBEDTLS_PLATFORM_STD_TIME time 115 #if !defined(MBEDTLS_PLATFORM_STD_EXIT_SUCCESS) 116 #define MBEDTLS_PLATFORM_STD_EXIT_SUCCESS EXIT_SUCCESS 118 #if !defined(MBEDTLS_PLATFORM_STD_EXIT_FAILURE) 119 #define MBEDTLS_PLATFORM_STD_EXIT_FAILURE EXIT_FAILURE 121 #if defined(MBEDTLS_FS_IO) 122 #if !defined(MBEDTLS_PLATFORM_STD_NV_SEED_READ) 123 #define MBEDTLS_PLATFORM_STD_NV_SEED_READ mbedtls_platform_std_nv_seed_read 125 #if !defined(MBEDTLS_PLATFORM_STD_NV_SEED_WRITE) 126 #define MBEDTLS_PLATFORM_STD_NV_SEED_WRITE mbedtls_platform_std_nv_seed_write 128 #if !defined(MBEDTLS_PLATFORM_STD_NV_SEED_FILE) 129 #define MBEDTLS_PLATFORM_STD_NV_SEED_FILE "seedfile" 133 #if defined(MBEDTLS_PLATFORM_STD_MEM_HDR) 134 #include MBEDTLS_PLATFORM_STD_MEM_HDR 140 #if defined(__DOXYGEN__) && !defined(MBEDTLS_PLATFORM_STD_CALLOC) 141 #define MBEDTLS_PLATFORM_STD_CALLOC 144 #if defined(__DOXYGEN__) && !defined(MBEDTLS_PLATFORM_STD_FREE) 145 #define MBEDTLS_PLATFORM_STD_FREE 155 #if defined(MBEDTLS_PLATFORM_MEMORY) 156 #if defined(MBEDTLS_PLATFORM_FREE_MACRO) && \ 157 defined(MBEDTLS_PLATFORM_CALLOC_MACRO) 159 #undef mbedtls_calloc 160 #define mbedtls_free MBEDTLS_PLATFORM_FREE_MACRO 161 #define mbedtls_calloc MBEDTLS_PLATFORM_CALLOC_MACRO 177 int mbedtls_platform_set_calloc_free(
void *(*calloc_func)(
size_t,
size_t),
178 void (*free_func)(
void *));
182 #undef mbedtls_calloc 183 #define mbedtls_free free 184 #define mbedtls_calloc calloc 190 #if defined(MBEDTLS_PLATFORM_FPRINTF_ALT) 204 int mbedtls_platform_set_fprintf(
int (*fprintf_func)(FILE *stream,
const char *,
207 #undef mbedtls_fprintf 208 #if defined(MBEDTLS_PLATFORM_FPRINTF_MACRO) 209 #define mbedtls_fprintf MBEDTLS_PLATFORM_FPRINTF_MACRO 211 #define mbedtls_fprintf fprintf 218 #if defined(MBEDTLS_PLATFORM_PRINTF_ALT) 230 int mbedtls_platform_set_printf(
int (*printf_func)(
const char *, ...));
232 #undef mbedtls_printf 233 #if defined(MBEDTLS_PLATFORM_PRINTF_MACRO) 234 #define mbedtls_printf MBEDTLS_PLATFORM_PRINTF_MACRO 236 #define mbedtls_printf printf 249 #if defined(MBEDTLS_PLATFORM_HAS_NON_CONFORMING_SNPRINTF) 251 int mbedtls_platform_win32_snprintf(
char *s,
size_t n,
const char *fmt, ...);
254 #if defined(MBEDTLS_PLATFORM_SNPRINTF_ALT) 265 int mbedtls_platform_set_snprintf(
int (*snprintf_func)(
char *s,
size_t n,
266 const char *format, ...));
268 #undef mbedtls_snprintf 269 #if defined(MBEDTLS_PLATFORM_SNPRINTF_MACRO) 270 #define mbedtls_snprintf MBEDTLS_PLATFORM_SNPRINTF_MACRO 272 #define mbedtls_snprintf MBEDTLS_PLATFORM_STD_SNPRINTF 285 #if defined(MBEDTLS_PLATFORM_HAS_NON_CONFORMING_VSNPRINTF) 288 int mbedtls_platform_win32_vsnprintf(
char *s,
size_t n,
const char *fmt, va_list arg);
291 #if defined(MBEDTLS_PLATFORM_VSNPRINTF_ALT) 293 extern int (*
mbedtls_vsnprintf)(
char *s,
size_t n,
const char *format, va_list arg);
302 int mbedtls_platform_set_vsnprintf(
int (*vsnprintf_func)(
char *s,
size_t n,
303 const char *format, va_list arg));
305 #undef mbedtls_vsnprintf 306 #if defined(MBEDTLS_PLATFORM_VSNPRINTF_MACRO) 307 #define mbedtls_vsnprintf MBEDTLS_PLATFORM_VSNPRINTF_MACRO 309 #define mbedtls_vsnprintf vsnprintf 316 #if defined(MBEDTLS_PLATFORM_EXIT_ALT) 328 int mbedtls_platform_set_exit(
void (*exit_func)(
int status));
331 #if defined(MBEDTLS_PLATFORM_EXIT_MACRO) 332 #define mbedtls_exit MBEDTLS_PLATFORM_EXIT_MACRO 334 #define mbedtls_exit exit 341 #if defined(MBEDTLS_PLATFORM_STD_EXIT_SUCCESS) 342 #define MBEDTLS_EXIT_SUCCESS MBEDTLS_PLATFORM_STD_EXIT_SUCCESS 344 #define MBEDTLS_EXIT_SUCCESS 0 346 #if defined(MBEDTLS_PLATFORM_STD_EXIT_FAILURE) 347 #define MBEDTLS_EXIT_FAILURE MBEDTLS_PLATFORM_STD_EXIT_FAILURE 349 #define MBEDTLS_EXIT_FAILURE 1 358 #if defined(MBEDTLS_ENTROPY_NV_SEED) 359 #if !defined(MBEDTLS_PLATFORM_NO_STD_FUNCTIONS) && defined(MBEDTLS_FS_IO) 361 int mbedtls_platform_std_nv_seed_read(
unsigned char *buf,
size_t buf_len);
362 int mbedtls_platform_std_nv_seed_write(
unsigned char *buf,
size_t buf_len);
365 #if defined(MBEDTLS_PLATFORM_NV_SEED_ALT) 366 extern int (*mbedtls_nv_seed_read)(
unsigned char *buf,
size_t buf_len);
367 extern int (*mbedtls_nv_seed_write)(
unsigned char *buf,
size_t buf_len);
378 int mbedtls_platform_set_nv_seed(
379 int (*nv_seed_read_func)(
unsigned char *buf,
size_t buf_len),
380 int (*nv_seed_write_func)(
unsigned char *buf,
size_t buf_len)
383 #undef mbedtls_nv_seed_read 384 #undef mbedtls_nv_seed_write 385 #if defined(MBEDTLS_PLATFORM_NV_SEED_READ_MACRO) && \ 386 defined(MBEDTLS_PLATFORM_NV_SEED_WRITE_MACRO) 387 #define mbedtls_nv_seed_read MBEDTLS_PLATFORM_NV_SEED_READ_MACRO 388 #define mbedtls_nv_seed_write MBEDTLS_PLATFORM_NV_SEED_WRITE_MACRO 390 #define mbedtls_nv_seed_read mbedtls_platform_std_nv_seed_read 391 #define mbedtls_nv_seed_write mbedtls_platform_std_nv_seed_write 396 #if !defined(MBEDTLS_PLATFORM_SETUP_TEARDOWN_ALT) 410 #include "platform_alt.h"
Configuration options (set of defines)
The platform context structure.