xref: /optee_os/lib/libmbedtls/mbedtls/library/entropy_poll.h (revision b0563631928755fe864b97785160fb3088e9efdc)
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