16#ifndef CRYPT_PROVIDER_H
17#define CRYPT_PROVIDER_H
19#include "hitls_build.h"
20#ifdef HITLS_CRYPTO_PROVIDER
22#include "crypt_eal_provider.h"
23#include "crypt_eal_implprovider.h"
30#define CRYPT_EAL_DEFAULT_PROVIDER "default"
33#define DEFAULT_PROVIDER_NAME_LEN_MAX 255
35#if defined(HITLS_CRYPTO_ENTROPY) && \
36 (defined(HITLS_CRYPTO_ENTROPY_GETENTROPY) || defined(HITLS_CRYPTO_ENTROPY_DEVRANDOM) || \
37 defined(HITLS_CRYPTO_ENTROPY_SYS) || defined(HITLS_CRYPTO_ENTROPY_HARDWARE))
38#define HITLS_CRYPTO_ENTROPY_DEFAULT
42 CRYPT_PROVIDER_GET_USER_CTX = 1,
43 CRYPT_PROVIDER_CTRL_MAX,
44} CRYPT_ProviderCtrlCmd;
49#ifdef HITLS_BSL_SAL_DL
50 char *searchProviderPath;
52#ifdef HITLS_CRYPTO_DRBG
57int32_t CRYPT_EAL_InitPreDefinedProviders(
void);
58void CRYPT_EAL_FreePreDefinedProviders(
void);
60int32_t CRYPT_EAL_DefaultProvInit(CRYPT_EAL_ProvMgrCtx *mgrCtx, BSL_Param *param,
63int32_t CRYPT_EAL_AddNewProvMgrCtx(CRYPT_EAL_LibCtx *libCtx,
const char *providerName,
const char *providerPath,
66int32_t CRYPT_EAL_ProviderGetFuncsAndMgrCtx(CRYPT_EAL_LibCtx *libCtx, int32_t operaId, int32_t algId,
67 const char *attribute,
const CRYPT_EAL_Func **funcs, CRYPT_EAL_ProvMgrCtx **mgrCtx,
bool noPushError);
69CRYPT_EAL_LibCtx* CRYPT_EAL_GetGlobalLibCtx(
void);
70CRYPT_EAL_LibCtx *GetCurrentProviderLibCtx(CRYPT_EAL_LibCtx *libCtx);
72int32_t CRYPT_EAL_ProviderQuery(CRYPT_EAL_ProvMgrCtx *ctx, int32_t operaId,
CRYPT_EAL_AlgInfo **algInfos);
void * BSL_SAL_ThreadLockHandle
定义 bsl_sal.h:63
int32_t(* CRYPT_EAL_ImplProviderInit)(CRYPT_EAL_ProvMgrCtx *mgrCtx, BSL_Param *param, CRYPT_EAL_Func *capFuncs, CRYPT_EAL_Func **outFuncs, void **provCtx)
Provider initialization function prototype,
定义 crypt_eal_implprovider.h:120
定义 crypt_eal_implprovider.h:36