21#define HMAC_DRBG_ALGORITHM HMAC_DRBG_SHA256
24#define DRBG_MAX_SECURITY_STRENGTH \
25 HMAC_DRBG_MAX_SECURITY_STRENGTH ( HMAC_DRBG_ALGORITHM )
31#define DRBG_SECURITY_STRENGTH 128
34#define DRBG_MIN_ENTROPY_LEN_BYTES \
35 HMAC_DRBG_MIN_ENTROPY_LEN_BYTES ( DRBG_SECURITY_STRENGTH )
38#define DRBG_MAX_ENTROPY_LEN_BYTES HMAC_DRBG_MAX_ENTROPY_LEN_BYTES
41#define DRBG_MAX_PERSONAL_LEN_BYTES HMAC_DRBG_MAX_PERSONAL_LEN_BYTES
44#define DRBG_MAX_ADDITIONAL_LEN_BYTES HMAC_DRBG_MAX_ADDITIONAL_LEN_BYTES
47#define DRBG_MAX_GENERATED_LEN_BYTES HMAC_DRBG_MAX_GENERATED_LEN_BYTES
75 size_t personal_len ) {
77 &
state->internal, entropy, entropy_len,
78 personal, personal_len );
97 size_t additional_len ) {
99 &
state->internal, entropy, entropy_len,
120 size_t additional_len,
128 size_t personal_len );
130 size_t additional_len );
132 size_t additional_len,
int prediction_resist,
void drbg_uninstantiate(struct drbg_state *state)
Uninstantiate DRBG.
int drbg_instantiate(struct drbg_state *state, const void *personal, size_t personal_len)
Instantiate DRBG.
int drbg_generate(struct drbg_state *state, const void *additional, size_t additional_len, int prediction_resist, void *data, size_t len)
Generate pseudorandom bits using DRBG.
int drbg_reseed(struct drbg_state *state, const void *additional, size_t additional_len)
Reseed DRBG.
static int drbg_generate_algorithm(struct drbg_state *state, const void *additional, size_t additional_len, void *data, size_t len)
Generate pseudorandom bits using DRBG algorithm.
static void drbg_instantiate_algorithm(struct drbg_state *state, const void *entropy, size_t entropy_len, const void *personal, size_t personal_len)
Instantiate DRBG algorithm.
#define HMAC_DRBG_ALGORITHM
Choose HMAC_DRBG using SHA-256.
static void drbg_reseed_algorithm(struct drbg_state *state, const void *entropy, size_t entropy_len, const void *additional, size_t additional_len)
Reseed DRBG algorithm.
uint8_t data[48]
Additional event data.
#define FILE_LICENCE(_licence)
Declare a particular licence as applying to a file.
#define FILE_SECBOOT(_status)
Declare a file's UEFI Secure Boot permission status.
int hmac_drbg_generate(struct digest_algorithm *hash, struct hmac_drbg_state *state, const void *additional, size_t additional_len, void *data, size_t len)
Generate pseudorandom bits using HMAC_DRBG.
void hmac_drbg_reseed(struct digest_algorithm *hash, struct hmac_drbg_state *state, const void *entropy, size_t entropy_len, const void *additional, size_t additional_len)
Reseed HMAC_DRBG.
void hmac_drbg_instantiate(struct digest_algorithm *hash, struct hmac_drbg_state *state, const void *entropy, size_t entropy_len, const void *personal, size_t personal_len)
Instantiate HMAC_DRBG.
#define HMAC_DRBG_HASH(hmac_drbg)
Underlying hash algorithm.
uint16_t additional
Additional sense code and qualifier.
A Deterministic Random Bit Generator.
struct hmac_drbg_state internal
Algorithm internal state.
int reseed_required
Reseed required flag.
HMAC_DRBG internal state.