1# Copyright (C) 2021-2023 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 18if (os_level == "standard") { 19 config("huks_config") { 20 include_dirs = [ "service" ] 21 } 22 ohos_static_library("libhuks_service_os_dependency_standard_static") { 23 subsystem_name = "security" 24 part_name = "huks" 25 public_configs = [ ":huks_config" ] 26 27 sources = [] 28 deps = [ 29 "//base/security/huks/frameworks/huks_standard/main/common:libhuks_common_standard_static", 30 "//base/security/huks/frameworks/huks_standard/main/os_dependency:libhuks_util_standard_static", 31 "//base/security/huks/services/huks_standard/huks_service/main/core:libhuks_service_core_standard_static", 32 "//base/security/huks/services/huks_standard/huks_service/main/ha:libhuks_service_ha_static", 33 "//base/security/huks/services/huks_standard/huks_service/main/upgrade/core:libhuks_upgrade_core_static", 34 "//base/security/huks/services/huks_standard/huks_service/main/upgrade/lock:libhuks_upgrade_lock_static", 35 "//base/security/huks/utils/mutex:libhuks_utils_mutex_static", 36 ] 37 public_deps = [ "//base/security/huks/services/huks_standard/huks_service/main/os_dependency/idl:libhuks_service_idl_standard_static" ] 38 39 complete_static_lib = true 40 41 external_deps = [ "c_utils:utils" ] 42 43 branch_protector_ret = "pac_ret" 44 45 sanitize = { 46 integer_overflow = true 47 cfi = true 48 debug = false 49 cfi_cross_dso = true 50 boundary_sanitize = true 51 ubsan = true 52 } 53 sources += [ 54 "posix/hks_rwlock.c", 55 "sa/hks_dcm_callback_handler.cpp", 56 "sa/hks_sa.cpp", 57 "sa/hks_xcollie.cpp", 58 59 # both client side and server side will include hks_sa_interface.cpp 60 "sa/hks_sa_interface.cpp", 61 ] 62 63 if (huks_enable_upgrade_key_storage_secure_level) { 64 sources += [ "sa/hks_osaccount_check.cpp" ] 65 } 66 67 defines = [] 68 if (huks_security_level == "software") { 69 defines += [ "HKS_UNTRUSTED_RUNNING_ENV" ] 70 } 71 if (support_jsapi) { 72 sources += [ "sa/hks_event_observer.cpp" ] 73 defines += [ "SUPPORT_COMMON_EVENT" ] 74 external_deps += [ 75 "ability_base:want", 76 "common_event_service:cesfwk_innerkits", 77 ] 78 if (has_os_account_part) { 79 defines += [ "HAS_OS_ACCOUNT_PART" ] 80 external_deps += [ "os_account:os_account_innerkits" ] 81 } 82 } 83 84 if (use_musl) { 85 if (musl_use_jemalloc && musl_use_jemalloc_dfx_intf) { 86 defines += [ "CONFIG_USE_JEMALLOC_DFX_INTF" ] 87 } 88 } 89 90 configs = [ 91 "//base/security/huks/frameworks/config/build:l2_standard_common_config", 92 ] 93 external_deps += [ 94 "hicollie:libhicollie", 95 "hilog:libhilog", 96 "init:libbegetutil", 97 "ipc:ipc_single", 98 "safwk:system_ability_fwk", 99 "samgr:samgr_proxy", 100 ] 101 } 102} else { 103 config("huks_config") { 104 include_dirs = [ 105 "sa/sa_mgr", 106 "//foundation/systemabilitymgr/samgr_lite/interfaces/kits/registry", 107 ] 108 } 109 ohos_static_library("libhuks_service_os_dependency_small_static") { 110 public_configs = [ ":huks_config" ] 111 configs = [ 112 "//base/security/huks/frameworks/config/build:l1_small_common_config", 113 ] 114 115 include_dirs = [] 116 117 include_dirs = [ 118 "//base/security/huks/frameworks/huks_standard/main/os_dependency/ipc/include", 119 "//base/security/huks/services/huks_standard/huks_service/main/os_dependency/sa", 120 ] 121 122 sources = [] 123 deps = [ 124 "//base/security/huks/frameworks/huks_standard/main/common:libhuks_common_small_static", 125 "//base/security/huks/services/huks_standard/huks_service/main/core:libhuks_service_core_small_static", 126 "//base/security/huks/services/huks_standard/huks_service/main/os_dependency/idl:libhuks_service_idl_small_static", 127 ] 128 129 complete_static_lib = true 130 131 deps += [ 132 "//foundation/communication/ipc/interfaces/innerkits/c/ipc:ipc_single", 133 "//foundation/systemabilitymgr/samgr_lite/samgr:samgr", 134 ] 135 136 sources += [ 137 "//base/security/huks/services/huks_standard/huks_service/main/os_dependency/sa/sa_mgr/hks_samgr_service.c", 138 "//base/security/huks/services/huks_standard/huks_service/main/os_dependency/sa/sa_mgr/hks_samgr_service_feature.c", 139 ] 140 141 external_deps = [ "hilog_lite:hilog_shared" ] 142 } 143} 144