16#ifndef CRYPT_DECODER_H
17#define CRYPT_DECODER_H
19#include "hitls_build.h"
21#ifdef HITLS_CRYPTO_CODECSKEY
23#include "bsl_params.h"
30 const char *outFormat;
34int32_t DECODER_CommonGetParam(
const DECODER_CommonCtx *commonCtx, BSL_Param *param);
36void *DECODER_EPKI2PKI_NewCtx(
void *provCtx);
37int32_t DECODER_EPKI2PKI_GetParam(
void *ctx, BSL_Param *param);
38int32_t DECODER_EPKI2PKI_SetParam(
void *ctx,
const BSL_Param *param);
39int32_t DECODER_EPKI2PKI_Decode(
void *ctx,
const BSL_Param *inParam, BSL_Param **outParam);
40void DECODER_EPKI2PKI_FreeOutData(
void *ctx, BSL_Param *outParam);
41void DECODER_EPKI2PKI_FreeCtx(
void *ctx);
43int32_t DECODER_DER2KEY_GetParam(
void *ctx, BSL_Param *param);
44int32_t DECODER_DER2KEY_SetParam(
void *ctx,
const BSL_Param *param);
45void DECODER_DER2KEY_FreeOutData(
void *ctx, BSL_Param *outParam);
46void DECODER_DER2KEY_FreeCtx(
void *ctx);
48#ifdef HITLS_CRYPTO_RSA
49void *DECODER_RsaDer2KeyNewCtx(
void *provCtx);
50int32_t DECODER_RsaPrvKeyDer2KeyDecode(
void *ctx,
const BSL_Param *inParam, BSL_Param **outParam);
51int32_t DECODER_RsaPubKeyDer2KeyDecode(
void *ctx,
const BSL_Param *inParam, BSL_Param **outParam);
52int32_t DECODER_RsaSubPubKeyDer2KeyDecode(
void *ctx,
const BSL_Param *inParam, BSL_Param **outParam);
53int32_t DECODER_RsaSubPubKeyWithOutSeqDer2KeyDecode(
void *ctx,
const BSL_Param *inParam, BSL_Param **outParam);
54int32_t DECODER_RsaPkcs8Der2KeyDecode(
void *ctx,
const BSL_Param *inParam, BSL_Param **outParam);
57#ifdef HITLS_CRYPTO_ECDSA
58void *DECODER_EcdsaDer2KeyNewCtx(
void *provCtx);
59int32_t DECODER_EcdsaPrvKeyDer2KeyDecode(
void *ctx,
const BSL_Param *inParam, BSL_Param **outParam);
60int32_t DECODER_EcdsaSubPubKeyDer2KeyDecode(
void *ctx,
const BSL_Param *inParam, BSL_Param **outParam);
61int32_t DECODER_EcdsaSubPubKeyWithOutSeqDer2KeyDecode(
void *ctx,
const BSL_Param *inParam, BSL_Param **outParam);
62int32_t DECODER_EcdsaPkcs8Der2KeyDecode(
void *ctx,
const BSL_Param *inParam, BSL_Param **outParam);
65#ifdef HITLS_CRYPTO_SM2
66void *DECODER_Sm2Der2KeyNewCtx(
void *provCtx);
67int32_t DECODER_Sm2PrvKeyDer2KeyDecode(
void *ctx,
const BSL_Param *inParam, BSL_Param **outParam);
68int32_t DECODER_Sm2SubPubKeyDer2KeyDecode(
void *ctx,
const BSL_Param *inParam, BSL_Param **outParam);
69int32_t DECODER_Sm2SubPubKeyWithOutSeqDer2KeyDecode(
void *ctx,
const BSL_Param *inParam, BSL_Param **outParam);
70int32_t DECODER_Sm2Pkcs8Der2KeyDecode(
void *ctx,
const BSL_Param *inParam, BSL_Param **outParam);
73#ifdef HITLS_CRYPTO_ED25519
74void *DECODER_Ed25519Der2KeyNewCtx(
void *provCtx);
75int32_t DECODER_Ed25519SubPubKeyDer2KeyDecode(
void *ctx,
const BSL_Param *inParam, BSL_Param **outParam);
76int32_t DECODER_Ed25519SubPubKeyWithOutSeqDer2KeyDecode(
void *ctx,
const BSL_Param *inParam, BSL_Param **outParam);
77int32_t DECODER_Ed25519Pkcs8Der2KeyDecode(
void *ctx,
const BSL_Param *inParam, BSL_Param **outParam);
80#ifdef HITLS_CRYPTO_X25519
81void *DECODER_X25519Der2KeyNewCtx(
void *provCtx);
82int32_t DECODER_X25519SubPubKeyDer2KeyDecode(
void *ctx,
const BSL_Param *inParam, BSL_Param **outParam);
83int32_t DECODER_X25519SubPubKeyWithOutSeqDer2KeyDecode(
void *ctx,
const BSL_Param *inParam, BSL_Param **outParam);
84int32_t DECODER_X25519Pkcs8Der2KeyDecode(
void *ctx,
const BSL_Param *inParam, BSL_Param **outParam);
87#ifdef HITLS_CRYPTO_MLDSA
88void* DECODER_MldsaDer2KeyNewCtx(
void *provCtx);
89int32_t DECODER_MldsaSubPubKeyWithOutSeqDer2KeyDecode(
void *ctx,
const BSL_Param *inParam, BSL_Param **outParam);
90int32_t DECODER_MldsaSubPubKeyDer2KeyDecode(
void *ctx,
const BSL_Param *inParam, BSL_Param **outParam);
91int32_t DECODER_MldsaPkcs8Der2KeyDecode(
void *ctx,
const BSL_Param *inParam, BSL_Param **outParam);
94#ifdef HITLS_CRYPTO_MLKEM
95void* DECODER_MlkemDer2KeyNewCtx(
void *provCtx);
96int32_t DECODER_MlkemSubPubKeyWithOutSeqDer2KeyDecode(
void *ctx,
const BSL_Param *inParam, BSL_Param **outParam);
97int32_t DECODER_MlkemSubPubKeyDer2KeyDecode(
void *ctx,
const BSL_Param *inParam, BSL_Param **outParam);
98int32_t DECODER_MlkemPkcs8Der2KeyDecode(
void *ctx,
const BSL_Param *inParam, BSL_Param **outParam);
101#ifdef HITLS_CRYPTO_SLH_DSA
102void* DECODER_SlhDsaDer2KeyNewCtx(
void *provCtx);
103int32_t DECODER_SlhDsaSubPubKeyWithOutSeqDer2KeyDecode(
void *ctx,
const BSL_Param *inParam, BSL_Param **outParam);
104int32_t DECODER_SlhDsaSubPubKeyDer2KeyDecode(
void *ctx,
const BSL_Param *inParam, BSL_Param **outParam);
105int32_t DECODER_SlhDsaPkcs8Der2KeyDecode(
void *ctx,
const BSL_Param *inParam, BSL_Param **outParam);
109void *DECODER_Pem2DerNewCtx(
void *provCtx);
110int32_t DECODER_Pem2DerGetParam(
void *ctx, BSL_Param *param);
111int32_t DECODER_Pem2DerSetParam(
void *ctx,
const BSL_Param *param);
112int32_t DECODER_Pem2DerDecode(
void *ctx,
const BSL_Param *inParam, BSL_Param **outParam);
113void DECODER_Pem2DerFreeOutData(
void *ctx, BSL_Param *outParam);
114void DECODER_Pem2DerFreeCtx(
void *ctx);
117#ifdef HITLS_CRYPTO_XMSS
118void *DECODER_XmssDer2KeyNewCtx(
void *provCtx);
119int32_t DECODER_XmssSubPubKeyWithOutSeqDer2KeyDecode(
void *ctx,
const BSL_Param *inParam, BSL_Param **outParam);
122void *DECODER_LowKeyObject2PkeyObjectNewCtx(
void *provCtx);
123int32_t DECODER_LowKeyObject2PkeyObjectSetParam(
void *ctx,
const BSL_Param *param);
124int32_t DECODER_LowKeyObject2PkeyObjectGetParam(
void *ctx, BSL_Param *param);
125int32_t DECODER_LowKeyObject2PkeyObjectDecode(
void *ctx,
const BSL_Param *inParam, BSL_Param **outParam);
126void DECODER_LowKeyObject2PkeyObjectFreeOutData(
void *ctx, BSL_Param *outParam);
127void DECODER_LowKeyObject2PkeyObjectFreeCtx(
void *ctx);