25 #ifndef MBEDTLS_PLATFORM_H
26 #define MBEDTLS_PLATFORM_H
28 #if !defined(MBEDTLS_CONFIG_FILE)
31 #include MBEDTLS_CONFIG_FILE
46 #if !defined(MBEDTLS_PLATFORM_NO_STD_FUNCTIONS)
50 #if !defined(MBEDTLS_PLATFORM_STD_SNPRINTF)
52 #define MBEDTLS_PLATFORM_STD_SNPRINTF mbedtls_platform_win32_snprintf
54 #define MBEDTLS_PLATFORM_STD_SNPRINTF snprintf
57 #if !defined(MBEDTLS_PLATFORM_STD_PRINTF)
58 #define MBEDTLS_PLATFORM_STD_PRINTF printf
60 #if !defined(MBEDTLS_PLATFORM_STD_FPRINTF)
61 #define MBEDTLS_PLATFORM_STD_FPRINTF fprintf
63 #if !defined(MBEDTLS_PLATFORM_STD_CALLOC)
64 #define MBEDTLS_PLATFORM_STD_CALLOC calloc
66 #if !defined(MBEDTLS_PLATFORM_STD_FREE)
67 #define MBEDTLS_PLATFORM_STD_FREE free
69 #if !defined(MBEDTLS_PLATFORM_STD_EXIT)
70 #define MBEDTLS_PLATFORM_STD_EXIT exit
72 #if !defined(MBEDTLS_PLATFORM_STD_TIME)
73 #define MBEDTLS_PLATFORM_STD_TIME time
75 #if !defined(MBEDTLS_PLATFORM_STD_EXIT_SUCCESS)
76 #define MBEDTLS_PLATFORM_STD_EXIT_SUCCESS EXIT_SUCCESS
78 #if !defined(MBEDTLS_PLATFORM_STD_EXIT_FAILURE)
79 #define MBEDTLS_PLATFORM_STD_EXIT_FAILURE EXIT_FAILURE
81 #if defined(MBEDTLS_FS_IO)
82 #if !defined(MBEDTLS_PLATFORM_STD_NV_SEED_READ)
83 #define MBEDTLS_PLATFORM_STD_NV_SEED_READ mbedtls_platform_std_nv_seed_read
85 #if !defined(MBEDTLS_PLATFORM_STD_NV_SEED_WRITE)
86 #define MBEDTLS_PLATFORM_STD_NV_SEED_WRITE mbedtls_platform_std_nv_seed_write
88 #if !defined(MBEDTLS_PLATFORM_STD_NV_SEED_FILE)
89 #define MBEDTLS_PLATFORM_STD_NV_SEED_FILE "seedfile"
93 #if defined(MBEDTLS_PLATFORM_STD_MEM_HDR)
94 #include MBEDTLS_PLATFORM_STD_MEM_HDR
104 #if defined(MBEDTLS_PLATFORM_MEMORY)
105 #if defined(MBEDTLS_PLATFORM_FREE_MACRO) && \
106 defined(MBEDTLS_PLATFORM_CALLOC_MACRO)
107 #define mbedtls_free MBEDTLS_PLATFORM_FREE_MACRO
108 #define mbedtls_calloc MBEDTLS_PLATFORM_CALLOC_MACRO
112 extern void * (*mbedtls_calloc)(
size_t n,
size_t size );
123 int mbedtls_platform_set_calloc_free(
void * (*calloc_func)(
size_t,
size_t ),
124 void (*free_func)(
void * ) );
127 #define mbedtls_free free
128 #define mbedtls_calloc calloc
134 #if defined(MBEDTLS_PLATFORM_FPRINTF_ALT)
137 extern int (*
mbedtls_fprintf)( FILE *stream,
const char *format, ... );
146 int mbedtls_platform_set_fprintf(
int (*fprintf_func)( FILE *stream,
const char *,
149 #if defined(MBEDTLS_PLATFORM_FPRINTF_MACRO)
150 #define mbedtls_fprintf MBEDTLS_PLATFORM_FPRINTF_MACRO
152 #define mbedtls_fprintf fprintf
159 #if defined(MBEDTLS_PLATFORM_PRINTF_ALT)
169 int mbedtls_platform_set_printf(
int (*printf_func)(
const char *, ... ) );
171 #if defined(MBEDTLS_PLATFORM_PRINTF_MACRO)
172 #define mbedtls_printf MBEDTLS_PLATFORM_PRINTF_MACRO
174 #define mbedtls_printf printf
189 int mbedtls_platform_win32_snprintf(
char *s,
size_t n,
const char *fmt, ... );
192 #if defined(MBEDTLS_PLATFORM_SNPRINTF_ALT)
193 extern int (*
mbedtls_snprintf)(
char * s,
size_t n,
const char * format, ... );
202 int mbedtls_platform_set_snprintf(
int (*snprintf_func)(
char * s,
size_t n,
203 const char * format, ... ) );
205 #if defined(MBEDTLS_PLATFORM_SNPRINTF_MACRO)
206 #define mbedtls_snprintf MBEDTLS_PLATFORM_SNPRINTF_MACRO
208 #define mbedtls_snprintf snprintf
215 #if defined(MBEDTLS_PLATFORM_EXIT_ALT)
225 int mbedtls_platform_set_exit(
void (*exit_func)(
int status ) );
227 #if defined(MBEDTLS_PLATFORM_EXIT_MACRO)
228 #define mbedtls_exit MBEDTLS_PLATFORM_EXIT_MACRO
230 #define mbedtls_exit exit
237 #if defined(MBEDTLS_PLATFORM_STD_EXIT_SUCCESS)
238 #define MBEDTLS_EXIT_SUCCESS MBEDTLS_PLATFORM_STD_EXIT_SUCCESS
240 #define MBEDTLS_EXIT_SUCCESS 0
242 #if defined(MBEDTLS_PLATFORM_STD_EXIT_FAILURE)
243 #define MBEDTLS_EXIT_FAILURE MBEDTLS_PLATFORM_STD_EXIT_FAILURE
245 #define MBEDTLS_EXIT_FAILURE 1
251 #if defined(MBEDTLS_PLATFORM_TIME_TYPE_MACRO)
262 #if defined(MBEDTLS_PLATFORM_TIME_ALT)
272 int mbedtls_platform_set_time( mbedtls_time_t (*time_func)( mbedtls_time_t* time ) );
274 #if defined(MBEDTLS_PLATFORM_TIME_MACRO)
275 #define mbedtls_time MBEDTLS_PLATFORM_TIME_MACRO
277 #define mbedtls_time time
287 #if defined(MBEDTLS_ENTROPY_NV_SEED)
288 #if !defined(MBEDTLS_PLATFORM_NO_STD_FUNCTIONS) && defined(MBEDTLS_FS_IO)
290 int mbedtls_platform_std_nv_seed_read(
unsigned char *buf,
size_t buf_len );
291 int mbedtls_platform_std_nv_seed_write(
unsigned char *buf,
size_t buf_len );
294 #if defined(MBEDTLS_PLATFORM_NV_SEED_ALT)
295 extern int (*mbedtls_nv_seed_read)(
unsigned char *buf,
size_t buf_len );
296 extern int (*mbedtls_nv_seed_write)(
unsigned char *buf,
size_t buf_len );
306 int mbedtls_platform_set_nv_seed(
307 int (*nv_seed_read_func)(
unsigned char *buf,
size_t buf_len ),
308 int (*nv_seed_write_func)(
unsigned char *buf,
size_t buf_len )
311 #if defined(MBEDTLS_PLATFORM_NV_SEED_READ_MACRO) && \
312 defined(MBEDTLS_PLATFORM_NV_SEED_WRITE_MACRO)
313 #define mbedtls_nv_seed_read MBEDTLS_PLATFORM_NV_SEED_READ_MACRO
314 #define mbedtls_nv_seed_write MBEDTLS_PLATFORM_NV_SEED_WRITE_MACRO
316 #define mbedtls_nv_seed_read mbedtls_platform_std_nv_seed_read
317 #define mbedtls_nv_seed_write mbedtls_platform_std_nv_seed_write
Configuration options (set of defines)