20 #define HMAC_DRBG_ALGORITHM HMAC_DRBG_SHA256 23 #define DRBG_MAX_SECURITY_STRENGTH \ 24 HMAC_DRBG_MAX_SECURITY_STRENGTH ( HMAC_DRBG_ALGORITHM ) 30 #define DRBG_SECURITY_STRENGTH 128 33 #define DRBG_MIN_ENTROPY_LEN_BYTES \ 34 HMAC_DRBG_MIN_ENTROPY_LEN_BYTES ( DRBG_SECURITY_STRENGTH ) 37 #define DRBG_MAX_ENTROPY_LEN_BYTES HMAC_DRBG_MAX_ENTROPY_LEN_BYTES 40 #define DRBG_MAX_PERSONAL_LEN_BYTES HMAC_DRBG_MAX_PERSONAL_LEN_BYTES 43 #define DRBG_MAX_ADDITIONAL_LEN_BYTES HMAC_DRBG_MAX_ADDITIONAL_LEN_BYTES 46 #define DRBG_MAX_GENERATED_LEN_BYTES HMAC_DRBG_MAX_GENERATED_LEN_BYTES 74 size_t personal_len ) {
76 &
state->internal, entropy, entropy_len,
77 personal, personal_len );
96 size_t additional_len ) {
98 &
state->internal, entropy, entropy_len,
119 size_t additional_len,
127 size_t personal_len );
129 size_t additional_len );
131 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)