19#include "hitls_build.h"
20#ifdef HITLS_CRYPTO_CODECS
21#include "crypt_eal_implprovider.h"
22#include "crypt_eal_codecs.h"
28#define CRYPT_DECODER_STATE_UNTRIED 1
29#define CRYPT_DECODER_STATE_TRING 2
30#define CRYPT_DECODER_STATE_TRIED 3
31#define CRYPT_DECODER_STATE_SUCCESS 4
32#define MAX_CRYPT_DECODER_FORMAT_TYPE_STR_LEN 64
36typedef struct CRYPT_DECODER_Method {
37 CRYPT_DECODER_IMPL_NewCtx newCtx;
38 CRYPT_DECODER_IMPL_SetParam setParam;
39 CRYPT_DECODER_IMPL_GetParam getParam;
40 CRYPT_DECODER_IMPL_Decode decode;
41 CRYPT_DECODER_IMPL_FreeOutData freeOutData;
42 CRYPT_DECODER_IMPL_FreeCtx freeCtx;
43} CRYPT_DECODER_Method;
45struct CRYPT_DecoderCtx {
47 CRYPT_EAL_ProvMgrCtx *providerMgrCtx;
51 const char *outFormat;
54 CRYPT_DECODER_Method *method;
64typedef struct CRYPT_DECODER_Node {
67 CRYPT_DECODER_Ctx *decoderCtx;
71#define MAX_CRYPT_DECODE_FORMAT_TYPE_SIZE 128
72struct CRYPT_DECODER_PoolCtx {
73 CRYPT_EAL_LibCtx *libCtx;
75 const char *inputFormat;
76 const char *inputType;
77 int32_t inputPkeyAlgId;
79 const char *targetFormat;
80 const char *targetType;
81 int32_t targetKeyType;
90 const char *outFormat;
94int32_t CRYPT_DECODE_ParseDecoderAttr(
const char *attrName, DECODER_AttrInfo *info);
96CRYPT_DECODER_Ctx *CRYPT_DECODE_NewDecoderCtxByMethod(
const CRYPT_EAL_Func *funcs, CRYPT_EAL_ProvMgrCtx *mgrCtx,
97 const char *attrName);