• 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/device_auth/deviceauth_env.gni")
15
16group_auth_path = "${services_path}/group_auth"
17authenticators_path = "${services_path}/authenticators"
18protocol_path = "${services_path}/protocol"
19cred_manager_path = "${services_path}/cred_manager"
20data_manager_path = "${services_path}/data_manager"
21privacy_enhancement_path = "${services_path}/privacy_enhancement"
22dev_frameworks_path = "${services_path}/frameworks"
23group_manager_path = "${services_path}/group_manager"
24session_manager_path = "${services_path}/session_manager"
25creds_manager_path = "${services_path}/creds_manager"
26mk_agree_path = "${services_path}/mk_agree"
27
28enable_broadcast = true
29declare_args() {
30  deviceauth_hichain_thread_stack_size = 8192
31}
32deviceauth_defines = []
33
34inc_path = [
35  "${inner_api_path}",
36  "${frameworks_path}/inc",
37  "${cred_manager_path}/inc",
38  "${cred_manager_path}/inc/account_related",
39  "${data_manager_path}/inc",
40  "${privacy_enhancement_path}/inc",
41  "${group_auth_path}/inc",
42  "${group_auth_path}/inc/account_unrelated_group_auth",
43  "${group_auth_path}/inc/account_related_group_auth",
44  "${group_manager_path}/inc",
45  "${group_manager_path}/inc/broadcast_manager",
46  "${group_manager_path}/inc/callback_manager",
47  "${group_manager_path}/inc/channel_manager",
48  "${group_manager_path}/inc/channel_manager/soft_bus_channel",
49  "${dev_frameworks_path}/inc/",
50  "${dev_frameworks_path}/inc/module",
51  "${dev_frameworks_path}/inc/session",
52  "${dev_frameworks_path}/inc/os_account_adapter",
53  "${dev_frameworks_path}/inc/plugin_adapter",
54  "${dev_frameworks_path}/inc/task_manager",
55  "${authenticators_path}/inc/account_related",
56  "${authenticators_path}/inc/account_unrelated",
57  "${authenticators_path}/inc/account_unrelated/iso_task",
58  "${authenticators_path}/inc/account_unrelated/iso_task/iso_protocol_task",
59  "${authenticators_path}/inc/account_unrelated/iso_task/lite_exchange_task",
60  "${authenticators_path}/inc/account_unrelated/pake_task",
61  "${authenticators_path}/inc/account_unrelated/pake_task/pake_v1_task",
62  "${authenticators_path}/inc/account_unrelated/pake_task/pake_v2_task",
63  "${protocol_path}/inc",
64  "${protocol_path}/inc/pake_protocol",
65  "${protocol_path}/inc/pake_protocol/pake_v1_protocol",
66  "${protocol_path}/inc/pake_protocol/pake_v2_protocol",
67  "${protocol_path}/inc/pake_protocol/pake_protocol_dl_common",
68  "${protocol_path}/inc/pake_protocol/pake_protocol_ec_common",
69  "${protocol_path}/inc/iso_protocol",
70  "${session_manager_path}/inc",
71  "${session_manager_path}/inc/session",
72  "${session_manager_path}/inc/session/v1",
73  "${session_manager_path}/inc/session/v1/compatible_bind_sub_session",
74  "${session_manager_path}/inc/session/v1/compatible_auth_sub_session",
75  "${session_manager_path}/inc/session/v2",
76  "${session_manager_path}/inc/session/v2/auth_sub_session",
77  "${session_manager_path}/inc/session/v2/auth_sub_session/protocol_lib",
78  "${session_manager_path}/inc/session/v2/expand_sub_session",
79  "${session_manager_path}/inc/session/v2/expand_sub_session/expand_process_lib",
80  "${creds_manager_path}/inc",
81  "${creds_manager_path}/inc/account_related",
82  "${mk_agree_path}/inc",
83]
84
85deviceauth_common_files = [
86  "${services_path}/device_auth.c",
87  "${group_manager_path}/src/group_manager_common.c",
88  "${group_manager_path}/src/group_manager.c",
89  "${group_manager_path}/src/channel_manager/channel_manager.c",
90  "${group_manager_path}/src/callback_manager/callback_manager.c",
91  "${protocol_path}/src/protocol_common.c",
92  "${protocol_path}/src/iso_protocol/iso_protocol_common.c",
93  "${protocol_path}/src/pake_protocol/pake_common.c",
94  "${protocol_path}/src/pake_protocol/pake_v1_protocol/pake_v1_protocol_common.c",
95  "${protocol_path}/src/pake_protocol/pake_protocol_dl_common/pake_protocol_dl_common.c",
96  "${protocol_path}/src/pake_protocol/pake_protocol_ec_common/pake_protocol_ec_common.c",
97  "${protocol_path}/src/pake_protocol/pake_v2_protocol/pake_v2_protocol_common.c",
98]
99
100dev_frameworks_files = [
101  "${dev_frameworks_path}/src/module/dev_auth_module_manager.c",
102  "${dev_frameworks_path}/src/module/version_util.c",
103  "${dev_frameworks_path}/src/task_manager/task_manager.c",
104]
105
106os_account_adapter_files =
107    [ "${dev_frameworks_path}/src/os_account_adapter/os_account_adapter.cpp" ]
108
109os_account_adapter_lite_files = [ "${dev_frameworks_path}/src/os_account_adapter_mock/os_account_adapter_mock.cpp" ]
110
111permission_adapter_files =
112    [ "${dev_frameworks_path}/src/permission_adapter/permission_adapter.cpp" ]
113
114hiview_adapter_files = [
115  "${dev_frameworks_path}/src/hiview_adapter/hidump_adapter.c",
116  "${dev_frameworks_path}/src/hiview_adapter/hisysevent_adapter.cpp",
117  "${dev_frameworks_path}/src/hiview_adapter/hitrace_adapter.cpp",
118]
119
120group_auth_files =
121    [ "${group_auth_path}/src/group_auth_manager/group_auth_data_operation.c" ]
122
123group_auth_account_unrelated_files = [ "${group_auth_path}/src/group_auth_manager/account_unrelated_group_auth/account_unrelated_group_auth.c" ]
124group_auth_account_unrelated_mock_files = [ "${group_auth_path}/src/group_auth_manager/account_unrelated_group_auth_mock/account_unrelated_group_auth_mock.c" ]
125group_auth_account_related_mock_files = [ "${group_auth_path}/src/group_auth_manager/account_related_group_auth_mock/account_related_group_auth_mock.c" ]
126
127account_related_cred_plugin_mock_files = [ "${cred_manager_path}/src/account_related_mock/account_related_cred_plugin_mock.c" ]
128
129cred_manager_files = [ "${cred_manager_path}/src/cred_manager.c" ]
130
131database_manager_files = [ "${data_manager_path}/src/data_manager.c" ]
132
133privacy_enhancement_files =
134    [ "${privacy_enhancement_path}/src/pseudonym_manager.c" ]
135privacy_enhancement_mock_files =
136    [ "${privacy_enhancement_path}/src/mock/pseudonym_manager_mock.c" ]
137
138mk_agree_files = [
139  "${session_manager_path}/src/session/v2/expand_sub_session/expand_process_lib/mk_agree.c",
140  "${mk_agree_path}/src/key_manager.c",
141  "${mk_agree_path}/src/mk_agree_task.c",
142]
143
144mk_agree_mock_files = [
145  "${mk_agree_path}/src/mock/key_manager_mock.c",
146  "${mk_agree_path}/src/mock/mk_agree_task_mock.c",
147]
148
149group_manager_files = [
150  "${group_manager_path}/src/group_operation/group_operation.c",
151  "${group_manager_path}/src/group_operation/group_operation_common.c",
152]
153
154session_manager_files = [
155  "${session_manager_path}/src/dev_session_mgr.c",
156  "${session_manager_path}/src/session/dev_session_fwk.c",
157]
158
159session_v1_files = [
160  "${session_manager_path}/src/session/v1/compatible_sub_session.c",
161  "${session_manager_path}/src/session/v1/compatible_bind_sub_session/compatible_bind_sub_session.c",
162  "${session_manager_path}/src/session/v1/compatible_bind_sub_session/compatible_bind_sub_session_common.c",
163  "${session_manager_path}/src/session/v1/compatible_bind_sub_session/compatible_bind_sub_session_util.c",
164  "${session_manager_path}/src/session/v1/compatible_auth_sub_session/compatible_auth_sub_session.c",
165  "${session_manager_path}/src/session/v1/compatible_auth_sub_session/compatible_auth_sub_session_common.c",
166  "${session_manager_path}/src/session/v1/compatible_auth_sub_session/compatible_auth_sub_session_util.c",
167]
168
169session_v2_files = [
170  "${session_manager_path}/src/session/v2/dev_session_v2.c",
171  "${session_manager_path}/src/session/v2/dev_session_util.c",
172  "${session_manager_path}/src/session/v2/auth_sub_session/auth_sub_session.c",
173  "${session_manager_path}/src/session/v2/expand_sub_session/expand_sub_session.c",
174]
175session_v2_mock_files =
176    [ "${session_manager_path}/src/session/v2_mock/dev_session_v2_mock.c" ]
177
178iso_protocol_files = [ "${session_manager_path}/src/session/v2/auth_sub_session/protocol_lib/iso_protocol.c" ]
179ec_speke_protocol_files = [ "${session_manager_path}/src/session/v2/auth_sub_session/protocol_lib/ec_speke_protocol.c" ]
180
181auth_code_import_files = [ "${session_manager_path}/src/session/v2/expand_sub_session/expand_process_lib/auth_code_import.c" ]
182pub_key_exchange_files = [ "${session_manager_path}/src/session/v2/expand_sub_session/expand_process_lib/pub_key_exchange.c" ]
183save_trusted_info_files = [ "${session_manager_path}/src/session/v2/expand_sub_session/expand_process_lib/save_trusted_info.c" ]
184
185creds_manager_files = [
186  "${creds_manager_path}/src/creds_manager.c",
187  "${creds_manager_path}/src/creds_operation_utils.c",
188]
189account_related_creds_manager_mock_files = [ "${creds_manager_path}/src/account_related_mock/account_related_creds_manager_mock.c" ]
190
191group_manager_peer_to_peer_files = [ "${group_manager_path}/src/group_operation/peer_to_peer_group/peer_to_peer_group.c" ]
192group_manager_peer_to_peer_mock_files = [ "${group_manager_path}/src/group_operation/peer_to_peer_group_mock/peer_to_peer_group_mock.c" ]
193group_manager_identical_account_mock_files = [ "${group_manager_path}/src/group_operation/identical_account_group_mock/identical_account_group_mock.c" ]
194group_manager_across_account_mock_files = [ "${group_manager_path}/src/group_operation/across_account_group_mock/across_account_group_mock.c" ]
195
196authenticators_p2p_files = [
197  "${authenticators_path}/src/account_unrelated/das_task_common.c",
198  "${authenticators_path}/src/account_unrelated/das_module.c",
199  "${authenticators_path}/src/account_unrelated/das_version_util.c",
200  "${authenticators_path}/src/account_unrelated/das_task_main.c",
201  "${authenticators_path}/src/account_unrelated/pake_task/pake_task_common.c",
202  "${authenticators_path}/src/account_unrelated/pake_task/pake_message_util.c",
203]
204authenticators_p2p_mock_files =
205    [ "${authenticators_path}/src/account_unrelated_mock/das_module_mock.c" ]
206authenticators_account_related_mock_files =
207    [ "${authenticators_path}/src/account_related_mock/account_module_mock.c" ]
208authenticators_p2p_iso_files = [
209  "${authenticators_path}/src/account_unrelated/iso_task/iso_client_task.c",
210  "${authenticators_path}/src/account_unrelated/iso_task/iso_server_task.c",
211  "${authenticators_path}/src/account_unrelated/iso_task/iso_task_common.c",
212  "${authenticators_path}/src/account_unrelated/iso_task/iso_task_main.c",
213  "${authenticators_path}/src/account_unrelated/iso_task/iso_protocol_task/iso_client_protocol_task.c",
214  "${authenticators_path}/src/account_unrelated/iso_task/iso_protocol_task/iso_server_protocol_task.c",
215  "${authenticators_path}/src/account_unrelated/iso_task/lite_exchange_task/das_lite_token_manager.c",
216  "${authenticators_path}/src/account_unrelated/iso_task/lite_exchange_task/iso_client_bind_exchange_task.c",
217  "${authenticators_path}/src/account_unrelated/iso_task/lite_exchange_task/iso_server_bind_exchange_task.c",
218]
219authenticators_p2p_iso_mock_files = [ "${authenticators_path}/src/account_unrelated/iso_task_mock/iso_task_main_mock.c" ]
220authenticators_p2p_pake_files = [
221  "${authenticators_path}/src/account_unrelated/pake_task/pake_v1_task/pake_v1_task_main.c",
222  "${authenticators_path}/src/account_unrelated/pake_task/pake_v1_task/pake_v1_client_task.c",
223  "${authenticators_path}/src/account_unrelated/pake_task/pake_v1_task/pake_v1_server_task.c",
224  "${authenticators_path}/src/account_unrelated/pake_task/pake_v1_task/pake_v1_protocol_task/pake_v1_client_protocol_task.c",
225  "${authenticators_path}/src/account_unrelated/pake_task/pake_v1_task/pake_v1_protocol_task/pake_v1_server_protocol_task.c",
226  "${authenticators_path}/src/account_unrelated/pake_task/pake_v1_task/pake_v1_protocol_task/pake_v1_protocol_task_common.c",
227
228  "${authenticators_path}/src/account_unrelated/pake_task/pake_v2_task_mock/pake_v2_task_main_mock.c",
229]
230authenticators_p2p_pake_mock_files = [
231  "${authenticators_path}/src/account_unrelated/pake_task/pake_v1_task_mock/pake_v1_task_main_mock.c",
232  "${authenticators_path}/src/account_unrelated/pake_task/pake_v2_task_mock/pake_v2_task_main_mock.c",
233]
234
235authenticators_standard_exchange_task_files = [
236  "${authenticators_path}/src/account_unrelated/pake_task/standard_exchange_task/common_standard_bind_exchange.c",
237  "${authenticators_path}/src/account_unrelated/pake_task/standard_exchange_task/standard_client_bind_exchange_task.c",
238  "${authenticators_path}/src/account_unrelated/pake_task/standard_exchange_task/standard_server_bind_exchange_task.c",
239  "${authenticators_path}/src/account_unrelated/pake_task/standard_exchange_task/das_standard_token_manager.c",
240  "${authenticators_path}/src/account_unrelated/pake_task/standard_exchange_task/standard_exchange_message_util.c",
241]
242authenticators_standard_exchange_task_mock_files = [ "${authenticators_path}/src/account_unrelated/pake_task/standard_exchange_task_mock/standard_exchange_task_mock.c" ]
243
244soft_bus_channel_files = [ "${group_manager_path}/src/channel_manager/soft_bus_channel/soft_bus_channel.c" ]
245soft_bus_channel_mock_files = [ "${group_manager_path}/src/channel_manager/soft_bus_channel_mock/soft_bus_channel_mock.c" ]
246
247broadcast_manager_files =
248    [ "${group_manager_path}/src/broadcast_manager/broadcast_manager.c" ]
249broadcast_manager_mock_files = [
250  "${group_manager_path}/src/broadcast_manager_mock/broadcast_manager_mock.c",
251]
252
253deviceauth_files = dev_frameworks_files + deviceauth_common_files +
254                   session_manager_files + creds_manager_files
255
256if (enable_pseudonym == true) {
257  deviceauth_defines += [ "ENABLE_PSEUDONYM" ]
258  deviceauth_files += privacy_enhancement_files
259  deviceauth_files += mk_agree_files
260} else {
261  deviceauth_files += privacy_enhancement_mock_files
262  deviceauth_files += mk_agree_mock_files
263}
264
265if (enable_session_v2 == true) {
266  deviceauth_files += session_v2_files
267  if (enable_account || enable_p2p_bind_lite_protocol ||
268      enable_p2p_auth_lite_protocol) {
269    deviceauth_defines += [ "ENABLE_ISO" ]
270    deviceauth_files += iso_protocol_files
271    deviceauth_defines += [ "ENABLE_AUTH_CODE_IMPORT" ]
272    deviceauth_files += auth_code_import_files
273  }
274  if (enable_account || enable_p2p_bind_standard_protocol ||
275      enable_p2p_auth_standard_protocol) {
276    deviceauth_defines += [ "ENABLE_EC_SPEKE" ]
277    deviceauth_files += ec_speke_protocol_files
278    deviceauth_defines += [ "ENABLE_PUB_KEY_EXCHANGE" ]
279    deviceauth_files += pub_key_exchange_files
280  }
281  deviceauth_defines += [ "ENABLE_SAVE_TRUSTED_INFO" ]
282  deviceauth_files += save_trusted_info_files
283} else {
284  deviceauth_files += session_v2_mock_files
285}
286
287if (enable_session_v1 == true) {
288  deviceauth_files += session_v1_files
289}
290
291if (enable_p2p_pake_dl_prime_len_384 == true) {
292  deviceauth_defines += [ "P2P_PAKE_DL_PRIME_LEN_384" ]
293}
294if (enable_p2p_pake_dl_prime_len_256 == true) {
295  deviceauth_defines += [ "P2P_PAKE_DL_PRIME_LEN_256" ]
296}
297
298deviceauth_files += group_auth_files + group_manager_files +
299                    database_manager_files + cred_manager_files
300
301account_unrelated_deviceauth =
302    enable_p2p_bind_lite_protocol || enable_p2p_auth_lite_protocol ||
303    enable_p2p_bind_standard_protocol || enable_p2p_auth_standard_protocol
304
305if (enable_p2p_bind_lite_protocol) {
306  deviceauth_defines += [ "ENABLE_P2P_BIND_ISO" ]
307}
308
309if (enable_p2p_bind_standard_protocol) {
310  deviceauth_defines += [ "ENABLE_P2P_BIND_EC_SPEKE" ]
311}
312
313if (enable_p2p_auth_lite_protocol) {
314  deviceauth_defines += [ "ENABLE_P2P_AUTH_ISO" ]
315}
316
317if (enable_p2p_auth_standard_protocol) {
318  deviceauth_defines += [ "ENABLE_P2P_AUTH_EC_SPEKE" ]
319}
320
321if (account_unrelated_deviceauth == true) {
322  deviceauth_files +=
323      group_auth_account_unrelated_files + group_manager_peer_to_peer_files
324} else {
325  deviceauth_files += group_auth_account_unrelated_mock_files +
326                      group_manager_peer_to_peer_mock_files
327}
328
329if (account_unrelated_deviceauth == true) {
330  deviceauth_files += authenticators_p2p_files
331} else {
332  deviceauth_files += authenticators_p2p_mock_files
333}
334
335if (enable_p2p_auth_lite_protocol == true) {
336  deviceauth_files += authenticators_p2p_iso_files
337} else {
338  deviceauth_files += authenticators_p2p_iso_mock_files
339}
340
341if (enable_p2p_bind_standard_protocol == true ||
342    enable_p2p_auth_standard_protocol == true) {
343  deviceauth_defines += [ "P2P_PAKE_EC_TYPE" ]
344  deviceauth_files += authenticators_p2p_pake_files
345} else {
346  deviceauth_files += authenticators_p2p_pake_mock_files
347}
348
349if (enable_p2p_auth_standard_protocol == true) {
350  deviceauth_files += authenticators_standard_exchange_task_files
351} else {
352  deviceauth_files += authenticators_standard_exchange_task_mock_files
353}
354
355if (enable_account == true) {
356  import("//base/security/device_auth/services/deviceauth_account.gni")
357  deviceauth_defines += account_related_defines
358  inc_path += account_related_inc_path
359  deviceauth_files += account_related_files
360} else {
361  deviceauth_files += group_auth_account_related_mock_files +
362                      group_manager_identical_account_mock_files +
363                      group_manager_across_account_mock_files +
364                      authenticators_account_related_mock_files +
365                      account_related_cred_plugin_mock_files +
366                      account_related_creds_manager_mock_files
367}
368
369if (enable_soft_bus_channel == true) {
370  deviceauth_files += soft_bus_channel_files
371} else {
372  deviceauth_files += soft_bus_channel_mock_files
373}
374
375if (enable_broadcast == true) {
376  deviceauth_files += broadcast_manager_files
377} else {
378  deviceauth_files += broadcast_manager_mock_files
379}
380
381if (defined(ohos_lite)) {
382  deviceauth_files += os_account_adapter_lite_files
383} else {
384  deviceauth_files += os_account_adapter_files
385}
386
387#build_flags = [ "-Wrestrict" ]
388build_flags = [ "-Werror" ]
389
390if (target_os == "linux") {
391  build_flags += [ "-D__LINUX__" ]
392}
393
394ipc_src_suffix = "cpp"
395ipc_adapt_path = "standard"
396if (defined(ohos_lite)) {
397  ipc_src_suffix = "c"
398  ipc_adapt_path = "lite"
399}
400
401deviceauth_ipc_files = [
402  "${frameworks_path}/src/${ipc_adapt_path}/ipc_adapt.${ipc_src_suffix}",
403  "${frameworks_path}/src/${ipc_adapt_path}/ipc_dev_auth_proxy.${ipc_src_suffix}",
404  "${frameworks_path}/src/${ipc_adapt_path}/ipc_dev_auth_stub.${ipc_src_suffix}",
405  "${frameworks_path}/src/${ipc_adapt_path}/ipc_callback_proxy.${ipc_src_suffix}",
406  "${frameworks_path}/src/${ipc_adapt_path}/ipc_callback_stub.${ipc_src_suffix}",
407]
408