47QSC_CPLUSPLUS_ENABLED_START
88#define QSC_HCG_KEY_SIZE 64ULL
94#define QSC_HCG_INFO_SIZE 19ULL
100#define QSC_HCG_MAX_INFO_SIZE 56ULL
106#define QSC_HCG_NONCE_SIZE 8ULL
112#define QSC_HCG_RESEED_THRESHHOLD 65535ULL
118#define QSC_HCG_SEED_SIZE 64ULL
187QSC_CPLUSPLUS_ENABLED_END
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 common.h:520
#define QSC_HCG_KEY_SIZE
The HCG internal key size.
Definition hcg.h:88
#define QSC_HCG_NONCE_SIZE
The HCG nonce size.
Definition hcg.h:106
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:70
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:119
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:152
QSC_EXPORT_API void qsc_hcg_dispose(qsc_hcg_state *ctx)
Dispose of the HCG DRBG state.
Definition hcg.c:55
#define QSC_HCG_MAX_INFO_SIZE
The HCG maximum info size.
Definition hcg.h:100
The SHA2 family of hash functions.
The HCG state structure.
Definition hcg.h:135
size_t rpos
Definition hcg.h:140
uint8_t info[QSC_HCG_MAX_INFO_SIZE]
Definition hcg.h:137
uint8_t nonce[QSC_HCG_NONCE_SIZE]
Definition hcg.h:138
size_t inflen
Definition hcg.h:139
uint8_t key[QSC_HCG_KEY_SIZE]
Definition hcg.h:136
bool pres
Definition hcg.h:141