File platform.h
This file contains the definitions and functions of the Mbed TLS platform abstraction layer.
The platform abstraction layer removes the need for the library to directly link to standard C library functions or operating system services, making the library easier to port and embed. Application developers and users of the library can provide their own implementations of these functions, or implementations specific to their platform, which can be statically linked to the library or dynamically configured at runtime.
When all compilation options related to platform abstraction are disabled, this header just defines mbedtls_xxx function names as aliases to the standard xxx function.
Most modules in the library and example programs are expected to include this header.
Defines
-
MBEDTLS_ERR_PLATFORM_HW_ACCEL_FAILED
Hardware accelerator failed
-
MBEDTLS_ERR_PLATFORM_FEATURE_UNSUPPORTED
The requested feature is not supported by the platform
-
MBEDTLS_EXIT_SUCCESS
-
MBEDTLS_EXIT_FAILURE
Functions
-
void *mbedtls_calloc(size_t n, size_t size)
-
void mbedtls_free(void *ptr)
-
int mbedtls_platform_set_calloc_free(void *(*calloc_func)(size_t, size_t), void (*free_func)(void*))
This function dynamically sets the memory-management functions used by the library, during runtime.
- Parameters
calloc_func – The
callocfunction implementation.free_func – The
freefunction implementation.
- Returns
0.
-
int mbedtls_platform_set_fprintf(int (*fprintf_func)(FILE *stream, const char*, ...))
This function dynamically configures the fprintf function that is called when the mbedtls_fprintf() function is invoked by the library.
- Parameters
fprintf_func – The
fprintffunction implementation.- Returns
0.
-
int mbedtls_platform_set_printf(int (*printf_func)(const char*, ...))
This function dynamically configures the snprintf function that is called when the mbedtls_snprintf() function is invoked by the library.
- Parameters
printf_func – The
printffunction implementation.- Returns
0on success.
-
int mbedtls_platform_set_snprintf(int (*snprintf_func)(char *s, size_t n, const char *format, ...))
This function allows configuring a custom
snprintffunction pointer.- Parameters
snprintf_func – The
snprintffunction implementation.- Returns
0on success.
-
int mbedtls_platform_set_vsnprintf(int (*vsnprintf_func)(char *s, size_t n, const char *format, va_list arg))
Set your own snprintf function pointer.
- Parameters
vsnprintf_func – The
vsnprintffunction implementation- Returns
0
-
int mbedtls_platform_set_exit(void (*exit_func)(int status))
This function dynamically configures the exit function that is called when the mbedtls_exit() function is invoked by the library.
- Parameters
exit_func – The
exitfunction implementation.- Returns
0on success.
-
int mbedtls_platform_set_nv_seed(int (*nv_seed_read_func)(unsigned char *buf, size_t buf_len), int (*nv_seed_write_func)(unsigned char *buf, size_t buf_len))
This function allows configuring custom seed file writing and reading functions.
- Parameters
nv_seed_read_func – The seed reading function implementation.
nv_seed_write_func – The seed writing function implementation.
- Returns
0on success.
-
int mbedtls_platform_setup(mbedtls_platform_context *ctx)
This function performs any platform-specific initialization operations.
Note
This function should be called before any other library functions.
Its implementation is platform-specific, and unless platform-specific code is provided, it does nothing.
Note
The usage and necessity of this function is dependent on the platform.
- Parameters
ctx – The platform context.
- Returns
0on success.
-
void mbedtls_platform_teardown(mbedtls_platform_context *ctx)
This function performs any platform teardown operations.
Its implementation is platform-specific, and unless platform-specific code is provided, it does nothing.
Note
This function should be called after every other Mbed TLS module has been correctly freed using the appropriate free function.
Note
The usage and necessity of this function is dependent on the platform.
- Parameters
ctx – The platform context.
Variables
-
int (*mbedtls_fprintf)(FILE *stream, const char *format, ...)
-
int (*mbedtls_printf)(const char *format, ...)
-
int (*mbedtls_snprintf)(char *s, size_t n, const char *format, ...)
-
int (*mbedtls_vsnprintf)(char *s, size_t n, const char *format, va_list arg)
-
void (*mbedtls_exit)(int status)
-
int (*mbedtls_nv_seed_read)(unsigned char *buf, size_t buf_len)
-
int (*mbedtls_nv_seed_write)(unsigned char *buf, size_t buf_len)