API参考
载入中...
搜索中...
未找到
crypt_decoder.h
1/*
2 * This file is part of the openHiTLS project.
3 *
4 * openHiTLS is licensed under the Mulan PSL v2.
5 * You can use this software according to the terms and conditions of the Mulan PSL v2.
6 * You may obtain a copy of Mulan PSL v2 at:
7 *
8 * http://license.coscl.org.cn/MulanPSL2
9 *
10 * THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
11 * EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
12 * MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
13 * See the Mulan PSL v2 for more details.
14 */
15
16#ifndef CRYPT_DECODER_H
17#define CRYPT_DECODER_H
18
19#include "hitls_build.h"
20
21#ifdef HITLS_CRYPTO_CODECSKEY
22#include <stdint.h>
23#include "bsl_params.h"
24
25#ifdef __cplusplus
26extern "C" {
27#endif
28
29typedef struct {
30 const char *outFormat;
31 const char *outType;
32} DECODER_CommonCtx;
33
34int32_t DECODER_CommonGetParam(const DECODER_CommonCtx *commonCtx, BSL_Param *param);
35
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);
42
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);
47
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);
55#endif
56
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);
63#endif
64
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);
71#endif
72
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);
78#endif
79
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);
85#endif
86
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);
92#endif
93
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);
99#endif
100
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);
106#endif
107
108#ifdef HITLS_BSL_PEM
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);
115#endif
116
117#ifdef HITLS_CRYPTO_XMSS
118void *DECODER_XmssDer2KeyNewCtx(void *provCtx);
119int32_t DECODER_XmssSubPubKeyWithOutSeqDer2KeyDecode(void *ctx, const BSL_Param *inParam, BSL_Param **outParam);
120#endif
121
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);
128
129#ifdef __cplusplus
130}
131#endif
132
133#endif /* HITLS_CRYPTO_CODECSKEY */
134
135#endif /* CRYPT_DECODER_H */