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 #ifndef __LINUX__
22 #define HKS_ENABLE_LOG_PUBLIC
23 #endif
24 #define HKS_LOG_ENGINE_HILOG_MODULE_SCY
25 
26 /* AES */
27 #define HKS_SUPPORT_AES_C
28 #define HKS_SUPPORT_AES_GENERATE_KEY
29 #define HKS_SUPPORT_AES_CBC_NOPADDING
30 #define HKS_SUPPORT_AES_CBC_PKCS7
31 #define HKS_SUPPORT_AES_GCM
32 
33 /* BN */
34 #define HKS_SUPPORT_BN_C
35 
36 /* ECC */
37 #define HKS_SUPPORT_ECC_C
38 #define HKS_SUPPORT_ECC_GENERATE_KEY
39 #define HKS_SUPPORT_ECC_GET_PUBLIC_KEY
40 #define HKS_SUPPORT_ECDH_C
41 #define HKS_SUPPORT_ECDSA_C
42 #define HKS_SUPPORT_ECDSA_SIGN_VERIFY
43 #define HKS_SUPPORT_ECDH_AGREE_KEY
44 
45 /* ED25519 */
46 #define HKS_SUPPORT_ED25519_C
47 #define HKS_SUPPORT_ED25519_GENERATE_KEY
48 #define HKS_SUPPORT_ED25519_SIGN_VERIFY
49 #define HKS_SUPPORT_ED2519_GET_PUBLIC_KEY
50 
51 /* HASH */
52 #define HKS_SUPPORT_HASH_C
53 #define HKS_SUPPORT_HASH_SHA256
54 #define HKS_SUPPORT_HASH_SHA384
55 #define HKS_SUPPORT_HASH_SHA512
56 
57 /* HMAC */
58 #define HKS_SUPPORT_HMAC_C
59 #define HKS_SUPPORT_HMAC_SHA256
60 #define HKS_SUPPORT_HMAC_SHA384
61 #define HKS_SUPPORT_HMAC_SHA512
62 
63 /* KDF */
64 #define HKS_SUPPORT_KDF_C
65 #define HKS_SUPPORT_KDF_PBKDF2
66 #define HKS_SUPPORT_KDF_HKDF
67 
68 /* RSA */
69 #define HKS_SUPPORT_RSA_C
70 #define HKS_SUPPORT_RSA_GENERATE_KEY
71 #define HKS_SUPPORT_RSA_CRYPT
72 #define HKS_SUPPORT_RSA_SIGN_VERIFY
73 #define HKS_SUPPORT_RSA_GET_PUBLIC_KEY
74 
75 /* X25519 */
76 #define HKS_SUPPORT_X25519_C
77 #define HKS_SUPPORT_X25519_GENERATE_KEY
78 #define HKS_SUPPORT_X25519_AGREE_KEY
79 #define HKS_SUPPORT_X25519_GET_PUBLIC_KEY
80 
81 #define HKS_SUPPORT_ED25519_TO_X25519
82 
83 #if defined(HKS_SUPPORT_AES_GENERATE_KEY) || defined(HKS_SUPPORT_ECC_GENERATE_KEY) || \
84     defined(HKS_SUPPORT_ED25519_GENERATE_KEY) || defined(HKS_SUPPORT_RSA_GENERATE_KEY) || \
85     defined(HKS_SUPPORT_X25519_GENERATE_KEY)
86 #define HKS_SUPPORT_API_GENERATE_KEY
87 #define HKS_SUPPORT_API_DELETE_KEY
88 #define HKS_SUPPORT_API_GET_KEY_PARAM_SET
89 #define HKS_SUPPORT_API_KEY_EXIST
90 #endif
91 
92 #if defined(HKS_SUPPORT_ECC_C) || defined(HKS_SUPPORT_RSA_C) || \
93     defined(HKS_SUPPORT_ED25519_C) || defined(HKS_SUPPORT_X25519_C) || \
94     defined(HKS_SUPPORT_AES_C)
95 #define HKS_SUPPORT_API_IMPORT
96 #endif
97 
98 #if defined(HKS_SUPPORT_ECC_C) || defined(HKS_SUPPORT_RSA_C) || \
99     defined(HKS_SUPPORT_ED25519_C) || defined(HKS_SUPPORT_X25519_C)
100 #define HKS_SUPPORT_API_EXPORT
101 #endif
102 
103 #define HKS_SUPPORT_API_GENERATE_RANDOM
104 
105 #if defined(HKS_SUPPORT_ECDSA_C) || defined(HKS_SUPPORT_ED25519_SIGN_VERIFY) || \
106     defined(HKS_SUPPORT_RSA_SIGN_VERIFY)
107 #define HKS_SUPPORT_API_SIGN_VERIFY
108 #endif
109 
110 #if defined(HKS_SUPPORT_AES_C) || defined(HKS_SUPPORT_RSA_CRYPT)
111 #define HKS_SUPPORT_API_CIPHER
112 #endif
113 
114 #if defined(HKS_SUPPORT_X25519_AGREE_KEY) || defined(HKS_SUPPORT_ECDH_C)
115 #define HKS_SUPPORT_API_AGREE_KEY
116 #endif
117 
118 #ifdef HKS_SUPPORT_KDF_C
119 #define HKS_SUPPORT_API_DERIVE_KEY
120 #endif
121 
122 #ifdef HKS_SUPPORT_HMAC_C
123 #define HKS_SUPPORT_API_MAC
124 #endif
125 
126 #ifdef HKS_SUPPORT_HASH_C
127 #define HKS_SUPPORT_API_HASH
128 #endif
129 
130 #ifdef HKS_SUPPORT_BN_C
131 #define HKS_SUPPORT_API_BN_EXP_MOD
132 #endif
133 
134 #ifndef HKS_SUPPORT_LITE_HEAP
135 #define HKS_SUPPORT_API_GET_KEY_INFO_LIST
136 #endif
137 
138 #endif /* HKS_CONFIG_H */
139