• 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 #include "hitls_build.h"
17 #ifdef HITLS_CRYPTO_PROVIDER
18 
19 #include "crypt_eal_implprovider.h"
20 #include "crypt_dsa.h"
21 #include "crypt_rsa.h"
22 #include "crypt_ecdsa.h"
23 #include "crypt_sm2.h"
24 #include "crypt_curve25519.h"
25 #include "crypt_slh_dsa.h"
26 #include "crypt_mldsa.h"
27 
28 const CRYPT_EAL_Func g_defEalSignDsa[] = {
29 #ifdef HITLS_CRYPTO_DSA
30     {CRYPT_EAL_IMPLPKEYSIGN_SIGN, (CRYPT_EAL_ImplPkeySign)CRYPT_DSA_Sign},
31     {CRYPT_EAL_IMPLPKEYSIGN_SIGNDATA, (CRYPT_EAL_ImplPkeySignData)CRYPT_DSA_SignData},
32     {CRYPT_EAL_IMPLPKEYSIGN_VERIFY, (CRYPT_EAL_ImplPkeyVerify)CRYPT_DSA_Verify},
33     {CRYPT_EAL_IMPLPKEYSIGN_VERIFYDATA, (CRYPT_EAL_ImplPkeyVerifyData)CRYPT_DSA_VerifyData},
34 #endif
35     CRYPT_EAL_FUNC_END,
36 };
37 
38 const CRYPT_EAL_Func g_defEalSignEd25519[] = {
39 #ifdef HITLS_CRYPTO_ED25519
40     {CRYPT_EAL_IMPLPKEYSIGN_SIGN, (CRYPT_EAL_ImplPkeySign)CRYPT_CURVE25519_Sign},
41     {CRYPT_EAL_IMPLPKEYSIGN_VERIFY, (CRYPT_EAL_ImplPkeyVerify)CRYPT_CURVE25519_Verify},
42 #endif
43     CRYPT_EAL_FUNC_END,
44 };
45 
46 const CRYPT_EAL_Func g_defEalSignRsa[] = {
47 #ifdef HITLS_CRYPTO_RSA_SIGN
48     {CRYPT_EAL_IMPLPKEYSIGN_SIGN, (CRYPT_EAL_ImplPkeySign)CRYPT_RSA_Sign},
49     {CRYPT_EAL_IMPLPKEYSIGN_SIGNDATA, (CRYPT_EAL_ImplPkeySignData)CRYPT_RSA_SignData},
50 #endif
51 #ifdef HITLS_CRYPTO_RSA_VERIFY
52     {CRYPT_EAL_IMPLPKEYSIGN_VERIFY, (CRYPT_EAL_ImplPkeyVerify)CRYPT_RSA_Verify},
53     {CRYPT_EAL_IMPLPKEYSIGN_VERIFYDATA, (CRYPT_EAL_ImplPkeyVerifyData)CRYPT_RSA_VerifyData},
54     {CRYPT_EAL_IMPLPKEYSIGN_RECOVER, (CRYPT_EAL_ImplPkeyRecover)CRYPT_RSA_Recover},
55 #endif
56 #ifdef HITLS_CRYPTO_RSA_BSSA
57 #ifdef HITLS_CRYPTO_RSA_SIGN
58     {CRYPT_EAL_IMPLPKEYSIGN_BLIND, (CRYPT_EAL_ImplPkeyBlind)CRYPT_RSA_Blind},
59 #endif
60 #ifdef HITLS_CRYPTO_RSA_VERIFY
61     {CRYPT_EAL_IMPLPKEYSIGN_UNBLIND, (CRYPT_EAL_ImplPkeyUnBlind)CRYPT_RSA_UnBlind},
62 #endif
63 #endif
64     CRYPT_EAL_FUNC_END,
65 };
66 
67 const CRYPT_EAL_Func g_defEalSignEcdsa[] = {
68 #ifdef HITLS_CRYPTO_ECDSA
69     {CRYPT_EAL_IMPLPKEYSIGN_SIGN, (CRYPT_EAL_ImplPkeySign)CRYPT_ECDSA_Sign},
70     {CRYPT_EAL_IMPLPKEYSIGN_SIGNDATA, (CRYPT_EAL_ImplPkeySignData)CRYPT_ECDSA_SignData},
71     {CRYPT_EAL_IMPLPKEYSIGN_VERIFY, (CRYPT_EAL_ImplPkeyVerify)CRYPT_ECDSA_Verify},
72     {CRYPT_EAL_IMPLPKEYSIGN_VERIFYDATA, (CRYPT_EAL_ImplPkeyVerifyData)CRYPT_ECDSA_VerifyData},
73 #endif
74     CRYPT_EAL_FUNC_END,
75 };
76 
77 const CRYPT_EAL_Func g_defEalSignSm2[] = {
78 #ifdef HITLS_CRYPTO_SM2_SIGN
79     {CRYPT_EAL_IMPLPKEYSIGN_SIGN, (CRYPT_EAL_ImplPkeySign)CRYPT_SM2_Sign},
80     {CRYPT_EAL_IMPLPKEYSIGN_VERIFY, (CRYPT_EAL_ImplPkeyVerify)CRYPT_SM2_Verify},
81 #endif
82     CRYPT_EAL_FUNC_END,
83 };
84 
85 const CRYPT_EAL_Func g_defEalSignSlhDsa[] = {
86 #ifdef HITLS_CRYPTO_SLH_DSA
87     {CRYPT_EAL_IMPLPKEYSIGN_SIGN, (CRYPT_EAL_ImplPkeySign)CRYPT_SLH_DSA_Sign},
88     {CRYPT_EAL_IMPLPKEYSIGN_VERIFY, (CRYPT_EAL_ImplPkeyVerify)CRYPT_SLH_DSA_Verify},
89 #endif
90     CRYPT_EAL_FUNC_END
91 };
92 
93 const CRYPT_EAL_Func g_defEalSignMlDsa[] = {
94 #ifdef HITLS_CRYPTO_MLDSA
95     {CRYPT_EAL_IMPLPKEYSIGN_SIGN, (CRYPT_EAL_ImplPkeySign)CRYPT_ML_DSA_Sign},
96     {CRYPT_EAL_IMPLPKEYSIGN_VERIFY, (CRYPT_EAL_ImplPkeyVerify)CRYPT_ML_DSA_Verify},
97 #endif
98     CRYPT_EAL_FUNC_END,
99 };
100 
101 #endif /* HITLS_CRYPTO_PROVIDER */