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) 45 #define MBEDTLS_ERR_PLATFORM_HW_ACCEL_FAILED -0x0070 47 #define MBEDTLS_ERR_PLATFORM_FEATURE_UNSUPPORTED -0x0072 65 #if defined(__MINGW32__) || (defined(_MSC_VER) && _MSC_VER <= 1900) 66 #define MBEDTLS_PLATFORM_HAS_NON_CONFORMING_SNPRINTF 67 #define MBEDTLS_PLATFORM_HAS_NON_CONFORMING_VSNPRINTF 70 #if !defined(MBEDTLS_PLATFORM_NO_STD_FUNCTIONS) 73 #if defined(MBEDTLS_HAVE_TIME) 76 #if !defined(MBEDTLS_PLATFORM_STD_SNPRINTF) 77 #if defined(MBEDTLS_PLATFORM_HAS_NON_CONFORMING_SNPRINTF) 78 #define MBEDTLS_PLATFORM_STD_SNPRINTF mbedtls_platform_win32_snprintf 80 #define MBEDTLS_PLATFORM_STD_SNPRINTF snprintf 83 #if !defined(MBEDTLS_PLATFORM_STD_VSNPRINTF) 84 #if defined(MBEDTLS_PLATFORM_HAS_NON_CONFORMING_VSNPRINTF) 85 #define MBEDTLS_PLATFORM_STD_VSNPRINTF mbedtls_platform_win32_vsnprintf 87 #define MBEDTLS_PLATFORM_STD_VSNPRINTF vsnprintf 90 #if !defined(MBEDTLS_PLATFORM_STD_PRINTF) 91 #define MBEDTLS_PLATFORM_STD_PRINTF printf 93 #if !defined(MBEDTLS_PLATFORM_STD_FPRINTF) 94 #define MBEDTLS_PLATFORM_STD_FPRINTF fprintf 96 #if !defined(MBEDTLS_PLATFORM_STD_CALLOC) 97 #define MBEDTLS_PLATFORM_STD_CALLOC calloc 99 #if !defined(MBEDTLS_PLATFORM_STD_FREE) 100 #define MBEDTLS_PLATFORM_STD_FREE free 102 #if !defined(MBEDTLS_PLATFORM_STD_EXIT) 103 #define MBEDTLS_PLATFORM_STD_EXIT exit 105 #if !defined(MBEDTLS_PLATFORM_STD_TIME) 106 #define MBEDTLS_PLATFORM_STD_TIME time 108 #if !defined(MBEDTLS_PLATFORM_STD_EXIT_SUCCESS) 109 #define MBEDTLS_PLATFORM_STD_EXIT_SUCCESS EXIT_SUCCESS 111 #if !defined(MBEDTLS_PLATFORM_STD_EXIT_FAILURE) 112 #define MBEDTLS_PLATFORM_STD_EXIT_FAILURE EXIT_FAILURE 114 #if defined(MBEDTLS_FS_IO) 115 #if !defined(MBEDTLS_PLATFORM_STD_NV_SEED_READ) 116 #define MBEDTLS_PLATFORM_STD_NV_SEED_READ mbedtls_platform_std_nv_seed_read 118 #if !defined(MBEDTLS_PLATFORM_STD_NV_SEED_WRITE) 119 #define MBEDTLS_PLATFORM_STD_NV_SEED_WRITE mbedtls_platform_std_nv_seed_write 121 #if !defined(MBEDTLS_PLATFORM_STD_NV_SEED_FILE) 122 #define MBEDTLS_PLATFORM_STD_NV_SEED_FILE "seedfile" 126 #if defined(MBEDTLS_PLATFORM_STD_MEM_HDR) 127 #include MBEDTLS_PLATFORM_STD_MEM_HDR 137 #if defined(MBEDTLS_PLATFORM_MEMORY) 138 #if defined(MBEDTLS_PLATFORM_FREE_MACRO) && \ 139 defined(MBEDTLS_PLATFORM_CALLOC_MACRO) 140 #define mbedtls_free MBEDTLS_PLATFORM_FREE_MACRO 141 #define mbedtls_calloc MBEDTLS_PLATFORM_CALLOC_MACRO 157 int mbedtls_platform_set_calloc_free(
void * (*calloc_func)(
size_t,
size_t ),
158 void (*free_func)(
void * ) );
161 #define mbedtls_free free 162 #define mbedtls_calloc calloc 168 #if defined(MBEDTLS_PLATFORM_FPRINTF_ALT) 171 extern int (*
mbedtls_fprintf)( FILE *stream,
const char *format, ... );
182 int mbedtls_platform_set_fprintf(
int (*fprintf_func)( FILE *stream,
const char *,
185 #if defined(MBEDTLS_PLATFORM_FPRINTF_MACRO) 186 #define mbedtls_fprintf MBEDTLS_PLATFORM_FPRINTF_MACRO 188 #define mbedtls_fprintf fprintf 195 #if defined(MBEDTLS_PLATFORM_PRINTF_ALT) 207 int mbedtls_platform_set_printf(
int (*printf_func)(
const char *, ... ) );
209 #if defined(MBEDTLS_PLATFORM_PRINTF_MACRO) 210 #define mbedtls_printf MBEDTLS_PLATFORM_PRINTF_MACRO 212 #define mbedtls_printf printf 225 #if defined(MBEDTLS_PLATFORM_HAS_NON_CONFORMING_SNPRINTF) 227 int mbedtls_platform_win32_snprintf(
char *s,
size_t n,
const char *fmt, ... );
230 #if defined(MBEDTLS_PLATFORM_SNPRINTF_ALT) 231 extern int (*
mbedtls_snprintf)(
char * s,
size_t n,
const char * format, ... );
241 int mbedtls_platform_set_snprintf(
int (*snprintf_func)(
char * s,
size_t n,
242 const char * format, ... ) );
244 #if defined(MBEDTLS_PLATFORM_SNPRINTF_MACRO) 245 #define mbedtls_snprintf MBEDTLS_PLATFORM_SNPRINTF_MACRO 247 #define mbedtls_snprintf MBEDTLS_PLATFORM_STD_SNPRINTF 260 #if defined(MBEDTLS_PLATFORM_HAS_NON_CONFORMING_VSNPRINTF) 263 int mbedtls_platform_win32_vsnprintf(
char *s,
size_t n,
const char *fmt, va_list arg );
266 #if defined(MBEDTLS_PLATFORM_VSNPRINTF_ALT) 268 extern int (*
mbedtls_vsnprintf)(
char * s,
size_t n,
const char * format, va_list arg );
277 int mbedtls_platform_set_vsnprintf(
int (*vsnprintf_func)(
char * s,
size_t n,
278 const char * format, va_list arg ) );
280 #if defined(MBEDTLS_PLATFORM_VSNPRINTF_MACRO) 281 #define mbedtls_vsnprintf MBEDTLS_PLATFORM_VSNPRINTF_MACRO 283 #define mbedtls_vsnprintf vsnprintf 290 #if defined(MBEDTLS_PLATFORM_EXIT_ALT) 302 int mbedtls_platform_set_exit(
void (*exit_func)(
int status ) );
304 #if defined(MBEDTLS_PLATFORM_EXIT_MACRO) 305 #define mbedtls_exit MBEDTLS_PLATFORM_EXIT_MACRO 307 #define mbedtls_exit exit 314 #if defined(MBEDTLS_PLATFORM_STD_EXIT_SUCCESS) 315 #define MBEDTLS_EXIT_SUCCESS MBEDTLS_PLATFORM_STD_EXIT_SUCCESS 317 #define MBEDTLS_EXIT_SUCCESS 0 319 #if defined(MBEDTLS_PLATFORM_STD_EXIT_FAILURE) 320 #define MBEDTLS_EXIT_FAILURE MBEDTLS_PLATFORM_STD_EXIT_FAILURE 322 #define MBEDTLS_EXIT_FAILURE 1 331 #if defined(MBEDTLS_ENTROPY_NV_SEED) 332 #if !defined(MBEDTLS_PLATFORM_NO_STD_FUNCTIONS) && defined(MBEDTLS_FS_IO) 334 int mbedtls_platform_std_nv_seed_read(
unsigned char *buf,
size_t buf_len );
335 int mbedtls_platform_std_nv_seed_write(
unsigned char *buf,
size_t buf_len );
338 #if defined(MBEDTLS_PLATFORM_NV_SEED_ALT) 339 extern int (*mbedtls_nv_seed_read)(
unsigned char *buf,
size_t buf_len );
340 extern int (*mbedtls_nv_seed_write)(
unsigned char *buf,
size_t buf_len );
351 int mbedtls_platform_set_nv_seed(
352 int (*nv_seed_read_func)(
unsigned char *buf,
size_t buf_len ),
353 int (*nv_seed_write_func)(
unsigned char *buf,
size_t buf_len )
356 #if defined(MBEDTLS_PLATFORM_NV_SEED_READ_MACRO) && \ 357 defined(MBEDTLS_PLATFORM_NV_SEED_WRITE_MACRO) 358 #define mbedtls_nv_seed_read MBEDTLS_PLATFORM_NV_SEED_READ_MACRO 359 #define mbedtls_nv_seed_write MBEDTLS_PLATFORM_NV_SEED_WRITE_MACRO 361 #define mbedtls_nv_seed_read mbedtls_platform_std_nv_seed_read 362 #define mbedtls_nv_seed_write mbedtls_platform_std_nv_seed_write 367 #if !defined(MBEDTLS_PLATFORM_SETUP_TEARDOWN_ALT) 382 #include "platform_alt.h"
Configuration options (set of defines)
The platform context structure.