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