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.
aHash 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_lenbytes 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.
stPointer to DRBG state.personalization_string_lenlength of personalization string.personalization_stringPointer topersonalization_string_lenbytes 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_lenbytes 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.
stPointer to DRBG state.additional_input_input_lenLength of additional input.additional_input_inputPointer toadditional_input_input_lenbytes 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
nbytes 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_lenbytes 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.
outputPointer tonbytes of memory where random output is written to.stPointer to DRBG state.nLength of desired output.additional_input_input_lenLength of additional input.additional_input_inputPointer toadditional_input_input_lenbytes 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.
stPointer 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/