49 #ifndef MBEDTLS_PLATFORM_H
50 #define MBEDTLS_PLATFORM_H
52 #if !defined(MBEDTLS_CONFIG_FILE)
55 #include MBEDTLS_CONFIG_FILE
58 #if defined(MBEDTLS_HAVE_TIME)
74 #if !defined(MBEDTLS_PLATFORM_NO_STD_FUNCTIONS)
78 #if !defined(MBEDTLS_PLATFORM_STD_SNPRINTF)
80 #define MBEDTLS_PLATFORM_STD_SNPRINTF mbedtls_platform_win32_snprintf
82 #define MBEDTLS_PLATFORM_STD_SNPRINTF snprintf
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
132 #if defined(MBEDTLS_PLATFORM_MEMORY)
133 #if defined(MBEDTLS_PLATFORM_FREE_MACRO) && \
134 defined(MBEDTLS_PLATFORM_CALLOC_MACRO)
135 #define mbedtls_free MBEDTLS_PLATFORM_FREE_MACRO
136 #define mbedtls_calloc MBEDTLS_PLATFORM_CALLOC_MACRO
140 extern void * (*mbedtls_calloc)(
size_t n,
size_t size );
151 int mbedtls_platform_set_calloc_free(
void * (*calloc_func)(
size_t,
size_t ),
152 void (*free_func)(
void * ) );
155 #define mbedtls_free free
156 #define mbedtls_calloc calloc
162 #if defined(MBEDTLS_PLATFORM_FPRINTF_ALT)
165 extern int (*
mbedtls_fprintf)( FILE *stream,
const char *format, ... );
174 int mbedtls_platform_set_fprintf(
int (*fprintf_func)( FILE *stream,
const char *,
177 #if defined(MBEDTLS_PLATFORM_FPRINTF_MACRO)
178 #define mbedtls_fprintf MBEDTLS_PLATFORM_FPRINTF_MACRO
180 #define mbedtls_fprintf fprintf
187 #if defined(MBEDTLS_PLATFORM_PRINTF_ALT)
198 int mbedtls_platform_set_printf(
int (*printf_func)(
const char *, ... ) );
200 #if defined(MBEDTLS_PLATFORM_PRINTF_MACRO)
201 #define mbedtls_printf MBEDTLS_PLATFORM_PRINTF_MACRO
203 #define mbedtls_printf printf
218 int mbedtls_platform_win32_snprintf(
char *s,
size_t n,
const char *fmt, ... );
221 #if defined(MBEDTLS_PLATFORM_SNPRINTF_ALT)
222 extern int (*
mbedtls_snprintf)(
char * s,
size_t n,
const char * format, ... );
232 int mbedtls_platform_set_snprintf(
int (*snprintf_func)(
char * s,
size_t n,
233 const char * format, ... ) );
235 #if defined(MBEDTLS_PLATFORM_SNPRINTF_MACRO)
236 #define mbedtls_snprintf MBEDTLS_PLATFORM_SNPRINTF_MACRO
238 #define mbedtls_snprintf MBEDTLS_PLATFORM_STD_SNPRINTF
245 #if defined(MBEDTLS_PLATFORM_EXIT_ALT)
256 int mbedtls_platform_set_exit(
void (*exit_func)(
int status ) );
258 #if defined(MBEDTLS_PLATFORM_EXIT_MACRO)
259 #define mbedtls_exit MBEDTLS_PLATFORM_EXIT_MACRO
261 #define mbedtls_exit exit
268 #if defined(MBEDTLS_PLATFORM_STD_EXIT_SUCCESS)
269 #define MBEDTLS_EXIT_SUCCESS MBEDTLS_PLATFORM_STD_EXIT_SUCCESS
271 #define MBEDTLS_EXIT_SUCCESS 0
273 #if defined(MBEDTLS_PLATFORM_STD_EXIT_FAILURE)
274 #define MBEDTLS_EXIT_FAILURE MBEDTLS_PLATFORM_STD_EXIT_FAILURE
276 #define MBEDTLS_EXIT_FAILURE 1
285 #if defined(MBEDTLS_ENTROPY_NV_SEED)
286 #if !defined(MBEDTLS_PLATFORM_NO_STD_FUNCTIONS) && defined(MBEDTLS_FS_IO)
288 int mbedtls_platform_std_nv_seed_read(
unsigned char *buf,
size_t buf_len );
289 int mbedtls_platform_std_nv_seed_write(
unsigned char *buf,
size_t buf_len );
292 #if defined(MBEDTLS_PLATFORM_NV_SEED_ALT)
293 extern int (*mbedtls_nv_seed_read)(
unsigned char *buf,
size_t buf_len );
294 extern int (*mbedtls_nv_seed_write)(
unsigned char *buf,
size_t buf_len );
305 int mbedtls_platform_set_nv_seed(
306 int (*nv_seed_read_func)(
unsigned char *buf,
size_t buf_len ),
307 int (*nv_seed_write_func)(
unsigned char *buf,
size_t buf_len )
310 #if defined(MBEDTLS_PLATFORM_NV_SEED_READ_MACRO) && \
311 defined(MBEDTLS_PLATFORM_NV_SEED_WRITE_MACRO)
312 #define mbedtls_nv_seed_read MBEDTLS_PLATFORM_NV_SEED_READ_MACRO
313 #define mbedtls_nv_seed_write MBEDTLS_PLATFORM_NV_SEED_WRITE_MACRO
315 #define mbedtls_nv_seed_read mbedtls_platform_std_nv_seed_read
316 #define mbedtls_nv_seed_write mbedtls_platform_std_nv_seed_write
321 #if !defined(MBEDTLS_PLATFORM_SETUP_TEARDOWN_ALT)
335 #include "platform_alt.h"
Configuration options (set of defines)
The platform context structure.