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 16import("//base/security/huks/build/config.gni") 17import("//build/ohos.gni") 18 19huks_sources = [ 20 "../../../frameworks/huks_standard/main/common/src/hks_ability.c", 21 "../../../frameworks/huks_standard/main/common/src/hks_base_check.c", 22 "../../../frameworks/huks_standard/main/common/src/hks_check_paramset.c", 23 "../../../frameworks/huks_standard/main/common/src/hks_common_check.c", 24 "../../../frameworks/huks_standard/main/common/src/hks_crypto_adapter.c", 25 "../../../frameworks/huks_standard/main/common/src/hks_param.c", 26 "../../../frameworks/huks_standard/main/core/src/hks_local_engine.c", 27 "../../../frameworks/huks_standard/main/os_dependency/ipc/src/hks_client_service_passthrough.c", 28 "../../../frameworks/huks_standard/main/os_dependency/posix/hks_mem.c", 29 "../../../frameworks/huks_standard/main/os_dependency/sysinfo/src/hks_get_process_info_passthrough.c", 30 "../../../frameworks/huks_standard/main/os_dependency/sysinfo/src/hks_get_udid.c", 31 "../../../interfaces/innerkits/huks_standard/main/src/hks_api.c", 32 "../../../interfaces/innerkits/huks_standard/main/src/hks_api_adapter.c", 33 "../../../services/huks_standard/huks_engine/main/core/src/hks_auth.c", 34 "../../../services/huks_standard/huks_engine/main/core/src/hks_core_interfaces.c", 35 "../../../services/huks_standard/huks_engine/main/core/src/hks_core_service.c", 36 "../../../services/huks_standard/huks_engine/main/core/src/hks_core_service_three_stage.c", 37 "../../../services/huks_standard/huks_engine/main/core/src/hks_keyblob.c", 38 "../../../services/huks_standard/huks_engine/main/core/src/hks_keynode.c", 39 "../../../services/huks_standard/huks_engine/main/core/src/hks_rkc.c", 40 "../../../services/huks_standard/huks_engine/main/core/src/hks_rkc_rw.c", 41 "../../../services/huks_standard/huks_engine/main/core/src/hks_secure_access.c", 42 "../../../services/huks_standard/huks_engine/main/core/src/hks_upgrade_key_info.c", 43 "../../../services/huks_standard/huks_service/main/core/src/hks_client_check.c", 44 "../../../services/huks_standard/huks_service/main/core/src/hks_client_service.c", 45 "../../../services/huks_standard/huks_service/main/core/src/hks_hitrace.c", 46 "../../../services/huks_standard/huks_service/main/core/src/hks_report.c", 47 "../../../services/huks_standard/huks_service/main/core/src/hks_session_manager.c", 48 "../../../services/huks_standard/huks_service/main/core/src/hks_upgrade_storage_data.c", 49 "../../../services/huks_standard/huks_service/main/os_dependency/idl/passthrough/huks_access.c", 50 "../../../services/huks_standard/huks_service/main/os_dependency/idl/passthrough/huks_core_static_hal.c", 51 "../../../utils/crypto_adapter/hks_client_service_adapter_common.c", 52 "../../../utils/crypto_adapter/hks_client_service_adapter_lite.c", 53 "../../../utils/file_operator/hks_file_operator_lite.c", 54 "../../../utils/list/hks_double_list.c", 55 "../../../utils/mutex/hks_mutex.c", 56] 57 58if (huks_use_mbedtls == true) { 59 huks_mbedtls_engine_sources = [ 60 "../../../frameworks/huks_standard/main/crypto_engine/mbedtls/src/hks_crypto_ed25519.c", 61 "../../../frameworks/huks_standard/main/crypto_engine/mbedtls/src/hks_mbedtls_ability.c", 62 "../../../frameworks/huks_standard/main/crypto_engine/mbedtls/src/hks_mbedtls_aes.c", 63 "../../../frameworks/huks_standard/main/crypto_engine/mbedtls/src/hks_mbedtls_bn.c", 64 "../../../frameworks/huks_standard/main/crypto_engine/mbedtls/src/hks_mbedtls_common.c", 65 "../../../frameworks/huks_standard/main/crypto_engine/mbedtls/src/hks_mbedtls_ecc.c", 66 "../../../frameworks/huks_standard/main/crypto_engine/mbedtls/src/hks_mbedtls_ecdh.c", 67 "../../../frameworks/huks_standard/main/crypto_engine/mbedtls/src/hks_mbedtls_ecdsa.c", 68 "../../../frameworks/huks_standard/main/crypto_engine/mbedtls/src/hks_mbedtls_engine.c", 69 "../../../frameworks/huks_standard/main/crypto_engine/mbedtls/src/hks_mbedtls_hash.c", 70 "../../../frameworks/huks_standard/main/crypto_engine/mbedtls/src/hks_mbedtls_hmac.c", 71 "../../../frameworks/huks_standard/main/crypto_engine/mbedtls/src/hks_mbedtls_kdf.c", 72 "../../../frameworks/huks_standard/main/crypto_engine/mbedtls/src/hks_mbedtls_rsa.c", 73 "../../../frameworks/huks_standard/main/crypto_engine/mbedtls/src/hks_mbedtls_x25519.c", 74 ] 75} 76 77if (huks_use_lite_storage == true) { 78 huks_storage_source = [ 79 "../../../services/huks_standard/huks_service/main/core/src/hks_storage_adapter.c", 80 "../../../services/huks_standard/huks_service/main/core/src/hks_storage_lite.c", 81 "../../../services/huks_standard/huks_engine/main/core/src/hks_keyblob_lite.c", 82 ] 83} else { 84 huks_storage_source = [ 85 "../../../services/huks_standard/huks_service/main/core/src/hks_storage.c", 86 ] 87} 88config("hilog_dir") { 89 include_dirs = 90 [ "//base/hiviewdfx/hilog_lite/interfaces/native/innerkits/hilog/" ] 91} 92config("hilog_lite_dir") { 93 include_dirs = 94 [ "//base/hiviewdfx/hilog_lite/interfaces/native/kits/hilog_lite/" ] 95} 96 97config("mbedtls_engine") { 98 include_dirs = 99 [ "../../../frameworks/huks_standard/main/crypto_engine/mbedtls/include" ] 100} 101 102config("soft_huks_config") { 103 include_dirs = [ 104 "../../../frameworks/huks_standard/main/common/include", 105 "../../../frameworks/huks_standard/main/core/include", 106 "../../../frameworks/huks_standard/main/crypto_engine/mbedtls/include", 107 "../../../frameworks/huks_standard/main/os_dependency/ipc/include", 108 "../../../frameworks/huks_standard/main/os_dependency/sysinfo/include", 109 "../../../services/huks_standard/huks_engine/main/core/include", 110 "../../../services/huks_standard/huks_service/main/core/include", 111 "//commonlibrary/utils_lite/memory/include/", 112 "//commonlibrary/utils_lite/include/", 113 "//base/security/huks/services/huks_standard/huks_engine/main/core/include", 114 "//base/security/huks/services/huks_standard/huks_service/main/os_dependency/idl/passthrough", 115 "//base/security/huks/utils/crypto_adapter", 116 "//base/security/huks/utils/file_operator", 117 "//base/security/huks/utils/list", 118 "//base/security/huks/utils/mutex", 119 ] 120 121 if (board_toolchain_type != "iccarm") { 122 defines = [ "_FORTIFY_SOURCE = 2" ] 123 } 124 if (board_toolchain_type == "iccarm") { 125 cflags = [ 126 "--diag_suppress", 127 "Pe370,Pe226", 128 ] 129 } else { 130 cflags = [ 131 "-fvisibility=hidden", 132 "-Wall", 133 "-Werror", 134 ] 135 } 136 137 if (disable_authenticate == true) { 138 cflags += [ "-D_CUT_AUTHENTICATE_" ] 139 } 140 141 if (ohos_kernel_type != "liteos_m") { 142 cflags += [ "-flto" ] 143 } 144 145 if (huks_use_hardware_root_key == true) { 146 cflags += [ "-D_HARDWARE_ROOT_KEY_" ] 147 } 148 149 if (huks_use_lite_storage == true) { 150 cflags += [ "-D_STORAGE_LITE_" ] 151 } else { 152 if (ohos_kernel_type == "liteos_a") { 153 cflags += [ "-D_BSD_SOURCE" ] 154 } else { 155 cflags += [ "-D_DEFAULT_SOURCE" ] 156 } 157 } 158 159 if (ohos_kernel_type != "liteos_m" || huks_enable_log == true) { 160 cflags += [ "-D_HUKS_LOG_ENABLE_" ] 161 } 162 163 if (huks_config_file != "") { 164 print(huks_config_file) 165 cflags += [ "-DHKS_CONFIG_FILE=\"${huks_config_file}\"" ] 166 } 167 168 cflags += [ "-DHKS_CONFIG_KEY_STORE_PATH=\"${huks_key_store_path}\"" ] 169} 170 171config("public_huks_config") { 172 include_dirs = [ "../../../interfaces/innerkits/huks_standard/main/include" ] 173} 174 175config("get_dev_udid_config") { 176 cflags = [ "-DGET_DEV_UDID_ENABLE" ] 177} 178 179#begin: add 180if (ohos_kernel_type == "liteos_m") { 181 ohos_static_library("huks_3.0_sdk") { 182 public_configs = [ ":public_huks_config" ] 183 configs = [ ":soft_huks_config" ] 184 185 sources = huks_sources 186 sources += huks_storage_source 187 sources += [ "hks_tmp_client.c" ] 188 189 include_dirs = [ 190 "//commonlibrary/c_utils/base/include", 191 "//base/security/huks/frameworks/huks_standard/main/common/include", 192 "//base/security/huks/services/huks_standard/huks_engine/main/core/include", 193 ] 194 deps = [] 195 if (huks_use_mbedtls == true) { 196 sources += huks_mbedtls_engine_sources 197 if (huks_dependency_mbedtls_path != "") { 198 deps += [ huks_dependency_mbedtls_path ] 199 } else { 200 deps += [ "//third_party/mbedtls:mbedtls_static" ] 201 } 202 configs += [ ":mbedtls_engine" ] 203 } 204 205 defines = [ 206 "MBEDTLS_ECP_RESTARTABLE=1", 207 "LOG_ENGINE_HILOG_MODULE_SCY", 208 ] 209 210 if (huks_enable_log == true) { 211 configs += [ ":hilog_lite_dir" ] 212 deps += [ "//base/hiviewdfx/hilog_lite/frameworks/mini:hilog_lite" ] 213 } 214 } 215} else { 216 ohos_shared_library("huks_3.0_sdk") { 217 public_configs = [ ":public_huks_config" ] 218 configs = [ ":soft_huks_config" ] 219 configs += [ ":get_dev_udid_config" ] 220 sources = huks_sources 221 sources += huks_storage_source 222 223 include_dirs = [ 224 "//commonlibrary/c_utils/base/include", 225 "//base/security/huks/frameworks/huks_standard/main/common/include", 226 "//base/security/huks/services/huks_standard/huks_engine/main/core/include", 227 "//frameworks/huks_standard/main/os_dependency/ipc/include", 228 ] 229 deps = [] 230 external_deps = [ "init_lite:libbegetutil" ] 231 232 if (huks_use_mbedtls == true) { 233 sources += huks_mbedtls_engine_sources 234 if (huks_dependency_mbedtls_path != "") { 235 deps += [ huks_dependency_mbedtls_path ] 236 } else { 237 deps += [ "//third_party/mbedtls:mbedtls_shared" ] 238 } 239 if (huks_dependency_openssl_path != "") { 240 deps += [ huks_dependency_openssl_path ] 241 } else { 242 deps += [ "//build/lite/config/component/openssl:openssl_shared" ] 243 } 244 configs += [ ":mbedtls_engine" ] 245 } 246 247 defines = [ 248 "MBEDTLS_ECP_RESTARTABLE=1", 249 "LOG_ENGINE_HILOG_MODULE_SCY", 250 ] 251 252 configs += [ ":hilog_dir" ] 253 deps += [ 254 "//base/hiviewdfx/hilog_lite/frameworks/featured:hilog_shared", 255 "//third_party/bounds_checking_function:libsec_shared", 256 ] 257 } 258 if (ohos_build_type == "debug") { 259 group("huks_3.0_test") { 260 deps = [ "//base/security/huks/test:unittest" ] 261 } 262 } 263} 264