Randomness#
DRBG#
Deterministic Random Bit Generator (DRBG) (NIST, SP 800-90A).
API Reference#
#include "EverCrypt_DRBG.h"
Variables#
-
uint32_t EverCrypt_DRBG_reseed_interval#
-
uint32_t EverCrypt_DRBG_max_output_length#
-
uint32_t EverCrypt_DRBG_max_length#
-
uint32_t EverCrypt_DRBG_max_personalization_string_length#
-
uint32_t EverCrypt_DRBG_max_additional_input_length#
Typedefs#
-
typedef Spec_Hash_Definitions_hash_alg EverCrypt_DRBG_supported_alg#
-
typedef struct EverCrypt_DRBG_state_s_s EverCrypt_DRBG_state_s#
Functions#
-
EverCrypt_DRBG_state_s *EverCrypt_DRBG_create(Spec_Hash_Definitions_hash_alg a)#
Create a DRBG state.
- Parameters
a – Hash algorithm to use. The possible instantiations are …
Spec_Hash_Definitions_SHA2_256
,Spec_Hash_Definitions_SHA2_384
,Spec_Hash_Definitions_SHA2_512
, andSpec_Hash_Definitions_SHA1
.- Returns
DRBG state. Needs to be freed via
EverCrypt_DRBG_uninstantiate
.
Create a DRBG state.
a
Hash algorithm to use. The possible instantiations are …Spec_Hash_Definitions_SHA2_256
,Spec_Hash_Definitions_SHA2_384
,Spec_Hash_Definitions_SHA2_512
, andSpec_Hash_Definitions_SHA1
.
-
bool EverCrypt_DRBG_instantiate(EverCrypt_DRBG_state_s *st, uint8_t *personalization_string, uint32_t personalization_string_len)#
Instantiate the DRBG.
- Parameters
st – Pointer to DRBG state.
personalization_string – Pointer to
personalization_string_len
bytes of memory where personalization string is read from.personalization_string_len – Length of personalization string.
- Returns
True if and only if instantiation was successful.
Instantiate the DRBG.
st
Pointer to DRBG state.personalization_string_len
length of personalization string.personalization_string
Pointer topersonalization_string_len
bytes of memory where personalization string is read from.
-
bool EverCrypt_DRBG_reseed(EverCrypt_DRBG_state_s *st, uint8_t *additional_input, uint32_t additional_input_len)#
Reseed the DRBG.
- Parameters
st – Pointer to DRBG state.
additional_input_input – Pointer to
additional_input_input_len
bytes of memory where additional input is read from.additional_input_input_len – Length of additional input.
- Returns
True if and only if reseed was successful.
Reseed the DRBG.
st
Pointer to DRBG state.additional_input_input_len
Length of additional input.additional_input_input
Pointer toadditional_input_input_len
bytes of memory where additional input is read from.
-
bool EverCrypt_DRBG_generate(uint8_t *output, EverCrypt_DRBG_state_s *st, uint32_t n, uint8_t *additional_input, uint32_t additional_input_len)#
Generate output.
- Parameters
output – Pointer to
n
bytes of memory where random output is written to.st – Pointer to DRBG state.
n – Length of desired output.
additional_input_input – Pointer to
additional_input_input_len
bytes of memory where additional input is read from.additional_input_input_len – Length of additional input.
- Returns
True if and only if generate was successful.
Generate output.
output
Pointer ton
bytes of memory where random output is written to.st
Pointer to DRBG state.n
Length of desired output.additional_input_input_len
Length of additional input.additional_input_input
Pointer toadditional_input_input_len
bytes of memory where additional input is read from.
-
void EverCrypt_DRBG_uninstantiate(EverCrypt_DRBG_state_s *st)#
Uninstantiate and free the DRBG.
- Parameters
st – Pointer to DRBG state.
Uninstantiate and free the DRBG.
st
Pointer to DRBG state.
-
uint32_t EverCrypt_DRBG_min_length(Spec_Hash_Definitions_hash_alg a)#
-
bool EverCrypt_DRBG_uu___is_SHA1_s(Spec_Hash_Definitions_hash_alg uu___, EverCrypt_DRBG_state_s projectee)#
-
bool EverCrypt_DRBG_uu___is_SHA2_256_s(Spec_Hash_Definitions_hash_alg uu___, EverCrypt_DRBG_state_s projectee)#
-
bool EverCrypt_DRBG_uu___is_SHA2_384_s(Spec_Hash_Definitions_hash_alg uu___, EverCrypt_DRBG_state_s projectee)#
-
bool EverCrypt_DRBG_uu___is_SHA2_512_s(Spec_Hash_Definitions_hash_alg uu___, EverCrypt_DRBG_state_s projectee)#
Warning
doxygenfunction: Cannot find function “EverCrypt_DRBG_instantiate_sha1” in doxygen xml output for project “HACL Packages” from directory: ../../build/doxygen/xml/
Warning
doxygenfunction: Cannot find function “EverCrypt_DRBG_instantiate_sha2_256” in doxygen xml output for project “HACL Packages” from directory: ../../build/doxygen/xml/
Warning
doxygenfunction: Cannot find function “EverCrypt_DRBG_instantiate_sha2_384” in doxygen xml output for project “HACL Packages” from directory: ../../build/doxygen/xml/
Warning
doxygenfunction: Cannot find function “EverCrypt_DRBG_instantiate_sha2_512” in doxygen xml output for project “HACL Packages” from directory: ../../build/doxygen/xml/
Warning
doxygenfunction: Cannot find function “EverCrypt_DRBG_reseed_sha1” in doxygen xml output for project “HACL Packages” from directory: ../../build/doxygen/xml/
Warning
doxygenfunction: Cannot find function “EverCrypt_DRBG_reseed_sha2_256” in doxygen xml output for project “HACL Packages” from directory: ../../build/doxygen/xml/
Warning
doxygenfunction: Cannot find function “EverCrypt_DRBG_reseed_sha2_384” in doxygen xml output for project “HACL Packages” from directory: ../../build/doxygen/xml/
Warning
doxygenfunction: Cannot find function “EverCrypt_DRBG_reseed_sha2_512” in doxygen xml output for project “HACL Packages” from directory: ../../build/doxygen/xml/
Warning
doxygenfunction: Cannot find function “EverCrypt_DRBG_generate_sha1” in doxygen xml output for project “HACL Packages” from directory: ../../build/doxygen/xml/
Warning
doxygenfunction: Cannot find function “EverCrypt_DRBG_generate_sha2_256” in doxygen xml output for project “HACL Packages” from directory: ../../build/doxygen/xml/
Warning
doxygenfunction: Cannot find function “EverCrypt_DRBG_generate_sha2_384” in doxygen xml output for project “HACL Packages” from directory: ../../build/doxygen/xml/
Warning
doxygenfunction: Cannot find function “EverCrypt_DRBG_generate_sha2_512” in doxygen xml output for project “HACL Packages” from directory: ../../build/doxygen/xml/
Warning
doxygenfunction: Cannot find function “EverCrypt_DRBG_uninstantiate_sha1” in doxygen xml output for project “HACL Packages” from directory: ../../build/doxygen/xml/
Warning
doxygenfunction: Cannot find function “EverCrypt_DRBG_uninstantiate_sha2_256” in doxygen xml output for project “HACL Packages” from directory: ../../build/doxygen/xml/
Warning
doxygenfunction: Cannot find function “EverCrypt_DRBG_uninstantiate_sha2_384” in doxygen xml output for project “HACL Packages” from directory: ../../build/doxygen/xml/
Warning
doxygenfunction: Cannot find function “EverCrypt_DRBG_uninstantiate_sha2_512” in doxygen xml output for project “HACL Packages” from directory: ../../build/doxygen/xml/