mirror of
https://github.com/yuzu-emu/mbedtls
synced 2024-11-24 18:58:32 +00:00
Add MBEDTLS_ENTROPY_HARDWARE_ALT
Makes it easier for an external module to plug its hardware entropy collector.
This commit is contained in:
parent
bf82ff0209
commit
3f77dfbd52
3 changed files with 31 additions and 0 deletions
|
@ -277,6 +277,19 @@
|
||||||
//#define MBEDTLS_AES_ENCRYPT_ALT
|
//#define MBEDTLS_AES_ENCRYPT_ALT
|
||||||
//#define MBEDTLS_AES_DECRYPT_ALT
|
//#define MBEDTLS_AES_DECRYPT_ALT
|
||||||
|
|
||||||
|
/**
|
||||||
|
* \def MBEDTLS_EMTROPY_HARDWARE_ALT
|
||||||
|
*
|
||||||
|
* Uncomment this macro to let mbed TLS use your own implementation of a
|
||||||
|
* hardware entropy collector.
|
||||||
|
*
|
||||||
|
* Your function must be called \c mbedtls_hardware_poll(), have the same
|
||||||
|
* prototype as declared in entropy_poll.h, and accept NULL as first argument.
|
||||||
|
*
|
||||||
|
* Uncomment to use your own hardware entropy collector.
|
||||||
|
*/
|
||||||
|
//#define MBEDTLS_ENTROPY_HARDWARE_ALT
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \def MBEDTLS_AES_ROM_TABLES
|
* \def MBEDTLS_AES_ROM_TABLES
|
||||||
*
|
*
|
||||||
|
|
|
@ -42,6 +42,7 @@ extern "C" {
|
||||||
#define MBEDTLS_ENTROPY_MIN_PLATFORM 32 /**< Minimum for platform source */
|
#define MBEDTLS_ENTROPY_MIN_PLATFORM 32 /**< Minimum for platform source */
|
||||||
#define MBEDTLS_ENTROPY_MIN_HAVEGE 32 /**< Minimum for HAVEGE */
|
#define MBEDTLS_ENTROPY_MIN_HAVEGE 32 /**< Minimum for HAVEGE */
|
||||||
#define MBEDTLS_ENTROPY_MIN_HARDCLOCK 4 /**< Minimum for mbedtls_timing_hardclock() */
|
#define MBEDTLS_ENTROPY_MIN_HARDCLOCK 4 /**< Minimum for mbedtls_timing_hardclock() */
|
||||||
|
#define MBEDTLS_ENTROPY_MIN_HARDWARE 32 /**< Minimum for the hardware source */
|
||||||
|
|
||||||
#if !defined(MBEDTLS_NO_PLATFORM_ENTROPY)
|
#if !defined(MBEDTLS_NO_PLATFORM_ENTROPY)
|
||||||
/**
|
/**
|
||||||
|
@ -69,6 +70,19 @@ int mbedtls_hardclock_poll( void *data,
|
||||||
unsigned char *output, size_t len, size_t *olen );
|
unsigned char *output, size_t len, size_t *olen );
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#if defined(MBEDTLS_ENTROPY_HARDWARE_ALT)
|
||||||
|
/**
|
||||||
|
* \brief Entropy poll callback for a hardware source
|
||||||
|
*
|
||||||
|
* \warning This is not provided by mbed TLS!
|
||||||
|
* See \c MBEDTLS_ENTROPY_HARDWARE_ALT in config.h.
|
||||||
|
*
|
||||||
|
* \note This must accept NULL as its first argument.
|
||||||
|
*/
|
||||||
|
int mbedtls_hardware_poll( void *data,
|
||||||
|
unsigned char *output, size_t len, size_t *olen );
|
||||||
|
#endif
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -86,6 +86,10 @@ void mbedtls_entropy_init( mbedtls_entropy_context *ctx )
|
||||||
mbedtls_entropy_add_source( ctx, mbedtls_havege_poll, &ctx->havege_data,
|
mbedtls_entropy_add_source( ctx, mbedtls_havege_poll, &ctx->havege_data,
|
||||||
MBEDTLS_ENTROPY_MIN_HAVEGE );
|
MBEDTLS_ENTROPY_MIN_HAVEGE );
|
||||||
#endif
|
#endif
|
||||||
|
#if defined(MBEDTLS_ENTROPY_HARDWARE_ALT)
|
||||||
|
mbedtls_entropy_add_source( ctx, mbedtls_hardware_poll, NULL
|
||||||
|
MBEDTLS_ENTROPY_MIN_HARDWARE );
|
||||||
|
#endif
|
||||||
#endif /* MBEDTLS_NO_DEFAULT_ENTROPY_SOURCES */
|
#endif /* MBEDTLS_NO_DEFAULT_ENTROPY_SOURCES */
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue