16#ifndef CRYPT_EAL_ENTROPY_H
17#define CRYPT_EAL_ENTROPY_H
21#include "crypt_algid.h"
22#include "crypt_types.h"
28typedef struct CryptEalEntropySource CRYPT_EAL_Es;
36typedef void (*CRYPT_EAL_EsLogFunc)(int32_t ret);
47CRYPT_EAL_Es *CRYPT_EAL_EsNew(
void);
58void CRYPT_EAL_EsFree(CRYPT_EAL_Es *es);
70int32_t CRYPT_EAL_EsInit(CRYPT_EAL_Es *es);
113int32_t CRYPT_EAL_EsCtrl(CRYPT_EAL_Es *es, int32_t type,
void *data, uint32_t len);
125uint32_t CRYPT_EAL_EsEntropyGet(CRYPT_EAL_Es *es, uint8_t *data, uint32_t len);
127typedef struct EAL_SeedPool CRYPT_EAL_SeedPoolCtx;
137CRYPT_EAL_SeedPoolCtx *CRYPT_EAL_SeedPoolNew(
bool isCreateNullPool);
148int32_t CRYPT_EAL_SeedPoolAddEs(CRYPT_EAL_SeedPoolCtx *ctx,
const CRYPT_EAL_EsPara *para);
160int32_t CRYPT_EAL_SeedPoolGetEntropy(CRYPT_EAL_SeedPoolCtx *ctx,
CRYPT_Data *entropy, uint32_t strength,
170void CRYPT_EAL_SeedPoolFree(CRYPT_EAL_SeedPoolCtx *ctx);