31 #ifndef MBEDTLS_PLATFORM_H 32 #define MBEDTLS_PLATFORM_H 34 #if !defined(MBEDTLS_CONFIG_FILE) 37 #include MBEDTLS_CONFIG_FILE 40 #if defined(MBEDTLS_HAVE_TIME) 44 #define MBEDTLS_ERR_PLATFORM_HW_ACCEL_FAILED -0x0070 45 #define MBEDTLS_ERR_PLATFORM_FEATURE_UNSUPPORTED -0x0072 63 #if defined(__MINGW32__) || (defined(_MSC_VER) && _MSC_VER <= 1900) 64 #define MBEDTLS_PLATFORM_HAS_NON_CONFORMING_SNPRINTF 65 #define MBEDTLS_PLATFORM_HAS_NON_CONFORMING_VSNPRINTF 68 #if !defined(MBEDTLS_PLATFORM_NO_STD_FUNCTIONS) 72 #if !defined(MBEDTLS_PLATFORM_STD_SNPRINTF) 73 #if defined(MBEDTLS_PLATFORM_HAS_NON_CONFORMING_SNPRINTF) 74 #define MBEDTLS_PLATFORM_STD_SNPRINTF mbedtls_platform_win32_snprintf 76 #define MBEDTLS_PLATFORM_STD_SNPRINTF snprintf 79 #if !defined(MBEDTLS_PLATFORM_STD_VSNPRINTF) 80 #if defined(MBEDTLS_PLATFORM_HAS_NON_CONFORMING_VSNPRINTF) 81 #define MBEDTLS_PLATFORM_STD_VSNPRINTF mbedtls_platform_win32_vsnprintf 83 #define MBEDTLS_PLATFORM_STD_VSNPRINTF vsnprintf 86 #if !defined(MBEDTLS_PLATFORM_STD_PRINTF) 87 #define MBEDTLS_PLATFORM_STD_PRINTF printf 89 #if !defined(MBEDTLS_PLATFORM_STD_FPRINTF) 90 #define MBEDTLS_PLATFORM_STD_FPRINTF fprintf 92 #if !defined(MBEDTLS_PLATFORM_STD_CALLOC) 93 #define MBEDTLS_PLATFORM_STD_CALLOC calloc 95 #if !defined(MBEDTLS_PLATFORM_STD_FREE) 96 #define MBEDTLS_PLATFORM_STD_FREE free 98 #if !defined(MBEDTLS_PLATFORM_STD_EXIT) 99 #define MBEDTLS_PLATFORM_STD_EXIT exit 101 #if !defined(MBEDTLS_PLATFORM_STD_TIME) 102 #define MBEDTLS_PLATFORM_STD_TIME time 104 #if !defined(MBEDTLS_PLATFORM_STD_EXIT_SUCCESS) 105 #define MBEDTLS_PLATFORM_STD_EXIT_SUCCESS EXIT_SUCCESS 107 #if !defined(MBEDTLS_PLATFORM_STD_EXIT_FAILURE) 108 #define MBEDTLS_PLATFORM_STD_EXIT_FAILURE EXIT_FAILURE 110 #if defined(MBEDTLS_FS_IO) 111 #if !defined(MBEDTLS_PLATFORM_STD_NV_SEED_READ) 112 #define MBEDTLS_PLATFORM_STD_NV_SEED_READ mbedtls_platform_std_nv_seed_read 114 #if !defined(MBEDTLS_PLATFORM_STD_NV_SEED_WRITE) 115 #define MBEDTLS_PLATFORM_STD_NV_SEED_WRITE mbedtls_platform_std_nv_seed_write 117 #if !defined(MBEDTLS_PLATFORM_STD_NV_SEED_FILE) 118 #define MBEDTLS_PLATFORM_STD_NV_SEED_FILE "seedfile" 122 #if defined(MBEDTLS_PLATFORM_STD_MEM_HDR) 123 #include MBEDTLS_PLATFORM_STD_MEM_HDR 133 #if defined(MBEDTLS_PLATFORM_MEMORY) 134 #if defined(MBEDTLS_PLATFORM_FREE_MACRO) && \ 135 defined(MBEDTLS_PLATFORM_CALLOC_MACRO) 136 #define mbedtls_free MBEDTLS_PLATFORM_FREE_MACRO 137 #define mbedtls_calloc MBEDTLS_PLATFORM_CALLOC_MACRO 153 int mbedtls_platform_set_calloc_free(
void * (*calloc_func)(
size_t,
size_t ),
154 void (*free_func)(
void * ) );
157 #define mbedtls_free free 158 #define mbedtls_calloc calloc 164 #if defined(MBEDTLS_PLATFORM_FPRINTF_ALT) 167 extern int (*
mbedtls_fprintf)( FILE *stream,
const char *format, ... );
178 int mbedtls_platform_set_fprintf(
int (*fprintf_func)( FILE *stream,
const char *,
181 #if defined(MBEDTLS_PLATFORM_FPRINTF_MACRO) 182 #define mbedtls_fprintf MBEDTLS_PLATFORM_FPRINTF_MACRO 184 #define mbedtls_fprintf fprintf 191 #if defined(MBEDTLS_PLATFORM_PRINTF_ALT) 203 int mbedtls_platform_set_printf(
int (*printf_func)(
const char *, ... ) );
205 #if defined(MBEDTLS_PLATFORM_PRINTF_MACRO) 206 #define mbedtls_printf MBEDTLS_PLATFORM_PRINTF_MACRO 208 #define mbedtls_printf printf 221 #if defined(MBEDTLS_PLATFORM_HAS_NON_CONFORMING_SNPRINTF) 223 int mbedtls_platform_win32_snprintf(
char *s,
size_t n,
const char *fmt, ... );
226 #if defined(MBEDTLS_PLATFORM_SNPRINTF_ALT) 227 extern int (*
mbedtls_snprintf)(
char * s,
size_t n,
const char * format, ... );
237 int mbedtls_platform_set_snprintf(
int (*snprintf_func)(
char * s,
size_t n,
238 const char * format, ... ) );
240 #if defined(MBEDTLS_PLATFORM_SNPRINTF_MACRO) 241 #define mbedtls_snprintf MBEDTLS_PLATFORM_SNPRINTF_MACRO 243 #define mbedtls_snprintf MBEDTLS_PLATFORM_STD_SNPRINTF 256 #if defined(MBEDTLS_PLATFORM_HAS_NON_CONFORMING_VSNPRINTF) 259 int mbedtls_platform_win32_vsnprintf(
char *s,
size_t n,
const char *fmt, va_list arg );
262 #if defined(MBEDTLS_PLATFORM_VSNPRINTF_ALT) 264 extern int (*
mbedtls_vsnprintf)(
char * s,
size_t n,
const char * format, va_list arg );
273 int mbedtls_platform_set_vsnprintf(
int (*vsnprintf_func)(
char * s,
size_t n,
274 const char * format, va_list arg ) );
276 #if defined(MBEDTLS_PLATFORM_VSNPRINTF_MACRO) 277 #define mbedtls_vsnprintf MBEDTLS_PLATFORM_VSNPRINTF_MACRO 279 #define mbedtls_vsnprintf vsnprintf 286 #if defined(MBEDTLS_PLATFORM_EXIT_ALT) 298 int mbedtls_platform_set_exit(
void (*exit_func)(
int status ) );
300 #if defined(MBEDTLS_PLATFORM_EXIT_MACRO) 301 #define mbedtls_exit MBEDTLS_PLATFORM_EXIT_MACRO 303 #define mbedtls_exit exit 310 #if defined(MBEDTLS_PLATFORM_STD_EXIT_SUCCESS) 311 #define MBEDTLS_EXIT_SUCCESS MBEDTLS_PLATFORM_STD_EXIT_SUCCESS 313 #define MBEDTLS_EXIT_SUCCESS 0 315 #if defined(MBEDTLS_PLATFORM_STD_EXIT_FAILURE) 316 #define MBEDTLS_EXIT_FAILURE MBEDTLS_PLATFORM_STD_EXIT_FAILURE 318 #define MBEDTLS_EXIT_FAILURE 1 327 #if defined(MBEDTLS_ENTROPY_NV_SEED) 328 #if !defined(MBEDTLS_PLATFORM_NO_STD_FUNCTIONS) && defined(MBEDTLS_FS_IO) 330 int mbedtls_platform_std_nv_seed_read(
unsigned char *buf,
size_t buf_len );
331 int mbedtls_platform_std_nv_seed_write(
unsigned char *buf,
size_t buf_len );
334 #if defined(MBEDTLS_PLATFORM_NV_SEED_ALT) 335 extern int (*mbedtls_nv_seed_read)(
unsigned char *buf,
size_t buf_len );
336 extern int (*mbedtls_nv_seed_write)(
unsigned char *buf,
size_t buf_len );
347 int mbedtls_platform_set_nv_seed(
348 int (*nv_seed_read_func)(
unsigned char *buf,
size_t buf_len ),
349 int (*nv_seed_write_func)(
unsigned char *buf,
size_t buf_len )
352 #if defined(MBEDTLS_PLATFORM_NV_SEED_READ_MACRO) && \ 353 defined(MBEDTLS_PLATFORM_NV_SEED_WRITE_MACRO) 354 #define mbedtls_nv_seed_read MBEDTLS_PLATFORM_NV_SEED_READ_MACRO 355 #define mbedtls_nv_seed_write MBEDTLS_PLATFORM_NV_SEED_WRITE_MACRO 357 #define mbedtls_nv_seed_read mbedtls_platform_std_nv_seed_read 358 #define mbedtls_nv_seed_write mbedtls_platform_std_nv_seed_write 363 #if !defined(MBEDTLS_PLATFORM_SETUP_TEARDOWN_ALT) 378 #include "platform_alt.h"
Configuration options (set of defines)
The platform context structure.