1# Copyright (C) 2021-2024 Huawei Device Co., Ltd. 2# Licensed under the Apache License, Version 2.0 (the "License"); 3# you may not use this file except in compliance with the License. 4# You may obtain a copy of the License at 5# 6# http://www.apache.org/licenses/LICENSE-2.0 7# 8# Unless required by applicable law or agreed to in writing, software 9# distributed under the License is distributed on an "AS IS" BASIS, 10# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 11# See the License for the specific language governing permissions and 12# limitations under the License. 13 14import("//base/security/huks/build/config.gni") 15import("//base/security/huks/huks.gni") 16import("//build/ohos.gni") 17 18config("public_huks_config") { 19 include_dirs = [ 20 "//base/security/huks/interfaces/inner_api/huks_standard/main/include", 21 "//base/security/huks/frameworks/huks_standard/main/common/include", 22 "//base/security/huks/services/huks_standard/huks_engine/main/core/include", 23 "//base/security/huks/services/huks_standard/huks_engine/main/device_cert_manager/include", 24 "//base/security/huks/frameworks/huks_standard/main/os_dependency/ipc/include", 25 "//base/security/huks/frameworks/huks_standard/main/crypto_engine/openssl/include", 26 "//base/security/huks/utils/file_operator", 27 "//base/security/huks/utils/list", 28 "//base/security/huks/utils/mutex", 29 "//base/security/huks/frameworks/huks_standard/main/core/include", 30 "//base/security/huks/frameworks/huks_standard/main/os_dependency/sysinfo/include", 31 "//base/security/huks/services/huks_standard/huks_service/main/core/include", 32 "//base/security/huks/services/huks_standard/huks_service/main/hks_storage/include", 33 "//base/security/huks/services/huks_standard/huks_service/main/systemapi_wrap/dcm/include", 34 "//base/security/huks/services/huks_standard/huks_service/main/os_dependency/idl/passthrough", 35 "//base/security/huks/utils/crypto_adapter", 36 "//base/security/huks/services/huks_standard/huks_service/main/systemapi_wrap/useridm/inc", 37 "//base/security/huks/services/huks_standard/huks_service/main/systemapi_wrap/bms/include", 38 "//base/security/huks/services/huks_standard/huks_service/main/systemapi_wrap/hitrace_meter_wrapper/include", 39 "//base/security/huks/services/huks_standard/huks_engine/main/core_dependency/include", 40 "//base/security/huks/services/huks_standard/huks_service/main/systemapi_wrap/hisysevent_wrapper/include", 41 "//base/security/huks/services/huks_standard/huks_service/main/os_dependency/sa", 42 "//base/security/huks/services/huks_standard/huks_service/main/upgrade/file_transfer/include", 43 "//base/security/huks/services/huks_standard/huks_service/main/upgrade/core/include", 44 "//base/security/huks/services/huks_standard/huks_service/main/upgrade/lock/include", 45 "//base/security/huks/services/huks_standard/huks_service/main/systemapi_wrap/at_wrapper/include", 46 "//base/security/huks/utils/file_iterative_reader/include", 47 ] 48 if (huks_use_rkc_in_standard) { 49 include_dirs += [ "//base/security/huks/frameworks/huks_standard/main/crypto_engine/rkc/include" ] 50 } 51} 52 53huks_sources = [ 54 "//base/security/huks/frameworks/huks_standard/main/common/src/hks_ability.c", 55 "//base/security/huks/frameworks/huks_standard/main/common/src/hks_base_check.c", 56 "//base/security/huks/frameworks/huks_standard/main/common/src/hks_check_paramset.c", 57 "//base/security/huks/frameworks/huks_standard/main/common/src/hks_common_check.c", 58 "//base/security/huks/frameworks/huks_standard/main/common/src/hks_crypto_adapter.c", 59 "//base/security/huks/frameworks/huks_standard/main/common/src/hks_errcode_adapter.c", 60 "//base/security/huks/frameworks/huks_standard/main/common/src/hks_param.c", 61 "//base/security/huks/frameworks/huks_standard/main/common/src/hks_tags_type_manager.c", 62 "//base/security/huks/frameworks/huks_standard/main/core/src/hks_local_engine.c", 63 "//base/security/huks/frameworks/huks_standard/main/core/src/hks_verifier.c", 64 "//base/security/huks/frameworks/huks_standard/main/os_dependency/ipc/src/hks_client_service_passthrough.c", 65 "//base/security/huks/frameworks/huks_standard/main/os_dependency/ipc/src/hks_ipc_check.c", 66 "//base/security/huks/frameworks/huks_standard/main/os_dependency/posix/hks_mem.c", 67 "//base/security/huks/frameworks/huks_standard/main/os_dependency/sysinfo/src/hks_get_process_info_passthrough.c", 68 "//base/security/huks/frameworks/huks_standard/main/os_dependency/sysinfo/src/hks_get_udid.c", 69 "//base/security/huks/interfaces/inner_api/huks_standard/source/hks_api.c", 70 "//base/security/huks/interfaces/inner_api/huks_standard/source/hks_api_adapter.c", 71 "//base/security/huks/services/huks_standard/huks_service/main/core/src/hks_client_check.c", 72 "//base/security/huks/services/huks_standard/huks_service/main/core/src/hks_client_service.c", 73 "//base/security/huks/services/huks_standard/huks_service/main/core/src/hks_client_service_util.c", 74 "//base/security/huks/services/huks_standard/huks_service/main/core/src/hks_hitrace.c", 75 "//base/security/huks/services/huks_standard/huks_service/main/core/src/hks_report.c", 76 "//base/security/huks/services/huks_standard/huks_service/main/core/src/hks_session_manager.c", 77 "//base/security/huks/services/huks_standard/huks_service/main/core/src/hks_upgrade_helper.c", 78 "//base/security/huks/services/huks_standard/huks_service/main/core/src/hks_upgrade_key_accesser.c", 79 "//base/security/huks/services/huks_standard/huks_service/main/hks_storage/src/hks_lock.c", 80 "//base/security/huks/services/huks_standard/huks_service/main/hks_storage/src/hks_storage.c", 81 "//base/security/huks/services/huks_standard/huks_service/main/hks_storage/src/hks_storage_adapter.c", 82 "//base/security/huks/services/huks_standard/huks_service/main/hks_storage/src/hks_storage_file_lock.c", 83 "//base/security/huks/services/huks_standard/huks_service/main/hks_storage/src/hks_storage_manager.c", 84 "//base/security/huks/services/huks_standard/huks_service/main/hks_storage/src/hks_storage_utils.c", 85 "//base/security/huks/services/huks_standard/huks_service/main/os_dependency/posix/hks_rwlock.c", 86 "//base/security/huks/services/huks_standard/huks_service/main/os_dependency/sa/hks_event_observer.cpp", 87 "//base/security/huks/services/huks_standard/huks_service/main/plugin_proxy/src/hks_plugin_adapter_mock.c", 88 "//base/security/huks/services/huks_standard/huks_service/main/systemapi_mock/src/hks_useridm_api_mock.cpp", 89 "//base/security/huks/services/huks_standard/huks_service/main/systemapi_wrap/at_wrapper/src/hks_at_api_wrap.cpp", 90 "//base/security/huks/services/huks_standard/huks_service/main/systemapi_wrap/hitrace_meter_wrapper/src/hitrace_meter_wrapper.cpp", 91 "//base/security/huks/services/huks_standard/huks_service/main/upgrade/core/src/hks_upgrade.cpp", 92 "//base/security/huks/services/huks_standard/huks_service/main/upgrade/file_transfer/src/hks_config_parser.c", 93 "//base/security/huks/services/huks_standard/huks_service/main/upgrade/file_transfer/src/hks_file_transfer.c", 94 "//base/security/huks/services/huks_standard/huks_service/main/upgrade/lock/src/hks_upgrade_lock.cpp", 95 "//base/security/huks/test/unittest/huks_standard_test/module_test/mock/idl/src/huks_access_mock.c", 96 "//base/security/huks/utils/crypto_adapter/hks_client_service_adapter.c", 97 "//base/security/huks/utils/crypto_adapter/hks_client_service_adapter_common.c", 98 "//base/security/huks/utils/file_iterative_reader/src/hks_iterative_reader.c", 99 "//base/security/huks/utils/file_operator/hks_file_operator.c", 100 "//base/security/huks/utils/list/hks_double_list.c", 101 "//base/security/huks/utils/mutex/hks_mutex.c", 102] 103 104huks_core_sources = [ 105 "//base/security/huks/services/huks_standard/huks_engine/main/core/src/hks_auth.c", 106 "//base/security/huks/services/huks_standard/huks_engine/main/core/src/hks_core_interfaces.c", 107 "//base/security/huks/services/huks_standard/huks_engine/main/core/src/hks_core_service_key_attest.c", 108 "//base/security/huks/services/huks_standard/huks_engine/main/core/src/hks_core_service_key_chipset_platform_derive.c", 109 "//base/security/huks/services/huks_standard/huks_engine/main/core/src/hks_core_service_key_generate.c", 110 "//base/security/huks/services/huks_standard/huks_engine/main/core/src/hks_core_service_key_operate_one_stage.c", 111 "//base/security/huks/services/huks_standard/huks_engine/main/core/src/hks_core_service_key_operate_three_stage.c", 112 "//base/security/huks/services/huks_standard/huks_engine/main/core/src/hks_core_service_key_other.c", 113 "//base/security/huks/services/huks_standard/huks_engine/main/core/src/hks_core_service_three_stage.c", 114 "//base/security/huks/services/huks_standard/huks_engine/main/core/src/hks_keyblob.c", 115 "//base/security/huks/services/huks_standard/huks_engine/main/core/src/hks_keynode.c", 116 "//base/security/huks/services/huks_standard/huks_engine/main/core/src/hks_secure_access.c", 117 "//base/security/huks/services/huks_standard/huks_engine/main/core/src/hks_upgrade_key.c", 118 "//base/security/huks/services/huks_standard/huks_engine/main/device_cert_manager/src/dcm_asn1.c", 119 "//base/security/huks/services/huks_standard/huks_engine/main/device_cert_manager/src/dcm_attest.c", 120 "//base/security/huks/services/huks_standard/huks_engine/main/device_cert_manager/src/dcm_attest_utils.c", 121] 122 123config("soft_huks_config") { 124 defines = [ 125 "_FORTIFY_SOURCE = 2", 126 "HAS_OS_ACCOUNT_PART", 127 "SUPPORT_COMMON_EVENT", 128 "OPENSSL_SUPPRESS_DEPRECATED", 129 ] 130 131 cflags = [ "-fvisibility=default" ] 132 133 if (disable_authenticate == true) { 134 cflags += [ "-D_CUT_AUTHENTICATE_" ] 135 } 136 137 cflags += [ "-flto" ] 138 139 cflags += [ "-D_DEFAULT_SOURCE" ] 140 141 cflags += [ 142 "-DHUKS_CHANGE_STORAGE_LEVEL_CONFIG=${huks_change_storage_level_config}", 143 ] 144} 145config("hilog_dir") { 146 include_dirs = [] 147} 148ohos_static_library("libhukssdk_static") { 149 sanitize = { 150 integer_overflow = true 151 boundary_sanitize = true 152 ubsan = true 153 } 154 branch_protector_ret = "pac_ret" 155 156 subsystem_name = "security" 157 part_name = "huks" 158 public_configs = [ ":public_huks_config" ] 159 configs = [ ":soft_huks_config" ] 160 161 sources = huks_sources 162 sources += huks_core_sources 163 164 include_dirs = [ 165 "//base/security/huks/frameworks/huks_standard/main/common/include", 166 "//base/security/huks/services/huks_standard/huks_engine/main/core/include", 167 "//base/security/huks/frameworks/huks_standard/main/os_dependency/ipc/include", 168 "//base/security/huks/frameworks/huks_standard/main/crypto_engine/openssl/include", 169 "//base/security/huks/utils/file_operator", 170 "//base/security/huks/utils/list", 171 "//base/security/huks/utils/mutex", 172 173 "//base/security/huks/frameworks/huks_standard/main/core/include", 174 "//base/security/huks/frameworks/huks_standard/main/os_dependency/sysinfo/include", 175 "//base/security/huks/services/huks_standard/huks_service/main/core/include", 176 "//base/security/huks/services/huks_standard/huks_service/main/os_dependency/idl/passthrough", 177 "//base/security/huks/utils/crypto_adapter", 178 179 "//base/security/huks/services/huks_standard/huks_service/main/systemapi_wrap/useridm/inc", 180 "//base/security/huks/services/huks_standard/huks_service/main/systemapi_wrap/bms/include", 181 "//base/security/huks/services/huks_standard/huks_service/main/systemapi_wrap/hitrace_meter_wrapper/include", 182 "//base/security/huks/services/huks_standard/huks_service/main/os_dependency/idl/ipc", # hks_response.h 183 "//base/security/huks/services/huks_standard/huks_service/main/plugin_proxy/include", 184 ] 185 deps = [] 186 187 configs += [ ":hilog_dir" ] 188 configs += [ 189 "//base/security/huks/frameworks/config/build:l2_standard_common_config", 190 ] 191 deps += [ 192 "//base/security/huks/frameworks/huks_standard/main/crypto_engine/openssl:libhuks_openssl_standard_static", 193 "//base/security/huks/services/huks_standard/huks_engine/main/core_dependency:libhuks_core_hal_api_static", 194 "//base/security/huks/services/huks_standard/huks_service/main/systemapi_wrap/hisysevent_wrapper:libhuks_utils_hisysevent_wrapper_static", 195 "//base/security/huks/utils/condition:libhuks_utils_condition_static", 196 ] 197 external_deps = [ 198 "access_token:libaccesstoken_sdk", 199 "bounds_checking_function:libsec_shared", 200 "c_utils:utils", 201 "hilog:libhilog", 202 "hitrace:hitrace_meter", 203 "hitrace:libhitracechain", 204 "openssl:libcrypto_shared", 205 "safwk:system_ability_fwk", 206 "samgr:samgr_proxy", 207 ] 208 209 if (enable_user_auth_framework) { 210 external_deps += [ "user_auth_framework:userauth_client" ] 211 } 212 213 if (support_jsapi) { 214 external_deps += [ "os_account:os_account_innerkits" ] 215 external_deps += [ 216 "ability_base:want", 217 "common_event_service:cesfwk_innerkits", 218 "ipc:ipc_single", 219 ] 220 } 221} 222