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,
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.
int reseed_required
Reseed required flag.
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.
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.
struct hmac_drbg_state internal
Algorithm internal state.
int drbg_instantiate(struct drbg_state *state, const void *personal, size_t personal_len)
Instantiate 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.
A Deterministic Random Bit Generator.
void drbg_uninstantiate(struct drbg_state *state)
Uninstantiate DRBG.
#define HMAC_DRBG_HASH(hmac_drbg)
Underlying hash 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.
uint16_t additional
Additional sense code and qualifier.
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.
HMAC_DRBG internal state.
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.
uint8_t data[48]
Additional event data.
int drbg_reseed(struct drbg_state *state, const void *additional, size_t additional_len)
Reseed DRBG.
FILE_LICENCE(GPL2_OR_LATER_OR_UBDL)