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