• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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_DECODE_KEY_IMPL_H
17 #define CRYPT_DECODE_KEY_IMPL_H
18 
19 #ifdef __cplusplus
20 extern "C" {
21 #endif
22 
23 #include "hitls_build.h"
24 
25 #ifdef HITLS_CRYPTO_CODECSKEY
26 #include <stdint.h>
27 #include "bsl_params.h"
28 
29 typedef struct {
30     const char *outFormat;
31     const char *outType;
32 } DECODER_CommonCtx;
33 
34 int32_t DECODER_CommonGetParam(const DECODER_CommonCtx *commonCtx, BSL_Param *param);
35 
36 void *DECODER_EPKI2PKI_NewCtx(void *provCtx);
37 int32_t DECODER_EPKI2PKI_GetParam(void *ctx, BSL_Param *param);
38 int32_t DECODER_EPKI2PKI_SetParam(void *ctx, const BSL_Param *param);
39 int32_t DECODER_EPKI2PKI_Decode(void *ctx, const BSL_Param *inParam, BSL_Param **outParam);
40 void DECODER_EPKI2PKI_FreeOutData(void *ctx, BSL_Param *outParam);
41 void DECODER_EPKI2PKI_FreeCtx(void *ctx);
42 
43 int32_t DECODER_DER2KEY_GetParam(void *ctx, BSL_Param *param);
44 int32_t DECODER_DER2KEY_SetParam(void *ctx, const BSL_Param *param);
45 void DECODER_DER2KEY_FreeOutData(void *ctx, BSL_Param *outParam);
46 void DECODER_DER2KEY_FreeCtx(void *ctx);
47 
48 #ifdef HITLS_CRYPTO_RSA
49 void *DECODER_RsaDer2KeyNewCtx(void *provCtx);
50 int32_t DECODER_RsaPrvKeyDer2KeyDecode(void *ctx, const BSL_Param *inParam, BSL_Param **outParam);
51 int32_t DECODER_RsaPubKeyDer2KeyDecode(void *ctx, const BSL_Param *inParam, BSL_Param **outParam);
52 int32_t DECODER_RsaSubPubKeyDer2KeyDecode(void *ctx, const BSL_Param *inParam, BSL_Param **outParam);
53 int32_t DECODER_RsaSubPubKeyWithOutSeqDer2KeyDecode(void *ctx, const BSL_Param *inParam, BSL_Param **outParam);
54 int32_t DECODER_RsaPkcs8Der2KeyDecode(void *ctx, const BSL_Param *inParam, BSL_Param **outParam);
55 #endif
56 
57 #ifdef HITLS_CRYPTO_ECDSA
58 void *DECODER_EcdsaDer2KeyNewCtx(void *provCtx);
59 int32_t DECODER_EcdsaPrvKeyDer2KeyDecode(void *ctx, const BSL_Param *inParam, BSL_Param **outParam);
60 int32_t DECODER_EcdsaSubPubKeyDer2KeyDecode(void *ctx, const BSL_Param *inParam, BSL_Param **outParam);
61 int32_t DECODER_EcdsaSubPubKeyWithOutSeqDer2KeyDecode(void *ctx, const BSL_Param *inParam, BSL_Param **outParam);
62 int32_t DECODER_EcdsaPkcs8Der2KeyDecode(void *ctx, const BSL_Param *inParam, BSL_Param **outParam);
63 #endif
64 
65 #ifdef HITLS_CRYPTO_SM2
66 void *DECODER_Sm2Der2KeyNewCtx(void *provCtx);
67 int32_t DECODER_Sm2PrvKeyDer2KeyDecode(void *ctx, const BSL_Param *inParam, BSL_Param **outParam);
68 int32_t DECODER_Sm2SubPubKeyDer2KeyDecode(void *ctx, const BSL_Param *inParam, BSL_Param **outParam);
69 int32_t DECODER_Sm2SubPubKeyWithOutSeqDer2KeyDecode(void *ctx, const BSL_Param *inParam, BSL_Param **outParam);
70 int32_t DECODER_Sm2Pkcs8Der2KeyDecode(void *ctx, const BSL_Param *inParam, BSL_Param **outParam);
71 #endif
72 
73 #ifdef HITLS_CRYPTO_ED25519
74 void *DECODER_Ed25519Der2KeyNewCtx(void *provCtx);
75 int32_t DECODER_Ed25519SubPubKeyDer2KeyDecode(void *ctx, const BSL_Param *inParam, BSL_Param **outParam);
76 int32_t DECODER_Ed25519SubPubKeyWithOutSeqDer2KeyDecode(void *ctx, const BSL_Param *inParam, BSL_Param **outParam);
77 int32_t DECODER_Ed25519Pkcs8Der2KeyDecode(void *ctx, const BSL_Param *inParam, BSL_Param **outParam);
78 #endif
79 
80 #ifdef HITLS_BSL_PEM
81 void *DECODER_Pem2DerNewCtx(void *provCtx);
82 int32_t DECODER_Pem2DerGetParam(void *ctx, BSL_Param *param);
83 int32_t DECODER_Pem2DerSetParam(void *ctx, const BSL_Param *param);
84 int32_t DECODER_Pem2DerDecode(void *ctx, const BSL_Param *inParam, BSL_Param **outParam);
85 void DECODER_Pem2DerFreeOutData(void *ctx, BSL_Param *outParam);
86 void DECODER_Pem2DerFreeCtx(void *ctx);
87 #endif
88 
89 void *DECODER_LowKeyObject2PkeyObjectNewCtx(void *provCtx);
90 int32_t DECODER_LowKeyObject2PkeyObjectSetParam(void *ctx, const BSL_Param *param);
91 int32_t DECODER_LowKeyObject2PkeyObjectGetParam(void *ctx, BSL_Param *param);
92 int32_t DECODER_LowKeyObject2PkeyObjectDecode(void *ctx, const BSL_Param *inParam, BSL_Param **outParam);
93 void DECODER_LowKeyObject2PkeyObjectFreeOutData(void *ctx, BSL_Param *outParam);
94 void DECODER_LowKeyObject2PkeyObjectFreeCtx(void *ctx);
95 
96 #endif /* HITLS_CRYPTO_CODECSKEY */
97 
98 #ifdef __cplusplus
99 }
100 #endif
101 
102 #endif /* CRYPT_DECODE_KEY_IMPL_H */
103