132b31808SJens Wiklander /** 232b31808SJens Wiklander * \file entropy_poll.h 332b31808SJens Wiklander * 432b31808SJens Wiklander * \brief Platform-specific and custom entropy polling functions 532b31808SJens Wiklander */ 632b31808SJens Wiklander /* 732b31808SJens Wiklander * Copyright The Mbed TLS Contributors 8*b0563631STom Van Eyck * SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later 932b31808SJens Wiklander */ 1032b31808SJens Wiklander #ifndef MBEDTLS_ENTROPY_POLL_H 1132b31808SJens Wiklander #define MBEDTLS_ENTROPY_POLL_H 1232b31808SJens Wiklander 1332b31808SJens Wiklander #include "mbedtls/build_info.h" 1432b31808SJens Wiklander 1532b31808SJens Wiklander #include <stddef.h> 1632b31808SJens Wiklander 1732b31808SJens Wiklander #ifdef __cplusplus 1832b31808SJens Wiklander extern "C" { 1932b31808SJens Wiklander #endif 2032b31808SJens Wiklander 2132b31808SJens Wiklander /* 2232b31808SJens Wiklander * Default thresholds for built-in sources, in bytes 2332b31808SJens Wiklander */ 2432b31808SJens Wiklander #define MBEDTLS_ENTROPY_MIN_PLATFORM 32 /**< Minimum for platform source */ 2532b31808SJens Wiklander #if !defined(MBEDTLS_ENTROPY_MIN_HARDWARE) 2632b31808SJens Wiklander #define MBEDTLS_ENTROPY_MIN_HARDWARE 32 /**< Minimum for the hardware source */ 2732b31808SJens Wiklander #endif 2832b31808SJens Wiklander 2932b31808SJens Wiklander #if !defined(MBEDTLS_NO_PLATFORM_ENTROPY) 3032b31808SJens Wiklander /** 3132b31808SJens Wiklander * \brief Platform-specific entropy poll callback 3232b31808SJens Wiklander */ 3332b31808SJens Wiklander int mbedtls_platform_entropy_poll(void *data, 3432b31808SJens Wiklander unsigned char *output, size_t len, size_t *olen); 3532b31808SJens Wiklander #endif 3632b31808SJens Wiklander 3732b31808SJens Wiklander #if defined(MBEDTLS_ENTROPY_HARDWARE_ALT) 3832b31808SJens Wiklander /** 3932b31808SJens Wiklander * \brief Entropy poll callback for a hardware source 4032b31808SJens Wiklander * 41*b0563631STom Van Eyck * \warning This is not provided by Mbed TLS! 4232b31808SJens Wiklander * See \c MBEDTLS_ENTROPY_HARDWARE_ALT in mbedtls_config.h. 4332b31808SJens Wiklander * 4432b31808SJens Wiklander * \note This must accept NULL as its first argument. 4532b31808SJens Wiklander */ 4632b31808SJens Wiklander int mbedtls_hardware_poll(void *data, 4732b31808SJens Wiklander unsigned char *output, size_t len, size_t *olen); 4832b31808SJens Wiklander #endif 4932b31808SJens Wiklander 5032b31808SJens Wiklander #if defined(MBEDTLS_ENTROPY_NV_SEED) 5132b31808SJens Wiklander /** 5232b31808SJens Wiklander * \brief Entropy poll callback for a non-volatile seed file 5332b31808SJens Wiklander * 5432b31808SJens Wiklander * \note This must accept NULL as its first argument. 5532b31808SJens Wiklander */ 5632b31808SJens Wiklander int mbedtls_nv_seed_poll(void *data, 5732b31808SJens Wiklander unsigned char *output, size_t len, size_t *olen); 5832b31808SJens Wiklander #endif 5932b31808SJens Wiklander 6032b31808SJens Wiklander #ifdef __cplusplus 6132b31808SJens Wiklander } 6232b31808SJens Wiklander #endif 6332b31808SJens Wiklander 6432b31808SJens Wiklander #endif /* entropy_poll.h */ 65