22#ifndef CRYPT_EAL_PROVIDER_LOCAL_H
23#define CRYPT_EAL_PROVIDER_LOCAL_H
25#include "hitls_build.h"
26#ifdef HITLS_CRYPTO_PROVIDER
28#include "sal_atomic.h"
29#include "crypt_eal_implprovider.h"
31#include "eal_drbg_local.h"
32#include "crypt_provider.h"
38#define DEFAULT_PROVIDER_PATH_LEN_MAX 4095
40struct EAL_ProviderMgrCtx {
41#ifdef HITLS_BSL_SAL_DL
48#ifdef HITLS_CRYPTO_ENTROPY_DEFAULT
49 EAL_SeedDrbg providerSeed;
51 struct EAL_LibCtx *libCtx;
55 CRYPT_EAL_ProvFreeCb provFreeCb;
56 CRYPT_EAL_ProvQueryCb provQueryCb;
57 CRYPT_EAL_ProvCtrlCb provCtrlCb;
58 CRYPT_EAL_ProvGetCapsCb provGetCap;
61int32_t CRYPT_EAL_InitProviderMethod(CRYPT_EAL_ProvMgrCtx *ctx, BSL_Param *param,
63CRYPT_EAL_LibCtx *CRYPT_EAL_LibCtxNewInternal(
void);
64int32_t CRYPT_EAL_CompareAlgAndAttr(CRYPT_EAL_LibCtx *localCtx, int32_t operaId,
65 int32_t algId,
const char *attribute,
const CRYPT_EAL_Func **funcs, CRYPT_EAL_ProvMgrCtx **mgrCtx,
bool noPushError);
67void CRYPT_EAL_ProviderMgrCtxFree(CRYPT_EAL_ProvMgrCtx *ctx);
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