1 /** 2 * \file entropy_poll.h 3 * 4 * \brief Platform-specific and custom entropy polling functions 5 */ 6 /* 7 * Copyright The Mbed TLS Contributors 8 * SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later 9 */ 10 #ifndef MBEDTLS_ENTROPY_POLL_H 11 #define MBEDTLS_ENTROPY_POLL_H 12 13 #include "mbedtls/build_info.h" 14 15 #include <stddef.h> 16 17 #ifdef __cplusplus 18 extern "C" { 19 #endif 20 21 /* 22 * Default thresholds for built-in sources, in bytes 23 */ 24 #define MBEDTLS_ENTROPY_MIN_PLATFORM 32 /**< Minimum for platform source */ 25 #if !defined(MBEDTLS_ENTROPY_MIN_HARDWARE) 26 #define MBEDTLS_ENTROPY_MIN_HARDWARE 32 /**< Minimum for the hardware source */ 27 #endif 28 29 #if !defined(MBEDTLS_NO_PLATFORM_ENTROPY) 30 /** 31 * \brief Platform-specific entropy poll callback 32 */ 33 int mbedtls_platform_entropy_poll(void *data, 34 unsigned char *output, size_t len, size_t *olen); 35 #endif 36 37 #if defined(MBEDTLS_ENTROPY_HARDWARE_ALT) 38 /** 39 * \brief Entropy poll callback for a hardware source 40 * 41 * \warning This is not provided by Mbed TLS! 42 * See \c MBEDTLS_ENTROPY_HARDWARE_ALT in mbedtls_config.h. 43 * 44 * \note This must accept NULL as its first argument. 45 */ 46 int mbedtls_hardware_poll(void *data, 47 unsigned char *output, size_t len, size_t *olen); 48 #endif 49 50 #if defined(MBEDTLS_ENTROPY_NV_SEED) 51 /** 52 * \brief Entropy poll callback for a non-volatile seed file 53 * 54 * \note This must accept NULL as its first argument. 55 */ 56 int mbedtls_nv_seed_poll(void *data, 57 unsigned char *output, size_t len, size_t *olen); 58 #endif 59 60 #ifdef __cplusplus 61 } 62 #endif 63 64 #endif /* entropy_poll.h */ 65