API参考
载入中...
搜索中...
未找到
crypt_default_provderimpl.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
21
22#ifndef CRYPT_EAL_DEFAULT_PROVIDERIMPL_H
23#define CRYPT_EAL_DEFAULT_PROVIDERIMPL_H
24
25#ifdef HITLS_CRYPTO_PROVIDER
26
27#include "crypt_eal_implprovider.h"
28
29#ifdef __cplusplus
30extern "C" {
31#endif // __cplusplus
32
33#ifdef HITLS_CRYPTO_MD
34#ifdef HITLS_CRYPTO_MD5
35extern const CRYPT_EAL_Func g_defEalMdMd5[];
36#endif // HITLS_CRYPTO_MD5
37#ifdef HITLS_CRYPTO_SHA1
38extern const CRYPT_EAL_Func g_defEalMdSha1[];
39#endif // HITLS_CRYPTO_SHA1
40#ifdef HITLS_CRYPTO_SHA224
41extern const CRYPT_EAL_Func g_defEalMdSha224[];
42#endif // HITLS_CRYPTO_SHA224
43#ifdef HITLS_CRYPTO_SHA256
44extern const CRYPT_EAL_Func g_defEalMdSha256[];
45#endif // HITLS_CRYPTO_SHA256
46#ifdef HITLS_CRYPTO_SHA384
47extern const CRYPT_EAL_Func g_defEalMdSha384[];
48#endif // HITLS_CRYPTO_SHA384
49#ifdef HITLS_CRYPTO_SHA512
50extern const CRYPT_EAL_Func g_defEalMdSha512[];
51#endif // HITLS_CRYPTO_SHA512
52#ifdef HITLS_CRYPTO_SHA3
53extern const CRYPT_EAL_Func g_defEalMdSha3224[];
54extern const CRYPT_EAL_Func g_defEalMdSha3256[];
55extern const CRYPT_EAL_Func g_defEalMdSha3384[];
56extern const CRYPT_EAL_Func g_defEalMdSha3512[];
57extern const CRYPT_EAL_Func g_defEalMdShake512[];
58extern const CRYPT_EAL_Func g_defEalMdShake128[];
59extern const CRYPT_EAL_Func g_defEalMdShake256[];
60#endif // HITLS_CRYPTO_SHA3
61#ifdef HITLS_CRYPTO_SM3
62extern const CRYPT_EAL_Func g_defEalMdSm3[];
63#endif // HITLS_CRYPTO_SM3
64#endif // HITLS_CRYPTO_MD
65
66#ifdef HITLS_CRYPTO_MAC
67#ifdef HITLS_CRYPTO_HMAC
68extern const CRYPT_EAL_Func g_defEalMacHmac[];
69#endif
70#ifdef HITLS_CRYPTO_CMAC
71extern const CRYPT_EAL_Func g_defEalMacCmac[];
72#endif
73#ifdef HITLS_CRYPTO_CBC_MAC
74extern const CRYPT_EAL_Func g_defEalMacCbcMac[];
75#endif
76#ifdef HITLS_CRYPTO_GMAC
77extern const CRYPT_EAL_Func g_defEalMacGmac[];
78#endif
79#ifdef HITLS_CRYPTO_SIPHASH
80extern const CRYPT_EAL_Func g_defEalMacSiphash[];
81#endif
82#endif // HITLS_CRYPTO_MAC
83
84#ifdef HITLS_CRYPTO_KDF
85#ifdef HITLS_CRYPTO_SCRYPT
86extern const CRYPT_EAL_Func g_defEalKdfScrypt[];
87#endif
88#ifdef HITLS_CRYPTO_PBKDF2
89extern const CRYPT_EAL_Func g_defEalKdfPBKdf2[];
90#endif
91#ifdef HITLS_CRYPTO_KDFTLS12
92extern const CRYPT_EAL_Func g_defEalKdfKdfTLS12[];
93#endif
94#ifdef HITLS_CRYPTO_HKDF
95extern const CRYPT_EAL_Func g_defEalKdfHkdf[];
96#endif
97#endif // HITLS_CRYPTO_KDF
98
99#ifdef HITLS_CRYPTO_CIPHER
100#ifdef HITLS_CRYPTO_CBC
101extern const CRYPT_EAL_Func g_defEalCbc[];
102#endif
103#ifdef HITLS_CRYPTO_CCM
104extern const CRYPT_EAL_Func g_defEalCcm[];
105#endif
106#ifdef HITLS_CRYPTO_CFB
107extern const CRYPT_EAL_Func g_defEalCfb[];
108#endif
109#if defined(HITLS_CRYPTO_CHACHA20) && defined(HITLS_CRYPTO_CHACHA20POLY1305)
110extern const CRYPT_EAL_Func g_defEalChaCha[];
111#endif
112#ifdef HITLS_CRYPTO_CTR
113extern const CRYPT_EAL_Func g_defEalCtr[];
114#endif
115#ifdef HITLS_CRYPTO_ECB
116extern const CRYPT_EAL_Func g_defEalEcb[];
117#endif
118#ifdef HITLS_CRYPTO_GCM
119extern const CRYPT_EAL_Func g_defEalGcm[];
120#endif
121#ifdef HITLS_CRYPTO_OFB
122extern const CRYPT_EAL_Func g_defEalOfb[];
123#endif
124#ifdef HITLS_CRYPTO_XTS
125extern const CRYPT_EAL_Func g_defEalXts[];
126#endif
127#ifdef HITLS_CRYPTO_WRAP
128extern const CRYPT_EAL_Func g_defEalWrap[];
129#endif
130#ifdef HITLS_CRYPTO_HCTR
131extern const CRYPT_EAL_Func g_defEalHctr[];
132#endif
133#endif // HITLS_CRYPTO_CIPHER
134
135#ifdef HITLS_CRYPTO_DRBG
136extern const CRYPT_EAL_Func g_defEalRand[];
137#endif // HITLS_CRYPTO_DRBG
138
139#ifdef HITLS_CRYPTO_PKEY
140#ifdef HITLS_CRYPTO_DSA
141extern const CRYPT_EAL_Func g_defEalKeyMgmtDsa[];
142#endif
143#ifdef HITLS_CRYPTO_ED25519
144extern const CRYPT_EAL_Func g_defEalKeyMgmtEd25519[];
145#endif
146#ifdef HITLS_CRYPTO_X25519
147extern const CRYPT_EAL_Func g_defEalKeyMgmtX25519[];
148#endif
149#ifdef HITLS_CRYPTO_RSA
150extern const CRYPT_EAL_Func g_defEalKeyMgmtRsa[];
151#endif
152#ifdef HITLS_CRYPTO_DH
153extern const CRYPT_EAL_Func g_defEalKeyMgmtDh[];
154#endif
155#ifdef HITLS_CRYPTO_ECDSA
156extern const CRYPT_EAL_Func g_defEalKeyMgmtEcdsa[];
157#endif
158#ifdef HITLS_CRYPTO_ECDH
159extern const CRYPT_EAL_Func g_defEalKeyMgmtEcdh[];
160#endif
161#ifdef HITLS_CRYPTO_SM2
162extern const CRYPT_EAL_Func g_defEalKeyMgmtSm2[];
163#endif
164#ifdef HITLS_CRYPTO_PAILLIER
165extern const CRYPT_EAL_Func g_defEalKeyMgmtPaillier[];
166#endif
167#ifdef HITLS_CRYPTO_ELGAMAL
168extern const CRYPT_EAL_Func g_defEalKeyMgmtElGamal[];
169#endif
170#ifdef HITLS_CRYPTO_MLDSA
171extern const CRYPT_EAL_Func g_defEalKeyMgmtMlDsa[];
172#endif
173#ifdef HITLS_CRYPTO_XMSS
174extern const CRYPT_EAL_Func g_defEalKeyMgmtXmss[];
175#endif
176#ifdef HITLS_CRYPTO_SLH_DSA
177extern const CRYPT_EAL_Func g_defEalKeyMgmtSlhDsa[];
178#endif
179#ifdef HITLS_CRYPTO_MLKEM
180extern const CRYPT_EAL_Func g_defEalKeyMgmtMlKem[];
181#endif
182#ifdef HITLS_CRYPTO_FRODOKEM
183extern const CRYPT_EAL_Func g_defEalKeyMgmtFrodoKem[];
184#endif
185#ifdef HITLS_CRYPTO_CLASSIC_MCELIECE
186extern const CRYPT_EAL_Func g_defEalKeyMgmtMceliece[];
187#endif
188#ifdef HITLS_CRYPTO_HYBRIDKEM
189extern const CRYPT_EAL_Func g_defEalKeyMgmtHybridKem[];
190#endif
191
192#ifdef HITLS_CRYPTO_X25519
193extern const CRYPT_EAL_Func g_defEalExchX25519[];
194#endif
195#ifdef HITLS_CRYPTO_DH
196extern const CRYPT_EAL_Func g_defEalExchDh[];
197#endif
198#ifdef HITLS_CRYPTO_ECDH
199extern const CRYPT_EAL_Func g_defEalExchEcdh[];
200#endif
201#ifdef HITLS_CRYPTO_SM2_EXCH
202extern const CRYPT_EAL_Func g_defEalExchSm2[];
203#else
204#define g_defEalExchSm2 NULL
205#endif
206
207
208#if defined(HITLS_CRYPTO_RSA_ENCRYPT) || defined(HITLS_CRYPTO_RSA_DECRYPT)
209extern const CRYPT_EAL_Func g_defEalAsymCipherRsa[];
210#else
211#define g_defEalAsymCipherRsa NULL
212#endif
213#ifdef HITLS_CRYPTO_SM2_CRYPT
214extern const CRYPT_EAL_Func g_defEalAsymCipherSm2[];
215#else
216#define g_defEalAsymCipherSm2 NULL
217#endif
218#ifdef HITLS_CRYPTO_PAILLIER
219extern const CRYPT_EAL_Func g_defEalAsymCipherPaillier[];
220#endif
221#ifdef HITLS_CRYPTO_ELGAMAL
222extern const CRYPT_EAL_Func g_defEalAsymCipherElGamal[];
223#endif
224
225#ifdef HITLS_CRYPTO_DSA
226extern const CRYPT_EAL_Func g_defEalSignDsa[];
227#endif
228#ifdef HITLS_CRYPTO_ED25519
229extern const CRYPT_EAL_Func g_defEalSignEd25519[];
230#endif
231#if defined(HITLS_CRYPTO_RSA_SIGN) || defined(HITLS_CRYPTO_RSA_VERIFY)
232extern const CRYPT_EAL_Func g_defEalSignRsa[];
233#else
234#define g_defEalSignRsa NULL
235#endif
236#ifdef HITLS_CRYPTO_ECDSA
237extern const CRYPT_EAL_Func g_defEalSignEcdsa[];
238#endif
239#ifdef HITLS_CRYPTO_SM2_SIGN
240extern const CRYPT_EAL_Func g_defEalSignSm2[];
241#else
242#define g_defEalSignSm2 NULL
243#endif
244#ifdef HITLS_CRYPTO_MLDSA
245extern const CRYPT_EAL_Func g_defEalSignMlDsa[];
246#endif
247#ifdef HITLS_CRYPTO_SLH_DSA
248extern const CRYPT_EAL_Func g_defEalSignSlhDsa[];
249#endif
250
251#ifdef HITLS_CRYPTO_XMSS
252extern const CRYPT_EAL_Func g_defEalSignXmss[];
253#endif
254
255#ifdef HITLS_CRYPTO_MLKEM
256extern const CRYPT_EAL_Func g_defEalMlKem[];
257#endif
258#ifdef HITLS_CRYPTO_FRODOKEM
259extern const CRYPT_EAL_Func g_defEalFrodoKem[];
260#endif
261#ifdef HITLS_CRYPTO_CLASSIC_MCELIECE
262extern const CRYPT_EAL_Func g_defEalMceliece[];
263#endif
264#ifdef HITLS_CRYPTO_HYBRIDKEM
265extern const CRYPT_EAL_Func g_defEalHybridKeyKem[];
266#endif
267#endif // HITLS_CRYPTO_PKEY
268
269#ifdef HITLS_CRYPTO_KEY_DECODE_CHAIN
270#ifdef HITLS_CRYPTO_KEY_EPKI
271extern const CRYPT_EAL_Func g_defEalPrvP8Enc2P8[];
272#endif
273#ifdef HITLS_BSL_PEM
274extern const CRYPT_EAL_Func g_defEalPem2Der[];
275#endif
276#ifdef HITLS_CRYPTO_RSA
277extern const CRYPT_EAL_Func g_defEalRsaPrvDer2Key[];
278#endif
279#ifdef HITLS_CRYPTO_ECDSA
280extern const CRYPT_EAL_Func g_defEalEcdsaPrvDer2Key[];
281#endif
282#ifdef HITLS_CRYPTO_SM2
283extern const CRYPT_EAL_Func g_defEalSm2PrvDer2Key[];
284#endif
285#ifdef HITLS_CRYPTO_RSA
286extern const CRYPT_EAL_Func g_defEalP8Der2RsaKey[];
287#endif
288#ifdef HITLS_CRYPTO_ECDSA
289extern const CRYPT_EAL_Func g_defEalP8Der2EcdsaKey[];
290#endif
291#ifdef HITLS_CRYPTO_SM2
292extern const CRYPT_EAL_Func g_defEalP8Der2Sm2Key[];
293#endif
294#ifdef HITLS_CRYPTO_ED25519
295extern const CRYPT_EAL_Func g_defEalP8Der2Ed25519Key[];
296#endif
297#ifdef HITLS_CRYPTO_X25519
298extern const CRYPT_EAL_Func g_defEalP8Der2X25519Key[];
299#endif
300#ifdef HITLS_CRYPTO_MLDSA
301extern const CRYPT_EAL_Func g_defEalP8Der2MldsaKey[];
302#endif
303#ifdef HITLS_CRYPTO_MLKEM
304extern const CRYPT_EAL_Func g_defEalP8Der2MlkemKey[];
305#endif
306#ifdef HITLS_CRYPTO_SLH_DSA
307extern const CRYPT_EAL_Func g_defEalP8Der2SlhDsaKey[];
308#endif
309#ifdef HITLS_CRYPTO_RSA
310extern const CRYPT_EAL_Func g_defEalSubPubKeyDer2RsaKey[];
311#endif
312#ifdef HITLS_CRYPTO_ECDSA
313extern const CRYPT_EAL_Func g_defEalSubPubKeyDer2EcdsaKey[];
314#endif
315#ifdef HITLS_CRYPTO_SM2
316extern const CRYPT_EAL_Func g_defEalSubPubKeyDer2Sm2Key[];
317#endif
318#ifdef HITLS_CRYPTO_ED25519
319extern const CRYPT_EAL_Func g_defEalSubPubKeyDer2Ed25519Key[];
320#endif
321#ifdef HITLS_CRYPTO_X25519
322extern const CRYPT_EAL_Func g_defEalSubPubKeyDer2X25519Key[];
323#endif
324#ifdef HITLS_CRYPTO_MLDSA
325extern const CRYPT_EAL_Func g_defEalSubPubKeyDer2MldsaKey[];
326#endif
327#ifdef HITLS_CRYPTO_MLKEM
328extern const CRYPT_EAL_Func g_defEalSubPubKeyDer2MlkemKey[];
329#endif
330#ifdef HITLS_CRYPTO_SLH_DSA
331extern const CRYPT_EAL_Func g_defEalSubPubKeyDer2SlhDsaKey[];
332#endif
333#ifdef HITLS_CRYPTO_RSA
334extern const CRYPT_EAL_Func g_defEalSubPubKeyWithoutSeqDer2RsaKey[];
335#endif
336#ifdef HITLS_CRYPTO_ECDSA
337extern const CRYPT_EAL_Func g_defEalSubPubKeyWithoutSeqDer2EcdsaKey[];
338#endif
339#ifdef HITLS_CRYPTO_SM2
340extern const CRYPT_EAL_Func g_defEalSubPubKeyWithoutSeqDer2Sm2Key[];
341#endif
342#ifdef HITLS_CRYPTO_ED25519
343extern const CRYPT_EAL_Func g_defEalSubPubKeyWithoutSeqDer2Ed25519Key[];
344#endif
345#ifdef HITLS_CRYPTO_X25519
346extern const CRYPT_EAL_Func g_defEalSubPubKeyWithoutSeqDer2X25519Key[];
347#endif
348#ifdef HITLS_CRYPTO_MLDSA
349extern const CRYPT_EAL_Func g_defEalSubPubKeyWithoutSeqDer2MldsaKey[];
350#endif
351
352#ifdef HITLS_CRYPTO_MLKEM
353extern const CRYPT_EAL_Func g_defEalSubPubKeyWithoutSeqDer2MlkemKey[];
354#endif
355#ifdef HITLS_CRYPTO_SLH_DSA
356extern const CRYPT_EAL_Func g_defEalSubPubKeyWithoutSeqDer2SlhDsaKey[];
357#endif
358#ifdef HITLS_CRYPTO_RSA
359extern const CRYPT_EAL_Func g_defEalRsaPubDer2Key[];
360#endif
361#ifdef HITLS_CRYPTO_XMSS
362extern const CRYPT_EAL_Func g_defEalSubPubKeyWithoutSeqDer2XmssKey[];
363#endif
364extern const CRYPT_EAL_Func g_defEalLowKeyObject2PkeyObject[];
365#endif // HITLS_CRYPTO_KEY_DECODE_CHAIN
366
367#ifdef __cplusplus
368}
369#endif // __cplusplus
370
371#endif /* HITLS_CRYPTO_PROVIDER */
372#endif // CRYPT_EAL_DEFAULT_PROVIDERIMPL_H
定义 crypt_types.h:952