• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# Copyright (c) 2023-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("//build/test.gni")
15import("../../code_signature.gni")
16
17ohos_source_set("key_enable_src_set") {
18  sources = [
19    "${code_signature_root_dir}/services/key_enable/utils/src/cert_path.cpp",
20    "utils/src/enable_key_utils.cpp",
21  ]
22  include_dirs = [
23    "utils/include",
24    "${code_signature_root_dir}/services/key_enable/utils/include",
25  ]
26  configs = [
27    "${code_signature_root_dir}:common_utils_config",
28    "${code_signature_root_dir}:common_public_config",
29  ]
30  external_deps = [
31    "hilog:libhilog",
32    "init:libbegetutil",
33  ]
34  part_name = "code_signature"
35  subsystem_name = "security"
36}
37
38ohos_unittest("add_cert_path_unittest") {
39  module_out_path = "security/code_signature"
40  sources = [
41    "${code_signature_root_dir}/services/key_enable/utils/src/cert_path.cpp",
42    "add_cert_path_test.cpp",
43  ]
44  include_dirs =
45      [ "${code_signature_root_dir}/services/key_enable/utils/include" ]
46  configs = [
47    "${code_signature_root_dir}:common_utils_config",
48    "${code_signature_root_dir}:common_public_config",
49  ]
50  deps = [ "${selinux_dir}:libselinux" ]
51  external_deps = [
52    "hilog:libhilog",
53    "init:libbegetutil",
54  ]
55}
56
57ohos_unittest("code_sign_utils_unittest") {
58  module_out_path = "security/code_signature"
59  resource_config_file = "resources/ohos_test.xml"
60  sources = [ "code_sign_utils_test.cpp" ]
61
62  deps = [
63    ":key_enable_src_set",
64    "${code_signature_root_dir}/interfaces/innerkits/code_sign_utils:libcode_sign_utils",
65  ]
66
67  include_dirs = [
68    "utils/include",
69    "${code_signature_root_dir}/interfaces/innerkits/code_sign_utils/include",
70    "${code_signature_root_dir}/utils/include",
71  ]
72
73  external_deps = [
74    "appverify:libhapverify",
75    "c_utils:utils",
76    "hilog:libhilog",
77  ]
78}
79
80ohos_unittest("code_sign_utils_in_c_unittest") {
81  module_out_path = "security/code_signature"
82  resource_config_file = "resources/ohos_test.xml"
83  sources = [ "code_sign_utils_in_c_test.cpp" ]
84
85  deps = [ "${code_signature_root_dir}/interfaces/innerkits/code_sign_utils:libcode_sign_utils" ]
86
87  include_dirs = [
88    "${code_signature_root_dir}/interfaces/innerkits/code_sign_utils/include",
89    "${code_signature_root_dir}/utils/include",
90  ]
91
92  external_deps = [
93    "c_utils:utils",
94    "hilog:libhilog",
95  ]
96}
97
98ohos_unittest("local_code_sign_unittest") {
99  sanitize = {
100    cfi = true
101    cfi_cross_dso = true
102    debug = false
103  }
104  branch_protector_ret = "pac_ret"
105  module_out_path = "security/code_signature"
106  resource_config_file = "resources/ohos_test.xml"
107  sources = [ "local_code_sign_test.cpp" ]
108  deps = [
109    "${code_signature_root_dir}/interfaces/innerkits/code_sign_utils:libcode_sign_utils",
110    "${code_signature_root_dir}/interfaces/innerkits/local_code_sign:liblocal_code_sign_sdk",
111  ]
112
113  include_dirs = [
114    "utils/include",
115    "${code_signature_root_dir}/interfaces/innerkits/local_code_sign/include",
116    "${code_signature_root_dir}/services/local_code_sign/include",
117    "${code_signature_root_dir}/interfaces/innerkits/code_sign_utils/include",
118  ]
119  configs = [ "${code_signature_root_dir}:common_utils_config" ]
120  external_deps = [
121    "access_token:libaccesstoken_sdk",
122    "access_token:libnativetoken",
123    "access_token:libtoken_setproc",
124    "c_utils:utils",
125    "hilog:libhilog",
126    "ipc:ipc_core",
127    "openssl:libcrypto_shared",
128    "safwk:system_ability_fwk",
129    "samgr:samgr_proxy",
130  ]
131}
132
133ohos_unittest("local_code_sign_utils_unittest") {
134  module_out_path = "security/code_signature"
135  resource_config_file = "resources/ohos_test.xml"
136  sources = [
137    "${code_signature_root_dir}/services/local_code_sign/src/local_sign_key.cpp",
138    "${code_signature_root_dir}/utils/src/cert_utils.cpp",
139    "local_code_sign_utils_test.cpp",
140    "mock/src/hks_api.cpp",
141    "mock/src/hks_api_mock_helper.cpp",
142  ]
143  deps = [ "${code_signature_root_dir}/interfaces/innerkits/code_sign_utils:libcode_sign_utils" ]
144
145  include_dirs = [
146    "mock/include",
147    "utils/include",
148    "${code_signature_root_dir}/services/local_code_sign/include",
149    "${code_signature_root_dir}/services/key_enable/utils/include",
150  ]
151
152  configs = [ "${code_signature_root_dir}:common_utils_config" ]
153  external_deps = [
154    "c_utils:utils",
155    "fsverity-utils:libfsverity_utils",
156    "hilog:libhilog",
157    "huks:libhukssdk",
158    "init:libbegetutil",
159    "openssl:libcrypto_shared",
160  ]
161}
162
163ohos_unittest("sign_and_enforce_unittest") {
164  module_out_path = "security/code_signature"
165  resource_config_file = "resources/ohos_test.xml"
166  sources = [ "sign_and_enforce_test.cpp" ]
167  deps = [
168    "${code_signature_root_dir}/interfaces/innerkits/code_sign_utils:libcode_sign_utils",
169    "${code_signature_root_dir}/interfaces/innerkits/local_code_sign:liblocal_code_sign_sdk",
170  ]
171
172  include_dirs = [
173    "utils/include",
174    "${code_signature_root_dir}/interfaces/innerkits/local_code_sign/include",
175    "${code_signature_root_dir}/services/local_code_sign/include",
176    "${code_signature_root_dir}/interfaces/innerkits/code_sign_utils/include",
177  ]
178  configs = [ "${code_signature_root_dir}:common_utils_config" ]
179  external_deps = [
180    "access_token:libaccesstoken_sdk",
181    "access_token:libnativetoken",
182    "access_token:libtoken_setproc",
183    "c_utils:utils",
184    "hilog:libhilog",
185    "ipc:ipc_core",
186    "openssl:libcrypto_shared",
187    "safwk:system_ability_fwk",
188    "samgr:samgr_proxy",
189  ]
190}
191
192ohos_unittest("multi_thread_local_sign_unittest") {
193  module_out_path = "security/code_signature"
194  resource_config_file = "resources/ohos_test.xml"
195  sources = [ "multi_thread_local_sign_test.cpp" ]
196  deps = [
197    "${code_signature_root_dir}/interfaces/innerkits/code_sign_utils:libcode_sign_utils",
198    "${code_signature_root_dir}/interfaces/innerkits/local_code_sign:liblocal_code_sign_sdk",
199  ]
200
201  include_dirs = [
202    "utils/include",
203    "${code_signature_root_dir}/interfaces/innerkits/local_code_sign/include",
204    "${code_signature_root_dir}/services/local_code_sign/include",
205    "${code_signature_root_dir}/interfaces/innerkits/code_sign_utils/include",
206  ]
207  configs = [ "${code_signature_root_dir}:common_utils_config" ]
208  external_deps = [
209    "access_token:libaccesstoken_sdk",
210    "access_token:libnativetoken",
211    "access_token:libtoken_setproc",
212    "c_utils:utils",
213    "hilog:libhilog",
214    "ipc:ipc_core",
215    "openssl:libcrypto_shared",
216    "safwk:system_ability_fwk",
217    "samgr:samgr_proxy",
218  ]
219}
220
221ohos_rust_static_library("rust_key_enable_lib") {
222  sources = [ "${code_signature_root_dir}/services/key_enable/src/lib.rs" ]
223  deps = [
224    "${code_signature_root_dir}/services/key_enable/utils:libkey_enable_utils",
225    "${rust_openssl_dir}/openssl:lib",
226    "//third_party/rust/crates/cxx:lib",
227  ]
228  external_deps = [
229    "c_utils:utils_rust",
230    "hilog:hilog_rust",
231    "hisysevent:hisysevent_rust",
232    "ylong_json:lib",
233  ]
234  rustenv = []
235  if (build_variant == "root") {
236    rustenv += [ "code_signature_debuggable=on" ]
237  } else {
238    rustenv += [ "code_signature_debuggable=off" ]
239  }
240  if (code_signature_support_oh_release_app) {
241    rustenv += [ "support_openharmony_ca=on" ]
242  } else {
243    rustenv += [ "support_openharmony_ca=off" ]
244  }
245  crate_name = "key_enable"
246  crate_type = "rlib"
247  subsystem_name = "security"
248  part_name = "code_signature"
249}
250
251ohos_rust_unittest("rust_key_enable_unittest") {
252  module_out_path = "security/code_signature"
253  resource_config_file = "resources/ohos_test.xml"
254  crate_root = "./rust_key_enable_test.rs"
255  sources = [ "./rust_key_enable_test.rs" ]
256  deps = [ ":rust_key_enable_lib" ]
257  subsystem_name = "security"
258  part_name = "code_signature"
259}
260
261ohos_unittest("enable_verity_ioctl_unittest") {
262  module_out_path = "security/code_signature"
263  resource_config_file = "resources/ohos_test.xml"
264  sources = [
265    "enable_verity_test.cpp",
266    "utils/src/xpm_common.cpp",
267  ]
268
269  include_dirs = [ "utils/include" ]
270  configs = [
271    "${code_signature_root_dir}:common_utils_config",
272    "${code_signature_root_dir}:common_public_config",
273  ]
274  deps = [
275    ":key_enable_src_set",
276    "${code_signature_root_dir}/interfaces/innerkits/code_sign_attr_utils:libcode_sign_attr_utils",
277    "${selinux_dir}:libselinux",
278  ]
279  external_deps = [
280    "c_utils:utils",
281    "hilog:libhilog",
282  ]
283}
284
285ohos_unittest("jit_code_sign_unittest") {
286  module_out_path = "security/code_signature"
287  include_dirs = [
288    "${code_signature_root_dir}/interfaces/innerkits/jit_code_sign/include",
289  ]
290  sources = [ "jit_code_sign_test.cpp" ]
291  sanitize = {
292    cfi = true
293    cfi_cross_dso = true
294    debug = false
295  }
296  deps = [
297    "${code_signature_root_dir}/interfaces/innerkits/code_sign_attr_utils:libcode_sign_attr_utils",
298    "${code_signature_root_dir}/interfaces/innerkits/jit_code_sign:libjit_code_sign",
299  ]
300  external_deps = [
301    "c_utils:utils",
302    "hilog:libhilog",
303  ]
304  subsystem_name = "security"
305  part_name = "code_signature"
306}
307
308ohos_unittest("key_enable_utils_unittest") {
309  module_out_path = "security/code_signature"
310  sources = [ "key_enable_utils_test.cpp" ]
311  include_dirs =
312      [ "${code_signature_root_dir}/services/key_enable/utils/include" ]
313  deps = [
314    "${code_signature_root_dir}/services/key_enable/utils:libkey_enable_utils",
315  ]
316}
317
318ohos_unittest("cert_chain_verifier_unittest") {
319  module_out_path = "security/code_signature"
320  sources = [
321    "${code_signature_root_dir}/utils/src/cert_utils.cpp",
322    "${code_signature_root_dir}/utils/src/huks_attest_verifier.cpp",
323    "${code_signature_root_dir}/utils/src/openssl_utils.cpp",
324    "cert_chain_verifier_test.cpp",
325  ]
326  include_dirs = [ "utils/include" ]
327  configs = [
328    "${code_signature_root_dir}:common_utils_config",
329    "${code_signature_root_dir}:common_public_config",
330  ]
331  defines = [ "CODE_SIGNATURE_DEBUGGABLE" ]
332  if (code_signature_support_oh_release_app) {
333    defines += [ "CODE_SIGNATURE_OH_ROOT_CA" ]
334  }
335  deps = [
336    "${code_signature_root_dir}/services/key_enable/utils:libkey_enable_utils",
337  ]
338  external_deps = [
339    "access_token:libaccesstoken_sdk",
340    "access_token:libnativetoken",
341    "access_token:libtoken_setproc",
342    "c_utils:utils",
343    "hilog:libhilog",
344    "huks:libhukssdk",
345    "openssl:libcrypto_shared",
346  ]
347}
348
349group("unittest_group") {
350  testonly = true
351  if (!defined(ohos_lite)) {
352    deps = [
353      ":add_cert_path_unittest",
354      ":cert_chain_verifier_unittest",
355      ":code_sign_utils_in_c_unittest",
356      ":code_sign_utils_unittest",
357      ":enable_verity_ioctl_unittest",
358      ":local_code_sign_unittest",
359      ":local_code_sign_utils_unittest",
360      ":multi_thread_local_sign_unittest",
361      ":sign_and_enforce_unittest",
362    ]
363    if (!use_clang_coverage) {
364      deps += [ ":rust_key_enable_unittest" ]
365    }
366    if (code_signature_support_oh_code_sign) {
367      deps += [ ":key_enable_utils_unittest" ]
368    }
369    if (jit_code_sign_enable) {
370      deps += [ ":jit_code_sign_unittest" ]
371    }
372  }
373}
374