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