25 #ifndef MBEDTLS_PLATFORM_H
26 #define MBEDTLS_PLATFORM_H
28 #if !defined(MBEDTLS_CONFIG_FILE)
31 #include MBEDTLS_CONFIG_FILE
34 #if defined(MBEDTLS_HAVE_TIME)
50 #if !defined(MBEDTLS_PLATFORM_NO_STD_FUNCTIONS)
54 #if !defined(MBEDTLS_PLATFORM_STD_SNPRINTF)
56 #define MBEDTLS_PLATFORM_STD_SNPRINTF mbedtls_platform_win32_snprintf
58 #define MBEDTLS_PLATFORM_STD_SNPRINTF snprintf
61 #if !defined(MBEDTLS_PLATFORM_STD_PRINTF)
62 #define MBEDTLS_PLATFORM_STD_PRINTF printf
64 #if !defined(MBEDTLS_PLATFORM_STD_FPRINTF)
65 #define MBEDTLS_PLATFORM_STD_FPRINTF fprintf
67 #if !defined(MBEDTLS_PLATFORM_STD_CALLOC)
68 #define MBEDTLS_PLATFORM_STD_CALLOC calloc
70 #if !defined(MBEDTLS_PLATFORM_STD_FREE)
71 #define MBEDTLS_PLATFORM_STD_FREE free
73 #if !defined(MBEDTLS_PLATFORM_STD_EXIT)
74 #define MBEDTLS_PLATFORM_STD_EXIT exit
76 #if !defined(MBEDTLS_PLATFORM_STD_TIME)
77 #define MBEDTLS_PLATFORM_STD_TIME time
79 #if !defined(MBEDTLS_PLATFORM_STD_EXIT_SUCCESS)
80 #define MBEDTLS_PLATFORM_STD_EXIT_SUCCESS EXIT_SUCCESS
82 #if !defined(MBEDTLS_PLATFORM_STD_EXIT_FAILURE)
83 #define MBEDTLS_PLATFORM_STD_EXIT_FAILURE EXIT_FAILURE
85 #if defined(MBEDTLS_FS_IO)
86 #if !defined(MBEDTLS_PLATFORM_STD_NV_SEED_READ)
87 #define MBEDTLS_PLATFORM_STD_NV_SEED_READ mbedtls_platform_std_nv_seed_read
89 #if !defined(MBEDTLS_PLATFORM_STD_NV_SEED_WRITE)
90 #define MBEDTLS_PLATFORM_STD_NV_SEED_WRITE mbedtls_platform_std_nv_seed_write
92 #if !defined(MBEDTLS_PLATFORM_STD_NV_SEED_FILE)
93 #define MBEDTLS_PLATFORM_STD_NV_SEED_FILE "seedfile"
97 #if defined(MBEDTLS_PLATFORM_STD_MEM_HDR)
98 #include MBEDTLS_PLATFORM_STD_MEM_HDR
108 #if defined(MBEDTLS_PLATFORM_MEMORY)
109 #if defined(MBEDTLS_PLATFORM_FREE_MACRO) && \
110 defined(MBEDTLS_PLATFORM_CALLOC_MACRO)
111 #define mbedtls_free MBEDTLS_PLATFORM_FREE_MACRO
112 #define mbedtls_calloc MBEDTLS_PLATFORM_CALLOC_MACRO
116 extern void * (*mbedtls_calloc)(
size_t n,
size_t size );
127 int mbedtls_platform_set_calloc_free(
void * (*calloc_func)(
size_t,
size_t ),
128 void (*free_func)(
void * ) );
131 #define mbedtls_free free
132 #define mbedtls_calloc calloc
138 #if defined(MBEDTLS_PLATFORM_FPRINTF_ALT)
141 extern int (*
mbedtls_fprintf)( FILE *stream,
const char *format, ... );
150 int mbedtls_platform_set_fprintf(
int (*fprintf_func)( FILE *stream,
const char *,
153 #if defined(MBEDTLS_PLATFORM_FPRINTF_MACRO)
154 #define mbedtls_fprintf MBEDTLS_PLATFORM_FPRINTF_MACRO
156 #define mbedtls_fprintf fprintf
163 #if defined(MBEDTLS_PLATFORM_PRINTF_ALT)
173 int mbedtls_platform_set_printf(
int (*printf_func)(
const char *, ... ) );
175 #if defined(MBEDTLS_PLATFORM_PRINTF_MACRO)
176 #define mbedtls_printf MBEDTLS_PLATFORM_PRINTF_MACRO
178 #define mbedtls_printf printf
193 int mbedtls_platform_win32_snprintf(
char *s,
size_t n,
const char *fmt, ... );
196 #if defined(MBEDTLS_PLATFORM_SNPRINTF_ALT)
197 extern int (*
mbedtls_snprintf)(
char * s,
size_t n,
const char * format, ... );
206 int mbedtls_platform_set_snprintf(
int (*snprintf_func)(
char * s,
size_t n,
207 const char * format, ... ) );
209 #if defined(MBEDTLS_PLATFORM_SNPRINTF_MACRO)
210 #define mbedtls_snprintf MBEDTLS_PLATFORM_SNPRINTF_MACRO
212 #define mbedtls_snprintf snprintf
219 #if defined(MBEDTLS_PLATFORM_EXIT_ALT)
229 int mbedtls_platform_set_exit(
void (*exit_func)(
int status ) );
231 #if defined(MBEDTLS_PLATFORM_EXIT_MACRO)
232 #define mbedtls_exit MBEDTLS_PLATFORM_EXIT_MACRO
234 #define mbedtls_exit exit
241 #if defined(MBEDTLS_PLATFORM_STD_EXIT_SUCCESS)
242 #define MBEDTLS_EXIT_SUCCESS MBEDTLS_PLATFORM_STD_EXIT_SUCCESS
244 #define MBEDTLS_EXIT_SUCCESS 0
246 #if defined(MBEDTLS_PLATFORM_STD_EXIT_FAILURE)
247 #define MBEDTLS_EXIT_FAILURE MBEDTLS_PLATFORM_STD_EXIT_FAILURE
249 #define MBEDTLS_EXIT_FAILURE 1
258 #if defined(MBEDTLS_ENTROPY_NV_SEED)
259 #if !defined(MBEDTLS_PLATFORM_NO_STD_FUNCTIONS) && defined(MBEDTLS_FS_IO)
261 int mbedtls_platform_std_nv_seed_read(
unsigned char *buf,
size_t buf_len );
262 int mbedtls_platform_std_nv_seed_write(
unsigned char *buf,
size_t buf_len );
265 #if defined(MBEDTLS_PLATFORM_NV_SEED_ALT)
266 extern int (*mbedtls_nv_seed_read)(
unsigned char *buf,
size_t buf_len );
267 extern int (*mbedtls_nv_seed_write)(
unsigned char *buf,
size_t buf_len );
277 int mbedtls_platform_set_nv_seed(
278 int (*nv_seed_read_func)(
unsigned char *buf,
size_t buf_len ),
279 int (*nv_seed_write_func)(
unsigned char *buf,
size_t buf_len )
282 #if defined(MBEDTLS_PLATFORM_NV_SEED_READ_MACRO) && \
283 defined(MBEDTLS_PLATFORM_NV_SEED_WRITE_MACRO)
284 #define mbedtls_nv_seed_read MBEDTLS_PLATFORM_NV_SEED_READ_MACRO
285 #define mbedtls_nv_seed_write MBEDTLS_PLATFORM_NV_SEED_WRITE_MACRO
287 #define mbedtls_nv_seed_read mbedtls_platform_std_nv_seed_read
288 #define mbedtls_nv_seed_write mbedtls_platform_std_nv_seed_write
293 #if !defined(MBEDTLS_PLATFORM_SETUP_TEARDOWN_ALT)
307 #include "platform_alt.h"
char dummy
Placeholder member as empty structs are not portable.
Configuration options (set of defines)
Platform context structure.