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/