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 102 /* DH */ 103 #define HKS_SUPPORT_DH_C 104 #define HKS_SUPPORT_DH_GENERATE_KEY 105 #define HKS_SUPPORT_DH_AGREE_KEY 106 #define HKS_SUPPORT_DH_GET_PUBLIC_KEY 107 108 /* DSA */ 109 #define HKS_SUPPORT_DSA_C 110 #define HKS_SUPPORT_DSA_GENERATE_KEY 111 #define HKS_SUPPORT_DSA_SIGN_VERIFY 112 #define HKS_SUPPORT_DSA_GET_PUBLIC_KEY 113 114 /* X25519 */ 115 #define HKS_SUPPORT_X25519_C 116 #define HKS_SUPPORT_X25519_GENERATE_KEY 117 #define HKS_SUPPORT_X25519_AGREE_KEY 118 #define HKS_SUPPORT_X25519_GET_PUBLIC_KEY 119 120 #define HKS_SUPPORT_ED25519_TO_X25519 121 122 /* SM2 */ 123 #ifdef HKS_SUPPORT_ECC_C 124 #define HKS_SUPPORT_SM2_C 125 #define HKS_SUPPORT_SM2_SIGN_VERIFY 126 #define HKS_SUPPORT_SM2_ENCRYPT_DECRYPT 127 #ifdef HKS_SUPPORT_ECC_GENERATE_KEY 128 #define HKS_SUPPORT_SM2_GENERATE_KEY 129 #endif 130 #ifdef HKS_SUPPORT_ECC_GET_PUBLIC_KEY 131 #define HKS_SUPPORT_SM2_GET_PUBLIC_KEY 132 #endif 133 #endif 134 135 /* SM3 */ 136 #define HKS_SUPPORT_SM3_C 137 #define HKS_SUPPORT_SM3_GENERATE_KEY 138 #if defined(HKS_SUPPORT_SM3_C) && defined(HKS_SUPPORT_HMAC_C) 139 #define HKS_SUPPORT_HMAC_SM3 140 #endif 141 #if defined(HKS_SUPPORT_SM3_C) && defined(HKS_SUPPORT_HASH_C) 142 #define HKS_SUPPORT_HASH_SM3 143 #define HKS_SUPPORT_KDF_SM3 144 #endif 145 146 /* SM4 */ 147 #define HKS_SUPPORT_SM4_C 148 #define HKS_SUPPORT_SM4_GENERATE_KEY 149 #define HKS_SUPPORT_SM4_CBC_NOPADDING 150 #define HKS_SUPPORT_SM4_CBC_PKCS7 151 #define HKS_SUPPORT_SM4_CTR_NOPADDING 152 #define HKS_SUPPORT_SM4_ECB_NOPADDING 153 #define HKS_SUPPORT_SM4_ECB_PKCS7 154 #define HKS_SUPPORT_SM4_CFB_NOPADDING 155 #define HKS_SUPPORT_SM4_OFB_NOPADDING 156 157 /* enable cfi */ 158 #define HKS_SUPPORT_CFI 159 160 #if defined(_SUPPORT_HKS_TEE_) && defined(HKS_SUPPORT_HMAC_GENERATE_KEY) 161 #define HKS_SUPPORT_GET_AT_KEY 162 #endif 163 164 #if defined(HKS_SUPPORT_AES_GENERATE_KEY) || defined(HKS_SUPPORT_DH_GENERATE_KEY) || \ 165 defined(HKS_SUPPORT_DSA_GENERATE_KEY) || defined(HKS_SUPPORT_ECC_GENERATE_KEY) || \ 166 defined(HKS_SUPPORT_ED25519_GENERATE_KEY) || defined(HKS_SUPPORT_HMAC_GENERATE_KEY) || \ 167 defined(HKS_SUPPORT_RSA_GENERATE_KEY) || defined(HKS_SUPPORT_X25519_GENERATE_KEY) || \ 168 defined(HKS_SUPPORT_SM2_GENERATE_KEY) || defined(HKS_SUPPORT_SM3_GENERATE_KEY) || \ 169 defined(HKS_SUPPORT_SM4_GENERATE_KEY) 170 #define HKS_SUPPORT_API_GENERATE_KEY 171 #define HKS_SUPPORT_API_DELETE_KEY 172 #define HKS_SUPPORT_API_GET_KEY_PARAM_SET 173 #define HKS_SUPPORT_API_KEY_EXIST 174 #endif 175 176 #if defined(HKS_SUPPORT_ECC_C) || defined(HKS_SUPPORT_RSA_C) || defined(HKS_SUPPORT_ED25519_C) || \ 177 defined(HKS_SUPPORT_X25519_C) || defined(HKS_SUPPORT_AES_C) || defined(HKS_SUPPORT_DSA_C) || \ 178 defined(HKS_SUPPORT_DH_C) || defined(HKS_SUPPORT_SM2_C) 179 #define HKS_SUPPORT_API_IMPORT 180 #endif 181 182 #if defined(HKS_SUPPORT_ECC_C) || defined(HKS_SUPPORT_RSA_C) || defined(HKS_SUPPORT_ED25519_C) || \ 183 defined(HKS_SUPPORT_X25519_C) || defined(HKS_SUPPORT_AES_C) || defined(HKS_SUPPORT_DSA_C) || \ 184 defined(HKS_SUPPORT_DH_C) || defined(HKS_SUPPORT_SM2_C) 185 #define HKS_SUPPORT_API_EXPORT 186 #endif 187 188 #if defined(HKS_SUPPORT_ECC_C) || defined(HKS_SUPPORT_RSA_C) || defined(HKS_SUPPORT_ED25519_C) || \ 189 defined(HKS_SUPPORT_X25519_C) || defined(HKS_SUPPORT_AES_C) || defined(HKS_SUPPORT_DSA_C) || \ 190 defined(HKS_SUPPORT_DH_C) || defined(HKS_SUPPORT_SM2_C) 191 #define HKS_SUPPORT_API_IMPORT_WRAPPED_KEY 192 #endif 193 194 #define HKS_SUPPORT_API_GENERATE_RANDOM 195 196 #if defined(HKS_SUPPORT_ECDSA_SIGN_VERIFY) || defined(HKS_SUPPORT_ED25519_SIGN_VERIFY) || \ 197 defined(HKS_SUPPORT_RSA_SIGN_VERIFY) || defined(HKS_SUPPORT_DSA_SIGN_VERIFY) 198 #define HKS_SUPPORT_API_SIGN_VERIFY 199 #endif 200 201 #if defined(HKS_SUPPORT_AES_C) || defined(HKS_SUPPORT_RSA_CRYPT) 202 #define HKS_SUPPORT_API_CIPHER 203 #endif 204 205 #if defined(HKS_SUPPORT_X25519_AGREE_KEY) || defined(HKS_SUPPORT_ECDH_AGREE_KEY) || defined(HKS_SUPPORT_DH_AGREE_KEY) 206 #define HKS_SUPPORT_API_AGREE_KEY 207 #endif 208 209 #ifdef HKS_SUPPORT_KDF_C 210 #define HKS_SUPPORT_API_DERIVE_KEY 211 #endif 212 213 #ifdef HKS_SUPPORT_HMAC_C 214 #define HKS_SUPPORT_API_MAC 215 #endif 216 217 #ifdef HKS_SUPPORT_HASH_C 218 #define HKS_SUPPORT_API_HASH 219 #endif 220 221 #ifdef HKS_SUPPORT_BN_C 222 #define HKS_SUPPORT_API_BN_EXP_MOD 223 #endif 224 225 #ifndef HKS_SUPPORT_LITE_HEAP 226 #define HKS_SUPPORT_API_GET_KEY_INFO_LIST 227 #endif 228 229 #ifndef HKS_SUPPORT_CHIPSET_PLATFORM_DECRYPT 230 #define HKS_SUPPORT_CHIPSET_PLATFORM_DECRYPT 231 #endif 232 233 #endif /* HKS_CONFIG_H */ 234