• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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