• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Copyright (c) 2021-2024 Huawei Device Co., Ltd.
3  * Licensed under the Apache License, Version 2.0 (the "License");
4  * you may not use this file except in compliance with the License.
5  * You may obtain a copy of the License at
6  *
7  *    http://www.apache.org/licenses/LICENSE-2.0
8  *
9  * Unless required by applicable law or agreed to in writing, software
10  * distributed under the License is distributed on an "AS IS" BASIS,
11  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12  * See the License for the specific language governing permissions and
13  * limitations under the License.
14  */
15 
16 #ifndef HKS_CONFIG_H
17 #define HKS_CONFIG_H
18 
19 #define HKS_ENABLE_EVENT_DELETE
20 
21 #define HKS_SUPPORT_POSIX
22 
23 #define HKS_SUPPORT_THREAD
24 
25 #define HKS_LOG_ENGINE_LOG_CORE
26 #define HKS_ENABLE_LOG_PUBLIC
27 
28 #define HKS_SUPPORT_API_ATTEST_KEY
29 
30 #define HKS_SUPPORT_ACCESS_TOKEN
31 
32 /* AES */
33 #define HKS_SUPPORT_AES_C
34 #define HKS_SUPPORT_AES_GENERATE_KEY
35 #define HKS_SUPPORT_AES_CBC_NOPADDING
36 #define HKS_SUPPORT_AES_CBC_PKCS7
37 #define HKS_SUPPORT_AES_GCM
38 #define HKS_SUPPORT_AES_CCM
39 #define HKS_SUPPORT_AES_CTR_NOPADDING
40 #define HKS_SUPPORT_AES_ECB_NOPADDING
41 #define HKS_SUPPORT_AES_ECB_PKCS7PADDING
42 
43 /* BN */
44 #define HKS_SUPPORT_BN_C
45 
46 /* ECC */
47 #define HKS_SUPPORT_ECC_C
48 #define HKS_SUPPORT_ECC_GENERATE_KEY
49 #define HKS_SUPPORT_ECC_GET_PUBLIC_KEY
50 
51 #define HKS_SUPPORT_ECDH_C
52 #define HKS_SUPPORT_ECDH_AGREE_KEY
53 
54 #define HKS_SUPPORT_ECDSA_C
55 #define HKS_SUPPORT_ECDSA_SIGN_VERIFY
56 
57 /* ED25519 */
58 #define HKS_SUPPORT_ED25519_C
59 #define HKS_SUPPORT_ED25519_GENERATE_KEY
60 #define HKS_SUPPORT_ED25519_SIGN_VERIFY
61 #define HKS_SUPPORT_ED2519_GET_PUBLIC_KEY
62 
63 /* HASH */
64 #define HKS_SUPPORT_HASH_C
65 #define HKS_SUPPORT_HASH_SHA1
66 #define HKS_SUPPORT_HASH_SHA224
67 #define HKS_SUPPORT_HASH_SHA256
68 #define HKS_SUPPORT_HASH_SHA384
69 #define HKS_SUPPORT_HASH_SHA512
70 #define HKS_SUPPORT_HASH_MD5
71 
72 /* HMAC */
73 #define HKS_SUPPORT_HMAC_C
74 #define HKS_SUPPORT_HMAC_GENERATE_KEY
75 #define HKS_SUPPORT_HMAC_SHA1
76 #define HKS_SUPPORT_HMAC_SHA224
77 #define HKS_SUPPORT_HMAC_SHA256
78 #define HKS_SUPPORT_HMAC_SHA384
79 #define HKS_SUPPORT_HMAC_SHA512
80 
81 /* KDF */
82 #define HKS_SUPPORT_KDF_C
83 #define HKS_SUPPORT_KDF_PBKDF2
84 #define HKS_SUPPORT_KDF_HKDF
85 
86 /* RSA */
87 #define HKS_SUPPORT_RSA_C
88 #define HKS_SUPPORT_RSA_GENERATE_KEY
89 #define HKS_SUPPORT_RSA_CRYPT
90 #define HKS_SUPPORT_RSA_SIGN_VERIFY
91 #define HKS_SUPPORT_RSA_GET_PUBLIC_KEY
92 #define HKS_SUPPORT_RSA_ECB_NOPADDING
93 #define HKS_SUPPORT_RSA_ECB_PKCS1PADDING
94 #define HKS_SUPPORT_RSA_ECB_OAEPPADDING_SHA1MGF1
95 #define HKS_SUPPORT_RSA_ECB_OAEPPADDING_SHA224MGF1
96 #define HKS_SUPPORT_RSA_ECB_OAEPPADDING_SHA256MGF1
97 #define HKS_SUPPORT_RSA_ECB_OAEPPADDING_SHA384MGF1
98 #define HKS_SUPPORT_RSA_ECB_OAEPPADDING_SHA512MGF1
99 #define HKS_SUPPORT_RSA_ECB_OEAPPADDING
100 #define HKS_SUPPORT_RSA_PSS
101 #define HKS_SUPPORT_RSA_C_FLEX_KEYSIZE
102 
103 /* DH */
104 #define HKS_SUPPORT_DH_C
105 #define HKS_SUPPORT_DH_GENERATE_KEY
106 #define HKS_SUPPORT_DH_AGREE_KEY
107 #define HKS_SUPPORT_DH_GET_PUBLIC_KEY
108 
109 /* DSA */
110 #define HKS_SUPPORT_DSA_C
111 #define HKS_SUPPORT_DSA_GENERATE_KEY
112 #define HKS_SUPPORT_DSA_SIGN_VERIFY
113 #define HKS_SUPPORT_DSA_GET_PUBLIC_KEY
114 
115 /* X25519 */
116 #define HKS_SUPPORT_X25519_C
117 #define HKS_SUPPORT_X25519_GENERATE_KEY
118 #define HKS_SUPPORT_X25519_AGREE_KEY
119 #define HKS_SUPPORT_X25519_GET_PUBLIC_KEY
120 
121 #define HKS_SUPPORT_ED25519_TO_X25519
122 
123 /* SM2 */
124 #ifdef HKS_SUPPORT_ECC_C
125 #define HKS_SUPPORT_SM2_C
126 #define HKS_SUPPORT_SM2_SIGN_VERIFY
127 #define HKS_SUPPORT_SM2_ENCRYPT_DECRYPT
128 #ifdef HKS_SUPPORT_ECC_GENERATE_KEY
129 #define HKS_SUPPORT_SM2_GENERATE_KEY
130 #endif
131 #ifdef HKS_SUPPORT_ECC_GET_PUBLIC_KEY
132 #define HKS_SUPPORT_SM2_GET_PUBLIC_KEY
133 #endif
134 #endif
135 
136 /* SM3 */
137 #define HKS_SUPPORT_SM3_C
138 #define HKS_SUPPORT_SM3_GENERATE_KEY
139 #if defined(HKS_SUPPORT_SM3_C) && defined(HKS_SUPPORT_HMAC_C)
140 #define HKS_SUPPORT_HMAC_SM3
141 #endif
142 #if defined(HKS_SUPPORT_SM3_C) && defined(HKS_SUPPORT_HASH_C)
143 #define HKS_SUPPORT_HASH_SM3
144 #define HKS_SUPPORT_KDF_SM3
145 #endif
146 
147 /* SM4 */
148 #define HKS_SUPPORT_SM4_C
149 #define HKS_SUPPORT_SM4_GENERATE_KEY
150 #define HKS_SUPPORT_SM4_CBC_NOPADDING
151 #define HKS_SUPPORT_SM4_CBC_PKCS7
152 #define HKS_SUPPORT_SM4_CTR_NOPADDING
153 #define HKS_SUPPORT_SM4_ECB_NOPADDING
154 #define HKS_SUPPORT_SM4_ECB_PKCS7
155 #define HKS_SUPPORT_SM4_CFB_NOPADDING
156 #define HKS_SUPPORT_SM4_OFB_NOPADDING
157 
158 /* DES */
159 #define HKS_SUPPORT_DES_C
160 #define HKS_SUPPORT_DES_GENERATE_KEY
161 #define HKS_SUPPORT_DES_CBC_NOPADDING
162 #define HKS_SUPPORT_DES_ECB_NOPADDING
163 
164 /* 3DES */
165 #define HKS_SUPPORT_3DES_C
166 #define HKS_SUPPORT_3DES_GENERATE_KEY
167 #define HKS_SUPPORT_3DES_CBC_NOPADDING
168 #define HKS_SUPPORT_3DES_ECB_NOPADDING
169 
170 /* enable cfi */
171 #define HKS_SUPPORT_CFI
172 
173 #if defined(_SUPPORT_HKS_TEE_) && defined(HKS_SUPPORT_HMAC_GENERATE_KEY)
174 #define HKS_SUPPORT_GET_AT_KEY
175 #endif
176 
177 #if defined(HKS_SUPPORT_AES_GENERATE_KEY) || defined(HKS_SUPPORT_DH_GENERATE_KEY) ||       \
178     defined(HKS_SUPPORT_DSA_GENERATE_KEY) || defined(HKS_SUPPORT_ECC_GENERATE_KEY) ||      \
179     defined(HKS_SUPPORT_ED25519_GENERATE_KEY) || defined(HKS_SUPPORT_HMAC_GENERATE_KEY) || \
180     defined(HKS_SUPPORT_RSA_GENERATE_KEY) || defined(HKS_SUPPORT_X25519_GENERATE_KEY) || \
181     defined(HKS_SUPPORT_SM2_GENERATE_KEY) || defined(HKS_SUPPORT_SM3_GENERATE_KEY) || \
182     defined(HKS_SUPPORT_SM4_GENERATE_KEY)
183 #define HKS_SUPPORT_API_GENERATE_KEY
184 #define HKS_SUPPORT_API_DELETE_KEY
185 #define HKS_SUPPORT_API_GET_KEY_PARAM_SET
186 #define HKS_SUPPORT_API_KEY_EXIST
187 #endif
188 
189 #if defined(HKS_SUPPORT_ECC_C) || defined(HKS_SUPPORT_RSA_C) || defined(HKS_SUPPORT_ED25519_C) || \
190     defined(HKS_SUPPORT_X25519_C) || defined(HKS_SUPPORT_AES_C) || defined(HKS_SUPPORT_DSA_C) ||  \
191     defined(HKS_SUPPORT_DH_C) || defined(HKS_SUPPORT_SM2_C)
192 #define HKS_SUPPORT_API_IMPORT
193 #endif
194 
195 #if defined(HKS_SUPPORT_ECC_C) || defined(HKS_SUPPORT_RSA_C) || defined(HKS_SUPPORT_ED25519_C) || \
196     defined(HKS_SUPPORT_X25519_C) || defined(HKS_SUPPORT_AES_C) || defined(HKS_SUPPORT_DSA_C) ||  \
197     defined(HKS_SUPPORT_DH_C) || defined(HKS_SUPPORT_SM2_C)
198 #define HKS_SUPPORT_API_EXPORT
199 #endif
200 
201 #if defined(HKS_SUPPORT_ECC_C) || defined(HKS_SUPPORT_RSA_C) || defined(HKS_SUPPORT_ED25519_C) || \
202     defined(HKS_SUPPORT_X25519_C) || defined(HKS_SUPPORT_AES_C) || defined(HKS_SUPPORT_DSA_C) ||  \
203     defined(HKS_SUPPORT_DH_C) || defined(HKS_SUPPORT_SM2_C)
204 #define HKS_SUPPORT_API_IMPORT_WRAPPED_KEY
205 #endif
206 
207 #define HKS_SUPPORT_API_GENERATE_RANDOM
208 
209 #if defined(HKS_SUPPORT_ECDSA_SIGN_VERIFY) || defined(HKS_SUPPORT_ED25519_SIGN_VERIFY) || \
210     defined(HKS_SUPPORT_RSA_SIGN_VERIFY) || defined(HKS_SUPPORT_DSA_SIGN_VERIFY)
211 #define HKS_SUPPORT_API_SIGN_VERIFY
212 #endif
213 
214 #if defined(HKS_SUPPORT_AES_C) || defined(HKS_SUPPORT_RSA_CRYPT)
215 #define HKS_SUPPORT_API_CIPHER
216 #endif
217 
218 #if defined(HKS_SUPPORT_X25519_AGREE_KEY) || defined(HKS_SUPPORT_ECDH_AGREE_KEY) || defined(HKS_SUPPORT_DH_AGREE_KEY)
219 #define HKS_SUPPORT_API_AGREE_KEY
220 #endif
221 
222 #ifdef HKS_SUPPORT_KDF_C
223 #define HKS_SUPPORT_API_DERIVE_KEY
224 #endif
225 
226 #ifdef HKS_SUPPORT_HMAC_C
227 #define HKS_SUPPORT_API_MAC
228 #endif
229 
230 #ifdef HKS_SUPPORT_HASH_C
231 #define HKS_SUPPORT_API_HASH
232 #endif
233 
234 #ifdef HKS_SUPPORT_BN_C
235 #define HKS_SUPPORT_API_BN_EXP_MOD
236 #endif
237 
238 #ifndef HKS_SUPPORT_LITE_HEAP
239 #define HKS_SUPPORT_API_GET_KEY_INFO_LIST
240 #endif
241 
242 #endif /* HKS_CONFIG_H */
243