• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Copyright (c) 2021-2022 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_SUPPORT_POSIX
20 
21 #define HKS_SUPPORT_THREAD
22 
23 #define HKS_LOG_ENGINE_LOG_CORE
24 #define HKS_ENABLE_LOG_PUBLIC
25 
26 #define HKS_SUPPORT_API_ATTEST_KEY
27 
28 #define HKS_SUPPORT_ACCESS_TOKEN
29 
30 /* AES */
31 #define HKS_SUPPORT_AES_C
32 #define HKS_SUPPORT_AES_GENERATE_KEY
33 #define HKS_SUPPORT_AES_CBC_NOPADDING
34 #define HKS_SUPPORT_AES_CBC_PKCS7
35 #define HKS_SUPPORT_AES_GCM
36 #define HKS_SUPPORT_AES_CTR_NOPADDING
37 #define HKS_SUPPORT_AES_ECB_NOPADDING
38 #define HKS_SUPPORT_AES_ECB_PKCS7PADDING
39 
40 /* BN */
41 #define HKS_SUPPORT_BN_C
42 
43 /* ECC */
44 #define HKS_SUPPORT_ECC_C
45 #define HKS_SUPPORT_ECC_GENERATE_KEY
46 #define HKS_SUPPORT_ECC_GET_PUBLIC_KEY
47 
48 #define HKS_SUPPORT_ECDH_C
49 #define HKS_SUPPORT_ECDH_AGREE_KEY
50 
51 #define HKS_SUPPORT_ECDSA_C
52 #define HKS_SUPPORT_ECDSA_SIGN_VERIFY
53 
54 /* ED25519 */
55 #define HKS_SUPPORT_ED25519_C
56 #define HKS_SUPPORT_ED25519_GENERATE_KEY
57 #define HKS_SUPPORT_ED25519_SIGN_VERIFY
58 #define HKS_SUPPORT_ED2519_GET_PUBLIC_KEY
59 
60 /* HASH */
61 #define HKS_SUPPORT_HASH_C
62 #define HKS_SUPPORT_HASH_SHA1
63 #define HKS_SUPPORT_HASH_SHA224
64 #define HKS_SUPPORT_HASH_SHA256
65 #define HKS_SUPPORT_HASH_SHA384
66 #define HKS_SUPPORT_HASH_SHA512
67 #define HKS_SUPPORT_HASH_MD5
68 
69 /* HMAC */
70 #define HKS_SUPPORT_HMAC_C
71 #define HKS_SUPPORT_HMAC_GENERATE_KEY
72 #define HKS_SUPPORT_HMAC_SHA1
73 #define HKS_SUPPORT_HMAC_SHA224
74 #define HKS_SUPPORT_HMAC_SHA256
75 #define HKS_SUPPORT_HMAC_SHA384
76 #define HKS_SUPPORT_HMAC_SHA512
77 
78 /* KDF */
79 #define HKS_SUPPORT_KDF_C
80 #define HKS_SUPPORT_KDF_PBKDF2
81 #define HKS_SUPPORT_KDF_HKDF
82 
83 /* RSA */
84 #define HKS_SUPPORT_RSA_C
85 #define HKS_SUPPORT_RSA_GENERATE_KEY
86 #define HKS_SUPPORT_RSA_CRYPT
87 #define HKS_SUPPORT_RSA_SIGN_VERIFY
88 #define HKS_SUPPORT_RSA_GET_PUBLIC_KEY
89 #define HKS_SUPPORT_RSA_ECB_NOPADDING
90 #define HKS_SUPPORT_RSA_ECB_PKCS1PADDING
91 #define HKS_SUPPORT_RSA_ECB_OAEPPADDING_SHA1MGF1
92 #define HKS_SUPPORT_RSA_ECB_OAEPPADDING_SHA224MGF1
93 #define HKS_SUPPORT_RSA_ECB_OAEPPADDING_SHA256MGF1
94 #define HKS_SUPPORT_RSA_ECB_OAEPPADDING_SHA384MGF1
95 #define HKS_SUPPORT_RSA_ECB_OAEPPADDING_SHA512MGF1
96 #define HKS_SUPPORT_RSA_ECB_OEAPPADDING
97 #define HKS_SUPPORT_RSA_PSS
98 
99 /* DH */
100 #define HKS_SUPPORT_DH_C
101 #define HKS_SUPPORT_DH_GENERATE_KEY
102 #define HKS_SUPPORT_DH_AGREE_KEY
103 #define HKS_SUPPORT_DH_GET_PUBLIC_KEY
104 
105 /* DSA */
106 #define HKS_SUPPORT_DSA_C
107 #define HKS_SUPPORT_DSA_GENERATE_KEY
108 #define HKS_SUPPORT_DSA_SIGN_VERIFY
109 #define HKS_SUPPORT_DSA_GET_PUBLIC_KEY
110 
111 /* X25519 */
112 #define HKS_SUPPORT_X25519_C
113 #define HKS_SUPPORT_X25519_GENERATE_KEY
114 #define HKS_SUPPORT_X25519_AGREE_KEY
115 #define HKS_SUPPORT_X25519_GET_PUBLIC_KEY
116 
117 #define HKS_SUPPORT_ED25519_TO_X25519
118 
119 /* SM2 */
120 #ifdef HKS_SUPPORT_ECC_C
121 #define HKS_SUPPORT_SM2_C
122 #define HKS_SUPPORT_SM2_SIGN_VERIFY
123 #ifdef HKS_SUPPORT_ECC_GENERATE_KEY
124 #define HKS_SUPPORT_SM2_GENERATE_KEY
125 #endif
126 #ifdef HKS_SUPPORT_ECC_GET_PUBLIC_KEY
127 #define HKS_SUPPORT_SM2_GET_PUBLIC_KEY
128 #endif
129 #endif
130 
131 /* SM3 */
132 #define HKS_SUPPORT_SM3_C
133 #define HKS_SUPPORT_SM3_GENERATE_KEY
134 #if defined(HKS_SUPPORT_SM3_C) && defined(HKS_SUPPORT_HMAC_C)
135 #define HKS_SUPPORT_HMAC_SM3
136 #endif
137 #if defined(HKS_SUPPORT_SM3_C) && defined(HKS_SUPPORT_HASH_C)
138 #define HKS_SUPPORT_HASH_SM3
139 #endif
140 
141 /* SM4 */
142 #define HKS_SUPPORT_SM4_C
143 #define HKS_SUPPORT_SM4_GENERATE_KEY
144 #define HKS_SUPPORT_SM4_CBC_NOPADDING
145 #define HKS_SUPPORT_SM4_CBC_PKCS7
146 #define HKS_SUPPORT_SM4_CTR_NOPADDING
147 #define HKS_SUPPORT_SM4_ECB_NOPADDING
148 #define HKS_SUPPORT_SM4_ECB_PKCS7
149 
150 /* enable cfi */
151 #define HKS_SUPPORT_CFI
152 
153 #if defined(_SUPPORT_HKS_TEE_) && defined(HKS_SUPPORT_HMAC_GENERATE_KEY)
154 #define HKS_SUPPORT_GET_AT_KEY
155 #endif
156 
157 #if defined(HKS_SUPPORT_AES_GENERATE_KEY) || defined(HKS_SUPPORT_DH_GENERATE_KEY) ||       \
158     defined(HKS_SUPPORT_DSA_GENERATE_KEY) || defined(HKS_SUPPORT_ECC_GENERATE_KEY) ||      \
159     defined(HKS_SUPPORT_ED25519_GENERATE_KEY) || defined(HKS_SUPPORT_HMAC_GENERATE_KEY) || \
160     defined(HKS_SUPPORT_RSA_GENERATE_KEY) || defined(HKS_SUPPORT_X25519_GENERATE_KEY) || \
161     defined(HKS_SUPPORT_SM2_GENERATE_KEY) || defined(HKS_SUPPORT_SM3_GENERATE_KEY) || \
162     defined(HKS_SUPPORT_SM4_GENERATE_KEY)
163 #define HKS_SUPPORT_API_GENERATE_KEY
164 #define HKS_SUPPORT_API_DELETE_KEY
165 #define HKS_SUPPORT_API_GET_KEY_PARAM_SET
166 #define HKS_SUPPORT_API_KEY_EXIST
167 #endif
168 
169 #if defined(HKS_SUPPORT_ECC_C) || defined(HKS_SUPPORT_RSA_C) || defined(HKS_SUPPORT_ED25519_C) || \
170     defined(HKS_SUPPORT_X25519_C) || defined(HKS_SUPPORT_AES_C) || defined(HKS_SUPPORT_DSA_C) ||  \
171     defined(HKS_SUPPORT_DH_C) || defined(HKS_SUPPORT_SM2_C)
172 #define HKS_SUPPORT_API_IMPORT
173 #endif
174 
175 #if defined(HKS_SUPPORT_ECC_C) || defined(HKS_SUPPORT_RSA_C) || defined(HKS_SUPPORT_ED25519_C) || \
176     defined(HKS_SUPPORT_X25519_C) || defined(HKS_SUPPORT_AES_C) || defined(HKS_SUPPORT_DSA_C) ||  \
177     defined(HKS_SUPPORT_DH_C) || defined(HKS_SUPPORT_SM2_C)
178 #define HKS_SUPPORT_API_EXPORT
179 #endif
180 
181 #if defined(HKS_SUPPORT_ECC_C) || defined(HKS_SUPPORT_RSA_C) || defined(HKS_SUPPORT_ED25519_C) || \
182     defined(HKS_SUPPORT_X25519_C) || defined(HKS_SUPPORT_AES_C) || defined(HKS_SUPPORT_DSA_C) ||  \
183     defined(HKS_SUPPORT_DH_C) || defined(HKS_SUPPORT_SM2_C)
184 #define HKS_SUPPORT_API_IMPORT_WRAPPED_KEY
185 #endif
186 
187 #define HKS_SUPPORT_API_GENERATE_RANDOM
188 
189 #if defined(HKS_SUPPORT_ECDSA_SIGN_VERIFY) || defined(HKS_SUPPORT_ED25519_SIGN_VERIFY) || \
190     defined(HKS_SUPPORT_RSA_SIGN_VERIFY) || defined(HKS_SUPPORT_DSA_SIGN_VERIFY)
191 #define HKS_SUPPORT_API_SIGN_VERIFY
192 #endif
193 
194 #if defined(HKS_SUPPORT_AES_C) || defined(HKS_SUPPORT_RSA_CRYPT)
195 #define HKS_SUPPORT_API_CIPHER
196 #endif
197 
198 #if defined(HKS_SUPPORT_X25519_AGREE_KEY) || defined(HKS_SUPPORT_ECDH_AGREE_KEY) || defined(HKS_SUPPORT_DH_AGREE_KEY)
199 #define HKS_SUPPORT_API_AGREE_KEY
200 #endif
201 
202 #ifdef HKS_SUPPORT_KDF_C
203 #define HKS_SUPPORT_API_DERIVE_KEY
204 #endif
205 
206 #ifdef HKS_SUPPORT_HMAC_C
207 #define HKS_SUPPORT_API_MAC
208 #endif
209 
210 #ifdef HKS_SUPPORT_HASH_C
211 #define HKS_SUPPORT_API_HASH
212 #endif
213 
214 #ifdef HKS_SUPPORT_BN_C
215 #define HKS_SUPPORT_API_BN_EXP_MOD
216 #endif
217 
218 #ifndef HKS_SUPPORT_LITE_HEAP
219 #define HKS_SUPPORT_API_GET_KEY_INFO_LIST
220 #endif
221 
222 /* Key user auth access control */
223 #if defined(HKS_SUPPORT_HMAC_C) && defined(HKS_SUPPORT_API_GENERATE_KEY) && (defined(HKS_SUPPORT_API_IMPORT) || \
224     defined(HKS_SUPPORT_API_GENERATE_KEY) || defined(HKS_SUPPORT_API_IMPORT_WRAPPED_KEY))
225 #define HKS_SUPPORT_USER_AUTH_ACCESS_CONTROL
226 #endif
227 
228 #endif /* HKS_CONFIG_H */
229