19#include "hitls_build.h"
20#ifdef HITLS_CRYPTO_DRBG
23#include "crypt_drbg.h"
30#define DRBG_NONCE_FROM_ENTROPY (2)
34#define RAND_TYPE_MAC 2
35#define RAND_TYPE_AES 3
36#define RAND_TYPE_AES_DF 4
37#define RAND_TYPE_SM4_DF 5
40 DRBG_STATE_UNINITIALISED,
46 int32_t (*instantiate)(DRBG_Ctx *ctx,
const CRYPT_Data *entropy,
48 int32_t (*generate)(DRBG_Ctx *ctx, uint8_t *out, uint32_t outLen,
const CRYPT_Data *adin);
50 void (*uninstantiate)(DRBG_Ctx *ctx);
51 DRBG_Ctx* (*dup)(DRBG_Ctx *ctx);
52 void (*free)(DRBG_Ctx *ctx);
60 uint32_t reseedInterval;
61#if defined(HITLS_CRYPTO_DRBG_GM)
62 uint64_t lastReseedTime;
63 uint64_t reseedIntervalTime;
69 CRYPT_Range entropyRange;
70 CRYPT_Range nonceRange;
80 CRYPT_RandSeedMethod seedMeth;
82 bool predictionResistance;
89#ifdef HITLS_CRYPTO_DRBG_HASH
106#ifdef HITLS_CRYPTO_DRBG_HMAC
125#ifdef HITLS_CRYPTO_DRBG_CTR
141DRBG_Ctx *DRBG_NewCtrCtx(
const EAL_SymMethod *ciphMeth, uint32_t keyLen,
bool isGm,
CRYPT_MAC_AlgId
定义 crypt_algid.h:91
定义 crypt_local_types.h:303
定义 crypt_local_types.h:63
定义 crypt_local_types.h:241