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