2018-02-08 18:04:43 +00:00
|
|
|
/**
|
|
|
|
* \file entropy_poll.h
|
|
|
|
*
|
|
|
|
* \brief Platform-specific and custom entropy polling functions
|
|
|
|
*/
|
|
|
|
/*
|
2020-09-05 10:53:20 +00:00
|
|
|
* Copyright The Mbed TLS Contributors
|
2024-01-30 13:09:13 +00:00
|
|
|
* SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
|
2018-02-08 18:04:43 +00:00
|
|
|
*/
|
|
|
|
#ifndef MBEDTLS_ENTROPY_POLL_H
|
|
|
|
#define MBEDTLS_ENTROPY_POLL_H
|
|
|
|
|
2023-09-25 03:04:06 +00:00
|
|
|
#include "mbedtls/build_info.h"
|
2018-02-08 18:04:43 +00:00
|
|
|
|
|
|
|
#include <stddef.h>
|
|
|
|
|
|
|
|
#ifdef __cplusplus
|
|
|
|
extern "C" {
|
|
|
|
#endif
|
|
|
|
|
|
|
|
/*
|
|
|
|
* Default thresholds for built-in sources, in bytes
|
|
|
|
*/
|
|
|
|
#define MBEDTLS_ENTROPY_MIN_PLATFORM 32 /**< Minimum for platform source */
|
|
|
|
#if !defined(MBEDTLS_ENTROPY_MIN_HARDWARE)
|
|
|
|
#define MBEDTLS_ENTROPY_MIN_HARDWARE 32 /**< Minimum for the hardware source */
|
|
|
|
#endif
|
|
|
|
|
|
|
|
#if !defined(MBEDTLS_NO_PLATFORM_ENTROPY)
|
|
|
|
/**
|
|
|
|
* \brief Platform-specific entropy poll callback
|
|
|
|
*/
|
2023-04-18 08:38:24 +00:00
|
|
|
int mbedtls_platform_entropy_poll(void *data,
|
|
|
|
unsigned char *output, size_t len, size_t *olen);
|
2018-02-08 18:04:43 +00:00
|
|
|
#endif
|
|
|
|
|
|
|
|
#if defined(MBEDTLS_ENTROPY_HARDWARE_ALT)
|
|
|
|
/**
|
|
|
|
* \brief Entropy poll callback for a hardware source
|
|
|
|
*
|
2023-10-21 12:06:23 +00:00
|
|
|
* \warning This is not provided by Mbed TLS!
|
2023-09-25 03:04:06 +00:00
|
|
|
* See \c MBEDTLS_ENTROPY_HARDWARE_ALT in mbedtls_config.h.
|
2018-02-08 18:04:43 +00:00
|
|
|
*
|
|
|
|
* \note This must accept NULL as its first argument.
|
|
|
|
*/
|
2023-04-18 08:38:24 +00:00
|
|
|
int mbedtls_hardware_poll(void *data,
|
|
|
|
unsigned char *output, size_t len, size_t *olen);
|
2018-02-08 18:04:43 +00:00
|
|
|
#endif
|
|
|
|
|
|
|
|
#if defined(MBEDTLS_ENTROPY_NV_SEED)
|
|
|
|
/**
|
|
|
|
* \brief Entropy poll callback for a non-volatile seed file
|
|
|
|
*
|
|
|
|
* \note This must accept NULL as its first argument.
|
|
|
|
*/
|
2023-04-18 08:38:24 +00:00
|
|
|
int mbedtls_nv_seed_poll(void *data,
|
|
|
|
unsigned char *output, size_t len, size_t *olen);
|
2018-02-08 18:04:43 +00:00
|
|
|
#endif
|
|
|
|
|
|
|
|
#ifdef __cplusplus
|
|
|
|
}
|
|
|
|
#endif
|
|
|
|
|
|
|
|
#endif /* entropy_poll.h */
|