| #ifndef _IPXE_NULL_ENTROPY_H | |
| #define _IPXE_NULL_ENTROPY_H | |
| /** @file | |
| * | |
| * Nonexistent entropy source | |
| * | |
| * This source provides no entropy and must NOT be used in a | |
| * security-sensitive environment. | |
| */ | |
| FILE_LICENCE ( GPL2_OR_LATER_OR_UBDL ); | |
| #include <stdint.h> | |
| #ifdef ENTROPY_NULL | |
| #define ENTROPY_PREFIX_null | |
| #else | |
| #define ENTROPY_PREFIX_null __null_ | |
| #endif | |
| static inline __always_inline int | |
| ENTROPY_INLINE ( null, entropy_enable ) ( void ) { | |
| /* Do nothing */ | |
| return 0; | |
| } | |
| static inline __always_inline void | |
| ENTROPY_INLINE ( null, entropy_disable ) ( void ) { | |
| /* Do nothing */ | |
| } | |
| static inline __always_inline min_entropy_t | |
| ENTROPY_INLINE ( null, min_entropy_per_sample ) ( void ) { | |
| /* Actual amount of min-entropy is zero. To avoid | |
| * division-by-zero errors and to allow compilation of | |
| * entropy-consuming code, pretend to have 1 bit of entropy in | |
| * each sample. | |
| */ | |
| return MIN_ENTROPY ( 1.0 ); | |
| } | |
| static inline __always_inline int | |
| ENTROPY_INLINE ( null, get_noise ) ( noise_sample_t *noise ) { | |
| /* All sample values are constant */ | |
| *noise = 0x01; | |
| return 0; | |
| } | |
| #endif /* _IPXE_NULL_ENTROPY_H */ |