1 /*
2  * Copyright (c) 2021-2021 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_LOG_ENGINE_HILOG_MODULE_SCY
22 
23 /* AES */
24 #define HKS_SUPPORT_AES_C
25 #define HKS_SUPPORT_AES_GENERATE_KEY
26 #define HKS_SUPPORT_AES_CBC_NOPADDING
27 #define HKS_SUPPORT_AES_CBC_PKCS7
28 #define HKS_SUPPORT_AES_GCM
29 
30 /* BN */
31 #define HKS_SUPPORT_BN_C
32 
33 /* HASH */
34 #define HKS_SUPPORT_HASH_C
35 #define HKS_SUPPORT_HASH_SHA256
36 #define HKS_SUPPORT_HASH_SHA384
37 #define HKS_SUPPORT_HASH_SHA512
38 
39 /* HMAC */
40 #define HKS_SUPPORT_HMAC_C
41 #define HKS_SUPPORT_HMAC_SHA256
42 #define HKS_SUPPORT_HMAC_SHA384
43 #define HKS_SUPPORT_HMAC_SHA512
44 
45 /* KDF */
46 #define HKS_SUPPORT_KDF_C
47 #define HKS_SUPPORT_KDF_PBKDF2
48 #define HKS_SUPPORT_KDF_HKDF
49 
50 /* X25519 */
51 #define HKS_SUPPORT_X25519_C
52 #define HKS_SUPPORT_X25519_GENERATE_KEY
53 #define HKS_SUPPORT_X25519_AGREE_KEY
54 #define HKS_SUPPORT_X25519_GET_PUBLIC_KEY
55 
56 #if defined(HKS_SUPPORT_AES_GENERATE_KEY) || defined(HKS_SUPPORT_ECC_GENERATE_KEY) || \
57     defined(HKS_SUPPORT_ED25519_GENERATE_KEY) || defined(HKS_SUPPORT_RSA_GENERATE_KEY) || \
58     defined(HKS_SUPPORT_X25519_GENERATE_KEY)
59 #define HKS_SUPPORT_API_GENERATE_KEY
60 #define HKS_SUPPORT_API_DELETE_KEY
61 #define HKS_SUPPORT_API_GET_KEY_PARAM_SET
62 #define HKS_SUPPORT_API_KEY_EXIST
63 #endif
64 
65 #if defined(HKS_SUPPORT_ECC_C) || defined(HKS_SUPPORT_RSA_C) || \
66     defined(HKS_SUPPORT_ED25519_C) || defined(HKS_SUPPORT_X25519_C) || \
67     defined(HKS_SUPPORT_AES_C)
68 #define HKS_SUPPORT_API_IMPORT
69 #endif
70 
71 #if defined(HKS_SUPPORT_ECC_C) || defined(HKS_SUPPORT_RSA_C) || \
72     defined(HKS_SUPPORT_ED25519_C) || defined(HKS_SUPPORT_X25519_C)
73 #define HKS_SUPPORT_API_EXPORT
74 #endif
75 
76 #define HKS_SUPPORT_API_GENERATE_RANDOM
77 
78 #if defined(HKS_SUPPORT_ECDSA_C) || defined(HKS_SUPPORT_ED25519_SIGN_VERIFY) || \
79     defined(HKS_SUPPORT_RSA_SIGN_VERIFY)
80 #define HKS_SUPPORT_API_SIGN_VERIFY
81 #endif
82 
83 #if defined(HKS_SUPPORT_AES_C) || defined(HKS_SUPPORT_RSA_CRYPT)
84 #define HKS_SUPPORT_API_CIPHER
85 #endif
86 
87 #if defined(HKS_SUPPORT_X25519_AGREE_KEY) || defined(HKS_SUPPORT_ECDH_C)
88 #define HKS_SUPPORT_API_AGREE_KEY
89 #endif
90 
91 #ifdef HKS_SUPPORT_KDF_C
92 #define HKS_SUPPORT_API_DERIVE_KEY
93 #endif
94 
95 #ifdef HKS_SUPPORT_HMAC_C
96 #define HKS_SUPPORT_API_MAC
97 #endif
98 
99 #ifdef HKS_SUPPORT_HASH_C
100 #define HKS_SUPPORT_API_HASH
101 #endif
102 
103 #ifdef HKS_SUPPORT_BN_C
104 #define HKS_SUPPORT_API_BN_EXP_MOD
105 #endif
106 
107 #ifndef HKS_SUPPORT_LITE_HEAP
108 #define HKS_SUPPORT_API_GET_KEY_INFO_LIST
109 #endif
110 
111 #endif /* HKS_CONFIG_H */
112