58QSC_CPLUSPLUS_ENABLED_START
99#define QSC_HCG_KEY_SIZE 64ULL
105#define QSC_HCG_INFO_SIZE 19ULL
111#define QSC_HCG_MAX_INFO_SIZE 56ULL
117#define QSC_HCG_NONCE_SIZE 8ULL
123#define QSC_HCG_RESEED_THRESHHOLD 65535ULL
129#define QSC_HCG_SEED_SIZE 64ULL
198QSC_CPLUSPLUS_ENABLED_END
#define QSC_HCG_KEY_SIZE
The HCG internal key size.
Definition hcg.h:99
#define QSC_HCG_NONCE_SIZE
The HCG nonce size.
Definition hcg.h:117
QSC_EXPORT_API void qsc_hcg_initialize(qsc_hcg_state *ctx, const uint8_t *seed, size_t seedlen, const uint8_t *info, size_t infolen, bool pres)
Initialize the pseudo-random provider state with a seed and optional personalization string.
Definition hcg.c:77
QSC_EXPORT_API void qsc_hcg_generate(qsc_hcg_state *ctx, uint8_t *output, size_t otplen)
Generate pseudo-random bytes using the generator.
Definition hcg.c:129
QSC_EXPORT_API void qsc_hcg_update(qsc_hcg_state *ctx, const uint8_t *seed, size_t seedlen)
Update the generator with new keying material.
Definition hcg.c:161
QSC_EXPORT_API void qsc_hcg_dispose(qsc_hcg_state *ctx)
Dispose of the HCG DRBG state.
Definition hcg.c:62
#define QSC_HCG_MAX_INFO_SIZE
The HCG maximum info size.
Definition hcg.h:111
Contains common definitions for the Quantum Secure Cryptographic (QSC) library.
#define QSC_EXPORT_API
API export macro for Microsoft compilers when importing from a DLL.
Definition qsccommon.h:605
The SHA2 family of hash functions.
The HCG state structure.
Definition hcg.h:146
size_t rpos
Definition hcg.h:151
uint8_t info[QSC_HCG_MAX_INFO_SIZE]
Definition hcg.h:148
uint8_t nonce[QSC_HCG_NONCE_SIZE]
Definition hcg.h:149
size_t inflen
Definition hcg.h:150
uint8_t key[QSC_HCG_KEY_SIZE]
Definition hcg.h:147
bool pres
Definition hcg.h:152