35 #ifndef MBEDTLS_PLATFORM_H
36 #define MBEDTLS_PLATFORM_H
38 #if !defined(MBEDTLS_CONFIG_FILE)
41 #include MBEDTLS_CONFIG_FILE
44 #if defined(MBEDTLS_HAVE_TIME)
48 #define MBEDTLS_ERR_PLATFORM_HW_ACCEL_FAILED -0x0070
49 #define MBEDTLS_ERR_PLATFORM_FEATURE_UNSUPPORTED -0x0072
63 #if !defined(MBEDTLS_PLATFORM_NO_STD_FUNCTIONS)
67 #if !defined(MBEDTLS_PLATFORM_STD_SNPRINTF)
69 #define MBEDTLS_PLATFORM_STD_SNPRINTF mbedtls_platform_win32_snprintf
71 #define MBEDTLS_PLATFORM_STD_SNPRINTF snprintf
74 #if !defined(MBEDTLS_PLATFORM_STD_PRINTF)
75 #define MBEDTLS_PLATFORM_STD_PRINTF printf
77 #if !defined(MBEDTLS_PLATFORM_STD_FPRINTF)
78 #define MBEDTLS_PLATFORM_STD_FPRINTF fprintf
80 #if !defined(MBEDTLS_PLATFORM_STD_CALLOC)
81 #define MBEDTLS_PLATFORM_STD_CALLOC calloc
83 #if !defined(MBEDTLS_PLATFORM_STD_FREE)
84 #define MBEDTLS_PLATFORM_STD_FREE free
86 #if !defined(MBEDTLS_PLATFORM_STD_EXIT)
87 #define MBEDTLS_PLATFORM_STD_EXIT exit
89 #if !defined(MBEDTLS_PLATFORM_STD_TIME)
90 #define MBEDTLS_PLATFORM_STD_TIME time
92 #if !defined(MBEDTLS_PLATFORM_STD_EXIT_SUCCESS)
93 #define MBEDTLS_PLATFORM_STD_EXIT_SUCCESS EXIT_SUCCESS
95 #if !defined(MBEDTLS_PLATFORM_STD_EXIT_FAILURE)
96 #define MBEDTLS_PLATFORM_STD_EXIT_FAILURE EXIT_FAILURE
98 #if defined(MBEDTLS_FS_IO)
99 #if !defined(MBEDTLS_PLATFORM_STD_NV_SEED_READ)
100 #define MBEDTLS_PLATFORM_STD_NV_SEED_READ mbedtls_platform_std_nv_seed_read
102 #if !defined(MBEDTLS_PLATFORM_STD_NV_SEED_WRITE)
103 #define MBEDTLS_PLATFORM_STD_NV_SEED_WRITE mbedtls_platform_std_nv_seed_write
105 #if !defined(MBEDTLS_PLATFORM_STD_NV_SEED_FILE)
106 #define MBEDTLS_PLATFORM_STD_NV_SEED_FILE "seedfile"
110 #if defined(MBEDTLS_PLATFORM_STD_MEM_HDR)
111 #include MBEDTLS_PLATFORM_STD_MEM_HDR
121 #if defined(MBEDTLS_PLATFORM_MEMORY)
122 #if defined(MBEDTLS_PLATFORM_FREE_MACRO) && \
123 defined(MBEDTLS_PLATFORM_CALLOC_MACRO)
124 #define mbedtls_free MBEDTLS_PLATFORM_FREE_MACRO
125 #define mbedtls_calloc MBEDTLS_PLATFORM_CALLOC_MACRO
141 int mbedtls_platform_set_calloc_free(
void * (*calloc_func)(
size_t,
size_t ),
142 void (*free_func)(
void * ) );
145 #define mbedtls_free free
146 #define mbedtls_calloc calloc
152 #if defined(MBEDTLS_PLATFORM_FPRINTF_ALT)
155 extern int (*
mbedtls_fprintf)( FILE *stream,
const char *format, ... );
166 int mbedtls_platform_set_fprintf(
int (*fprintf_func)( FILE *stream,
const char *,
169 #if defined(MBEDTLS_PLATFORM_FPRINTF_MACRO)
170 #define mbedtls_fprintf MBEDTLS_PLATFORM_FPRINTF_MACRO
172 #define mbedtls_fprintf fprintf
179 #if defined(MBEDTLS_PLATFORM_PRINTF_ALT)
191 int mbedtls_platform_set_printf(
int (*printf_func)(
const char *, ... ) );
193 #if defined(MBEDTLS_PLATFORM_PRINTF_MACRO)
194 #define mbedtls_printf MBEDTLS_PLATFORM_PRINTF_MACRO
196 #define mbedtls_printf printf
211 int mbedtls_platform_win32_snprintf(
char *s,
size_t n,
const char *fmt, ... );
214 #if defined(MBEDTLS_PLATFORM_SNPRINTF_ALT)
215 extern int (*
mbedtls_snprintf)(
char * s,
size_t n,
const char * format, ... );
225 int mbedtls_platform_set_snprintf(
int (*snprintf_func)(
char * s,
size_t n,
226 const char * format, ... ) );
228 #if defined(MBEDTLS_PLATFORM_SNPRINTF_MACRO)
229 #define mbedtls_snprintf MBEDTLS_PLATFORM_SNPRINTF_MACRO
231 #define mbedtls_snprintf MBEDTLS_PLATFORM_STD_SNPRINTF
238 #if defined(MBEDTLS_PLATFORM_EXIT_ALT)
250 int mbedtls_platform_set_exit(
void (*exit_func)(
int status ) );
252 #if defined(MBEDTLS_PLATFORM_EXIT_MACRO)
253 #define mbedtls_exit MBEDTLS_PLATFORM_EXIT_MACRO
255 #define mbedtls_exit exit
262 #if defined(MBEDTLS_PLATFORM_STD_EXIT_SUCCESS)
263 #define MBEDTLS_EXIT_SUCCESS MBEDTLS_PLATFORM_STD_EXIT_SUCCESS
265 #define MBEDTLS_EXIT_SUCCESS 0
267 #if defined(MBEDTLS_PLATFORM_STD_EXIT_FAILURE)
268 #define MBEDTLS_EXIT_FAILURE MBEDTLS_PLATFORM_STD_EXIT_FAILURE
270 #define MBEDTLS_EXIT_FAILURE 1
279 #if defined(MBEDTLS_ENTROPY_NV_SEED)
280 #if !defined(MBEDTLS_PLATFORM_NO_STD_FUNCTIONS) && defined(MBEDTLS_FS_IO)
282 int mbedtls_platform_std_nv_seed_read(
unsigned char *buf,
size_t buf_len );
283 int mbedtls_platform_std_nv_seed_write(
unsigned char *buf,
size_t buf_len );
286 #if defined(MBEDTLS_PLATFORM_NV_SEED_ALT)
287 extern int (*mbedtls_nv_seed_read)(
unsigned char *buf,
size_t buf_len );
288 extern int (*mbedtls_nv_seed_write)(
unsigned char *buf,
size_t buf_len );
299 int mbedtls_platform_set_nv_seed(
300 int (*nv_seed_read_func)(
unsigned char *buf,
size_t buf_len ),
301 int (*nv_seed_write_func)(
unsigned char *buf,
size_t buf_len )
304 #if defined(MBEDTLS_PLATFORM_NV_SEED_READ_MACRO) && \
305 defined(MBEDTLS_PLATFORM_NV_SEED_WRITE_MACRO)
306 #define mbedtls_nv_seed_read MBEDTLS_PLATFORM_NV_SEED_READ_MACRO
307 #define mbedtls_nv_seed_write MBEDTLS_PLATFORM_NV_SEED_WRITE_MACRO
309 #define mbedtls_nv_seed_read mbedtls_platform_std_nv_seed_read
310 #define mbedtls_nv_seed_write mbedtls_platform_std_nv_seed_write
315 #if !defined(MBEDTLS_PLATFORM_SETUP_TEARDOWN_ALT)
330 #include "platform_alt.h"