26 #ifndef MBEDTLS_PLATFORM_H 27 #define MBEDTLS_PLATFORM_H 29 #if !defined(MBEDTLS_CONFIG_FILE) 32 #include MBEDTLS_CONFIG_FILE 35 #if defined(MBEDTLS_HAVE_TIME) 40 #define MBEDTLS_ERR_PLATFORM_HW_ACCEL_FAILED -0x0070 42 #define MBEDTLS_ERR_PLATFORM_FEATURE_UNSUPPORTED -0x0072 60 #if defined(__MINGW32__) || (defined(_MSC_VER) && _MSC_VER <= 1900) 61 #define MBEDTLS_PLATFORM_HAS_NON_CONFORMING_SNPRINTF 62 #define MBEDTLS_PLATFORM_HAS_NON_CONFORMING_VSNPRINTF 65 #if !defined(MBEDTLS_PLATFORM_NO_STD_FUNCTIONS) 68 #if defined(MBEDTLS_HAVE_TIME) 71 #if !defined(MBEDTLS_PLATFORM_STD_SNPRINTF) 72 #if defined(MBEDTLS_PLATFORM_HAS_NON_CONFORMING_SNPRINTF) 73 #define MBEDTLS_PLATFORM_STD_SNPRINTF mbedtls_platform_win32_snprintf 75 #define MBEDTLS_PLATFORM_STD_SNPRINTF snprintf 78 #if !defined(MBEDTLS_PLATFORM_STD_VSNPRINTF) 79 #if defined(MBEDTLS_PLATFORM_HAS_NON_CONFORMING_VSNPRINTF) 80 #define MBEDTLS_PLATFORM_STD_VSNPRINTF mbedtls_platform_win32_vsnprintf 82 #define MBEDTLS_PLATFORM_STD_VSNPRINTF vsnprintf 85 #if !defined(MBEDTLS_PLATFORM_STD_PRINTF) 86 #define MBEDTLS_PLATFORM_STD_PRINTF printf 88 #if !defined(MBEDTLS_PLATFORM_STD_FPRINTF) 89 #define MBEDTLS_PLATFORM_STD_FPRINTF fprintf 91 #if !defined(MBEDTLS_PLATFORM_STD_CALLOC) 92 #define MBEDTLS_PLATFORM_STD_CALLOC calloc 94 #if !defined(MBEDTLS_PLATFORM_STD_FREE) 95 #define MBEDTLS_PLATFORM_STD_FREE free 97 #if !defined(MBEDTLS_PLATFORM_STD_EXIT) 98 #define MBEDTLS_PLATFORM_STD_EXIT exit 100 #if !defined(MBEDTLS_PLATFORM_STD_TIME) 101 #define MBEDTLS_PLATFORM_STD_TIME time 103 #if !defined(MBEDTLS_PLATFORM_STD_EXIT_SUCCESS) 104 #define MBEDTLS_PLATFORM_STD_EXIT_SUCCESS EXIT_SUCCESS 106 #if !defined(MBEDTLS_PLATFORM_STD_EXIT_FAILURE) 107 #define MBEDTLS_PLATFORM_STD_EXIT_FAILURE EXIT_FAILURE 109 #if defined(MBEDTLS_FS_IO) 110 #if !defined(MBEDTLS_PLATFORM_STD_NV_SEED_READ) 111 #define MBEDTLS_PLATFORM_STD_NV_SEED_READ mbedtls_platform_std_nv_seed_read 113 #if !defined(MBEDTLS_PLATFORM_STD_NV_SEED_WRITE) 114 #define MBEDTLS_PLATFORM_STD_NV_SEED_WRITE mbedtls_platform_std_nv_seed_write 116 #if !defined(MBEDTLS_PLATFORM_STD_NV_SEED_FILE) 117 #define MBEDTLS_PLATFORM_STD_NV_SEED_FILE "seedfile" 121 #if defined(MBEDTLS_PLATFORM_STD_MEM_HDR) 122 #include MBEDTLS_PLATFORM_STD_MEM_HDR 128 #if defined(__DOXYGEN__) && !defined(MBEDTLS_PLATFORM_STD_CALLOC) 129 #define MBEDTLS_PLATFORM_STD_CALLOC 132 #if defined(__DOXYGEN__) && !defined(MBEDTLS_PLATFORM_STD_FREE) 133 #define MBEDTLS_PLATFORM_STD_FREE 143 #if defined(MBEDTLS_PLATFORM_MEMORY) 144 #if defined(MBEDTLS_PLATFORM_FREE_MACRO) && \ 145 defined(MBEDTLS_PLATFORM_CALLOC_MACRO) 147 #undef mbedtls_calloc 148 #define mbedtls_free MBEDTLS_PLATFORM_FREE_MACRO 149 #define mbedtls_calloc MBEDTLS_PLATFORM_CALLOC_MACRO 165 int mbedtls_platform_set_calloc_free(
void *(*calloc_func)(
size_t,
size_t),
166 void (*free_func)(
void *));
170 #undef mbedtls_calloc 171 #define mbedtls_free free 172 #define mbedtls_calloc calloc 178 #if defined(MBEDTLS_PLATFORM_FPRINTF_ALT) 192 int mbedtls_platform_set_fprintf(
int (*fprintf_func)(FILE *stream,
const char *,
195 #undef mbedtls_fprintf 196 #if defined(MBEDTLS_PLATFORM_FPRINTF_MACRO) 197 #define mbedtls_fprintf MBEDTLS_PLATFORM_FPRINTF_MACRO 199 #define mbedtls_fprintf fprintf 206 #if defined(MBEDTLS_PLATFORM_PRINTF_ALT) 218 int mbedtls_platform_set_printf(
int (*printf_func)(
const char *, ...));
220 #undef mbedtls_printf 221 #if defined(MBEDTLS_PLATFORM_PRINTF_MACRO) 222 #define mbedtls_printf MBEDTLS_PLATFORM_PRINTF_MACRO 224 #define mbedtls_printf printf 237 #if defined(MBEDTLS_PLATFORM_HAS_NON_CONFORMING_SNPRINTF) 239 int mbedtls_platform_win32_snprintf(
char *s,
size_t n,
const char *fmt, ...);
242 #if defined(MBEDTLS_PLATFORM_SNPRINTF_ALT) 253 int mbedtls_platform_set_snprintf(
int (*snprintf_func)(
char *s,
size_t n,
254 const char *format, ...));
256 #undef mbedtls_snprintf 257 #if defined(MBEDTLS_PLATFORM_SNPRINTF_MACRO) 258 #define mbedtls_snprintf MBEDTLS_PLATFORM_SNPRINTF_MACRO 260 #define mbedtls_snprintf MBEDTLS_PLATFORM_STD_SNPRINTF 273 #if defined(MBEDTLS_PLATFORM_HAS_NON_CONFORMING_VSNPRINTF) 276 int mbedtls_platform_win32_vsnprintf(
char *s,
size_t n,
const char *fmt, va_list arg);
279 #if defined(MBEDTLS_PLATFORM_VSNPRINTF_ALT) 281 extern int (*
mbedtls_vsnprintf)(
char *s,
size_t n,
const char *format, va_list arg);
290 int mbedtls_platform_set_vsnprintf(
int (*vsnprintf_func)(
char *s,
size_t n,
291 const char *format, va_list arg));
293 #undef mbedtls_vsnprintf 294 #if defined(MBEDTLS_PLATFORM_VSNPRINTF_MACRO) 295 #define mbedtls_vsnprintf MBEDTLS_PLATFORM_VSNPRINTF_MACRO 297 #define mbedtls_vsnprintf vsnprintf 304 #if defined(MBEDTLS_PLATFORM_EXIT_ALT) 316 int mbedtls_platform_set_exit(
void (*exit_func)(
int status));
319 #if defined(MBEDTLS_PLATFORM_EXIT_MACRO) 320 #define mbedtls_exit MBEDTLS_PLATFORM_EXIT_MACRO 322 #define mbedtls_exit exit 329 #if defined(MBEDTLS_PLATFORM_STD_EXIT_SUCCESS) 330 #define MBEDTLS_EXIT_SUCCESS MBEDTLS_PLATFORM_STD_EXIT_SUCCESS 332 #define MBEDTLS_EXIT_SUCCESS 0 334 #if defined(MBEDTLS_PLATFORM_STD_EXIT_FAILURE) 335 #define MBEDTLS_EXIT_FAILURE MBEDTLS_PLATFORM_STD_EXIT_FAILURE 337 #define MBEDTLS_EXIT_FAILURE 1 346 #if defined(MBEDTLS_ENTROPY_NV_SEED) 347 #if !defined(MBEDTLS_PLATFORM_NO_STD_FUNCTIONS) && defined(MBEDTLS_FS_IO) 349 int mbedtls_platform_std_nv_seed_read(
unsigned char *buf,
size_t buf_len);
350 int mbedtls_platform_std_nv_seed_write(
unsigned char *buf,
size_t buf_len);
353 #if defined(MBEDTLS_PLATFORM_NV_SEED_ALT) 354 extern int (*mbedtls_nv_seed_read)(
unsigned char *buf,
size_t buf_len);
355 extern int (*mbedtls_nv_seed_write)(
unsigned char *buf,
size_t buf_len);
366 int mbedtls_platform_set_nv_seed(
367 int (*nv_seed_read_func)(
unsigned char *buf,
size_t buf_len),
368 int (*nv_seed_write_func)(
unsigned char *buf,
size_t buf_len)
371 #undef mbedtls_nv_seed_read 372 #undef mbedtls_nv_seed_write 373 #if defined(MBEDTLS_PLATFORM_NV_SEED_READ_MACRO) && \ 374 defined(MBEDTLS_PLATFORM_NV_SEED_WRITE_MACRO) 375 #define mbedtls_nv_seed_read MBEDTLS_PLATFORM_NV_SEED_READ_MACRO 376 #define mbedtls_nv_seed_write MBEDTLS_PLATFORM_NV_SEED_WRITE_MACRO 378 #define mbedtls_nv_seed_read mbedtls_platform_std_nv_seed_read 379 #define mbedtls_nv_seed_write mbedtls_platform_std_nv_seed_write 384 #if !defined(MBEDTLS_PLATFORM_SETUP_TEARDOWN_ALT) 398 #include "platform_alt.h"
Configuration options (set of defines)
The platform context structure.