22#ifndef CRYPT_EAL_PROVIDER_H
23#define CRYPT_EAL_PROVIDER_H
26#include "crypt_types.h"
28#include "bsl_params.h"
29#include "crypt_eal_implprovider.h"
72 const char *providerName, BSL_Param *param, CRYPT_EAL_ProvMgrCtx **mgrCtx);
88 BSL_Param *param, CRYPT_EAL_ProvMgrCtx **mgrCtx);
182 const char *attribute,
const CRYPT_EAL_Func **funcs,
void **provCtx);
193typedef int32_t (*CRYPT_EAL_ProviderProcessCb)(CRYPT_EAL_ProvMgrCtx *ctx,
void *args);
int32_t CRYPT_EAL_ProviderCtrl(CRYPT_EAL_ProvMgrCtx *ctx, int32_t cmd, void *val, uint32_t valLen)
Control provider interface
int32_t CRYPT_EAL_ProviderLoad(CRYPT_EAL_LibCtx *libCtx, BSL_SAL_LibFmtCmd cmd, const char *providerName, BSL_Param *param, CRYPT_EAL_ProvMgrCtx **mgrCtx)
Provider load interface
int32_t CRYPT_EAL_ProviderProcessAll(CRYPT_EAL_LibCtx *ctx, CRYPT_EAL_ProviderProcessCb cb, void *args)
Process all loaded providers with the specified callback function
CRYPT_EAL_LibCtx * CRYPT_EAL_LibCtxNew(void)
create Library context
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
int32_t CRYPT_EAL_ProviderGetFuncs(CRYPT_EAL_LibCtx *libCtx, int32_t operaId, int32_t algId, const char *attribute, const CRYPT_EAL_Func **funcs, void **provCtx)
Get function implementations from provider based on operation ID, algorithm ID and attributes
void CRYPT_EAL_LibCtxFree(CRYPT_EAL_LibCtx *libCtx)
free Library context
int32_t CRYPT_EAL_ProviderGetCaps(CRYPT_EAL_ProvMgrCtx *ctx, int32_t cmd, CRYPT_EAL_ProcessFuncCb cb, void *args)
Get and process provider capabilities
int32_t CRYPT_EAL_ProviderUnload(CRYPT_EAL_LibCtx *libCtx, BSL_SAL_LibFmtCmd cmd, const char *providerName)
Provider unload interface
int32_t CRYPT_EAL_ProviderIsLoaded(CRYPT_EAL_LibCtx *libCtx, BSL_SAL_LibFmtCmd cmd, const char *providerName, bool *isLoaded)
Check if the provider is loaded
int32_t CRYPT_EAL_ProviderSetLoadPath(CRYPT_EAL_LibCtx *libCtx, const char *searchPath)
Set the path to load the provider and support duplicate settings. Repeating settings will release the...
int32_t CRYPT_EAL_ProviderRegister(CRYPT_EAL_LibCtx *libCtx, const char *providerName, CRYPT_EAL_ImplProviderInit init, BSL_Param *param, CRYPT_EAL_ProvMgrCtx **mgrCtx)
Provider register interface