22#ifndef CRYPT_EAL_RAND_H
23#define CRYPT_EAL_RAND_H
27#include "crypt_algid.h"
28#include "crypt_types.h"
29#include "bsl_params.h"
108 const uint8_t *pers, uint32_t persLen);
125 const uint8_t *pers, uint32_t persLen, BSL_Param *param);
177 uint8_t *
byte, uint32_t len, uint8_t *addin, uint32_t addinLen);
246typedef struct EAL_RndCtx CRYPT_EAL_RndCtx;
297void CRYPT_EAL_DrbgDeinit(CRYPT_EAL_RndCtx *ctx);
CRYPT_RAND_AlgId
定义 crypt_algid.h:41
int32_t CRYPT_EAL_Drbgbytes(CRYPT_EAL_RndCtx *ctx, uint8_t *byte, uint32_t len)
int32_t(* CRYPT_EAL_RandFunc)(uint8_t *rand, uint32_t randLen)
rand generate callback
定义 crypt_eal_rand.h:44
int32_t CRYPT_EAL_RandSeedEx(CRYPT_EAL_LibCtx *libCtx)
bool CRYPT_EAL_RandIsValidAlgId(CRYPT_RAND_AlgId id)
Check whether the id is valid Rand algorithm ID.
CRYPT_EAL_RndCtx * CRYPT_EAL_ProviderDrbgNewCtx(CRYPT_EAL_LibCtx *libCtx, int32_t algId, const char *attrName, BSL_Param *param)
Random number initialization in the providers.
int32_t CRYPT_EAL_RandbytesWithAdin(uint8_t *byte, uint32_t len, uint8_t *addin, uint32_t addinLen)
Generate a random number.
CRYPT_EAL_RndCtx * CRYPT_EAL_GetSeedCtx(bool isParentEntropy)
Get the seed of Primary DRBG.
int32_t CRYPT_EAL_Randbytes(uint8_t *byte, uint32_t len)
int32_t(* CRYPT_EAL_RandFuncEx)(void *ctx, uint8_t *rand, uint32_t randLen)
rand generate callback
定义 crypt_eal_rand.h:66
int32_t CRYPT_EAL_DrbgSeed(CRYPT_EAL_RndCtx *ctx)
Regenerate the seed, which is equivalent to CRYPT_EAL_RandSeedWithAdin(NULL, 0).
void CRYPT_EAL_SetRandCallBack(CRYPT_EAL_RandFunc func)
set rand func callback
int32_t CRYPT_EAL_RandSeedWithAdin(uint8_t *addin, uint32_t addinLen)
Regenerate the seed.
int32_t CRYPT_EAL_RandInit(CRYPT_RAND_AlgId id, CRYPT_RandSeedMethod *seedMeth, void *seedCtx, const uint8_t *pers, uint32_t persLen)
Random number initialization interface. This interface does not support multiple threads.
int32_t CRYPT_EAL_DrbgCtrl(CRYPT_EAL_RndCtx *ctx, int32_t cmd, void *val, uint32_t valLen)
get or set rand param
int32_t CRYPT_EAL_ProviderRandInitCtx(CRYPT_EAL_LibCtx *libCtx, int32_t algId, const char *attrName, const uint8_t *pers, uint32_t persLen, BSL_Param *param)
Random number initialization in the providers.
int32_t CRYPT_EAL_RandbytesWithAdinEx(CRYPT_EAL_LibCtx *libCtx, uint8_t *byte, uint32_t len, uint8_t *addin, uint32_t addinLen)
Generate a random number.
int32_t CRYPT_EAL_DrbgSeedWithAdin(CRYPT_EAL_RndCtx *ctx, uint8_t *addin, uint32_t addinLen)
Regenerate the seed. The addtional data can be NULL. This interface supports multi-thread access.
int32_t CRYPT_EAL_DrbgInstantiate(CRYPT_EAL_RndCtx *rndCtx, const uint8_t *pers, uint32_t persLen)
Instantiate the DRBG.
void CRYPT_EAL_SetRandCallBackEx(CRYPT_EAL_RandFuncEx func)
set rand func callback
void CRYPT_EAL_RandDeinit(void)
Deinitializing the global RAND interface, this interface does not support multiple threads.
int32_t CRYPT_EAL_DrbgbytesWithAdin(CRYPT_EAL_RndCtx *ctx, uint8_t *byte, uint32_t len, uint8_t *addin, uint32_t addinLen)
Generate a random number.
void CRYPT_EAL_RandDeinitEx(CRYPT_EAL_LibCtx *libCtx)
Deinitializing the libCtx RAND interface, this interface does not support multiple threads.
int32_t CRYPT_EAL_RandbytesEx(CRYPT_EAL_LibCtx *libCtx, uint8_t *byte, uint32_t len)
int32_t CRYPT_EAL_RandSeed(void)