1# Copyright (C) 2021-2022 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" 19data_manager_path = "${services_path}/data_manager" 20dev_frameworks_path = "${services_path}/frameworks" 21group_manager_path = "${services_path}/group_manager" 22 23enable_broadcast = true 24declare_args() { 25 deviceauth_hichain_thread_stack_size = 8192 26} 27deviceauth_defines = [] 28 29inc_path = [ 30 "${innerkits_path}", 31 "${frameworks_path}/inc", 32 "${data_manager_path}/inc", 33 "${group_auth_path}/inc", 34 "${group_auth_path}/inc/account_unrelated_group_auth", 35 "${group_auth_path}/inc/account_related_group_auth", 36 "${group_auth_path}/inc/session", 37 "${group_auth_path}/inc/session/auth_session", 38 "${group_auth_path}/inc/session/auth_session_lite", 39 "${group_manager_path}/inc", 40 "${group_manager_path}/inc/broadcast_manager", 41 "${group_manager_path}/inc/callback_manager", 42 "${group_manager_path}/inc/channel_manager", 43 "${group_manager_path}/inc/channel_manager/soft_bus_channel", 44 "${group_manager_path}/inc/session", 45 "${group_manager_path}/inc/session/bind_session", 46 "${dev_frameworks_path}/inc/", 47 "${dev_frameworks_path}/inc/module", 48 "${dev_frameworks_path}/inc/session", 49 "${dev_frameworks_path}/inc/os_account_adapter", 50 "${dev_frameworks_path}/inc/task_manager", 51 "${authenticators_path}/inc/account_related", 52 "${authenticators_path}/inc/account_unrelated", 53 "${authenticators_path}/inc/account_unrelated/iso_task", 54 "${authenticators_path}/inc/account_unrelated/iso_task/iso_protocol_task", 55 "${authenticators_path}/inc/account_unrelated/iso_task/lite_exchange_task", 56 "${authenticators_path}/inc/account_unrelated/pake_task", 57 "${authenticators_path}/inc/account_unrelated/pake_task/pake_v1_task", 58 "${authenticators_path}/inc/account_unrelated/pake_task/pake_v2_task", 59 "${protocol_path}/inc", 60 "${protocol_path}/inc/pake_protocol", 61 "${protocol_path}/inc/pake_protocol/pake_v1_protocol", 62 "${protocol_path}/inc/pake_protocol/pake_v2_protocol", 63 "${protocol_path}/inc/pake_protocol/pake_protocol_dl_common", 64 "${protocol_path}/inc/pake_protocol/pake_protocol_ec_common", 65 "${protocol_path}/inc/iso_protocol", 66] 67 68deviceauth_common_files = [ 69 "${services_path}/device_auth.c", 70 "${group_auth_path}/src/session/auth_session_common_util.c", 71 "${group_manager_path}/src/group_manager_common.c", 72 "${group_manager_path}/src/group_manager.c", 73 "${group_manager_path}/src/session/bind_session_common_util.c", 74 "${group_manager_path}/src/channel_manager/channel_manager.c", 75 "${group_manager_path}/src/callback_manager/callback_manager.c", 76 "${protocol_path}/src/protocol_common.c", 77 "${protocol_path}/src/iso_protocol/iso_protocol_common.c", 78 "${protocol_path}/src/pake_protocol/pake_common.c", 79 "${protocol_path}/src/pake_protocol/pake_v1_protocol/pake_v1_protocol_common.c", 80 "${protocol_path}/src/pake_protocol/pake_protocol_dl_common/pake_protocol_dl_common.c", 81 "${protocol_path}/src/pake_protocol/pake_protocol_ec_common/pake_protocol_ec_common.c", 82 "${protocol_path}/src/pake_protocol/pake_v2_protocol/pake_v2_protocol_common.c", 83] 84 85dev_frameworks_files = [ 86 "${dev_frameworks_path}/src/session/session_common.c", 87 "${dev_frameworks_path}/src/session/session_manager.c", 88 "${dev_frameworks_path}/src/module/dev_auth_module_manager.c", 89 "${dev_frameworks_path}/src/module/version_util.c", 90 "${dev_frameworks_path}/src/task_manager/task_manager.c", 91] 92 93os_account_adapter_files = 94 [ "${dev_frameworks_path}/src/os_account_adapter/os_account_adapter.cpp" ] 95 96os_account_adapter_lite_files = [ "${dev_frameworks_path}/src/os_account_adapter_mock/os_account_adapter_mock.cpp" ] 97 98permission_adapter_files = 99 [ "${dev_frameworks_path}/src/permission_adapter/permission_adapter.cpp" ] 100 101hiview_adapter_files = [ 102 "${dev_frameworks_path}/src/hiview_adapter/hidump_adapter.c", 103 "${dev_frameworks_path}/src/hiview_adapter/hisysevent_adapter.cpp", 104 "${dev_frameworks_path}/src/hiview_adapter/dev_auth_hievent.c", 105 "${dev_frameworks_path}/src/hiview_adapter/hitrace_adapter.cpp", 106] 107 108hiview_adapter_mock_files = 109 [ "${dev_frameworks_path}/src/hiview_adapter/hiview_mock.c" ] 110 111group_auth_files = [ 112 "${group_auth_path}/src/group_auth_manager/group_auth_data_operation.c", 113 "${group_auth_path}/src/group_auth_manager/group_auth_manager.c", 114 "${group_auth_path}/src/session/auth_session/auth_session_client.c", 115 "${group_auth_path}/src/session/auth_session/auth_session_common.c", 116 "${group_auth_path}/src/session/auth_session/auth_session_server.c", 117 "${group_auth_path}/src/session/auth_session/auth_session_util.c", 118] 119 120group_auth_account_unrelated_files = [ "${group_auth_path}/src/group_auth_manager/account_unrelated_group_auth/account_unrelated_group_auth.c" ] 121group_auth_account_unrelated_mock_files = [ "${group_auth_path}/src/group_auth_manager/account_unrelated_group_auth_mock/account_unrelated_group_auth_mock.c" ] 122group_auth_account_related_mock_files = [ "${group_auth_path}/src/group_auth_manager/account_related_group_auth_mock/account_related_group_auth_mock.c" ] 123 124database_manager_files = [ "${data_manager_path}/src/data_manager.c" ] 125 126group_manager_files = [ 127 "${group_manager_path}/src/group_operation/group_operation.c", 128 "${group_manager_path}/src/group_operation/group_operation_common.c", 129 "${group_manager_path}/src/session/bind_session/bind_session_client.c", 130 "${group_manager_path}/src/session/bind_session/bind_session_common.c", 131 "${group_manager_path}/src/session/bind_session/bind_session_server.c", 132] 133 134group_manager_peer_to_peer_files = [ "${group_manager_path}/src/group_operation/peer_to_peer_group/peer_to_peer_group.c" ] 135group_manager_peer_to_peer_mock_files = [ "${group_manager_path}/src/group_operation/peer_to_peer_group_mock/peer_to_peer_group_mock.c" ] 136group_manager_identical_account_mock_files = [ "${group_manager_path}/src/group_operation/identical_account_group_mock/identical_account_group_mock.c" ] 137group_manager_across_account_mock_files = [ "${group_manager_path}/src/group_operation/across_account_group_mock/across_account_group_mock.c" ] 138 139authenticators_p2p_files = [ 140 "${authenticators_path}/src/account_unrelated/das_task_common.c", 141 "${authenticators_path}/src/account_unrelated/das_module.c", 142 "${authenticators_path}/src/account_unrelated/das_version_util.c", 143 "${authenticators_path}/src/account_unrelated/das_task_main.c", 144 "${authenticators_path}/src/account_unrelated/pake_task/pake_task_common.c", 145 "${authenticators_path}/src/account_unrelated/pake_task/pake_message_util.c", 146] 147authenticators_p2p_mock_files = 148 [ "${authenticators_path}/src/account_unrelated_mock/das_module_mock.c" ] 149authenticators_account_related_mock_files = 150 [ "${authenticators_path}/src/account_related_mock/account_module_mock.c" ] 151authenticators_p2p_iso_files = [ 152 "${authenticators_path}/src/account_unrelated/iso_task/iso_client_task.c", 153 "${authenticators_path}/src/account_unrelated/iso_task/iso_server_task.c", 154 "${authenticators_path}/src/account_unrelated/iso_task/iso_task_common.c", 155 "${authenticators_path}/src/account_unrelated/iso_task/iso_task_main.c", 156 "${authenticators_path}/src/account_unrelated/iso_task/iso_protocol_task/iso_client_protocol_task.c", 157 "${authenticators_path}/src/account_unrelated/iso_task/iso_protocol_task/iso_server_protocol_task.c", 158 "${authenticators_path}/src/account_unrelated/iso_task/lite_exchange_task/das_lite_token_manager.c", 159 "${authenticators_path}/src/account_unrelated/iso_task/lite_exchange_task/iso_client_bind_exchange_task.c", 160 "${authenticators_path}/src/account_unrelated/iso_task/lite_exchange_task/iso_client_unbind_exchange_task.c", 161 "${authenticators_path}/src/account_unrelated/iso_task/lite_exchange_task/iso_server_bind_exchange_task.c", 162 "${authenticators_path}/src/account_unrelated/iso_task/lite_exchange_task/iso_server_unbind_exchange_task.c", 163] 164authenticators_p2p_iso_mock_files = [ "${authenticators_path}/src/account_unrelated/iso_task_mock/iso_task_main_mock.c" ] 165authenticators_p2p_pake_files = [ 166 "${authenticators_path}/src/account_unrelated/pake_task/pake_v1_task/pake_v1_task_main.c", 167 "${authenticators_path}/src/account_unrelated/pake_task/pake_v1_task/pake_v1_client_task.c", 168 "${authenticators_path}/src/account_unrelated/pake_task/pake_v1_task/pake_v1_server_task.c", 169 "${authenticators_path}/src/account_unrelated/pake_task/pake_v1_task/pake_v1_protocol_task/pake_v1_client_protocol_task.c", 170 "${authenticators_path}/src/account_unrelated/pake_task/pake_v1_task/pake_v1_protocol_task/pake_v1_server_protocol_task.c", 171 "${authenticators_path}/src/account_unrelated/pake_task/pake_v1_task/pake_v1_protocol_task/pake_v1_protocol_task_common.c", 172 173 "${authenticators_path}/src/account_unrelated/pake_task/pake_v2_task_mock/pake_v2_task_main_mock.c", 174] 175authenticators_p2p_pake_mock_files = [ 176 "${authenticators_path}/src/account_unrelated/pake_task/pake_v1_task_mock/pake_v1_task_main_mock.c", 177 "${authenticators_path}/src/account_unrelated/pake_task/pake_v2_task_mock/pake_v2_task_main_mock.c", 178] 179 180authenticators_standard_exchange_task_files = [ 181 "${authenticators_path}/src/account_unrelated/pake_task/standard_exchange_task/common_standard_bind_exchange.c", 182 "${authenticators_path}/src/account_unrelated/pake_task/standard_exchange_task/common_standard_unbind_exchange.c", 183 "${authenticators_path}/src/account_unrelated/pake_task/standard_exchange_task/standard_client_bind_exchange_task.c", 184 "${authenticators_path}/src/account_unrelated/pake_task/standard_exchange_task/standard_client_unbind_exchange_task.c", 185 "${authenticators_path}/src/account_unrelated/pake_task/standard_exchange_task/standard_server_bind_exchange_task.c", 186 "${authenticators_path}/src/account_unrelated/pake_task/standard_exchange_task/standard_server_unbind_exchange_task.c", 187 "${authenticators_path}/src/account_unrelated/pake_task/standard_exchange_task/das_standard_token_manager.c", 188 "${authenticators_path}/src/account_unrelated/pake_task/standard_exchange_task/standard_exchange_message_util.c", 189] 190authenticators_standard_exchange_task_mock_files = [ "${authenticators_path}/src/account_unrelated/pake_task/standard_exchange_task_mock/standard_exchange_task_mock.c" ] 191 192soft_bus_channel_files = [ "${group_manager_path}/src/channel_manager/soft_bus_channel/soft_bus_channel.c" ] 193soft_bus_channel_mock_files = [ "${group_manager_path}/src/channel_manager/soft_bus_channel_mock/soft_bus_channel_mock.c" ] 194 195broadcast_manager_files = 196 [ "${group_manager_path}/src/broadcast_manager/broadcast_manager.c" ] 197broadcast_manager_mock_files = 198 [ "${group_manager_path}/src/broadcast_manager/broadcast_manager_mock.c" ] 199 200deviceauth_files = dev_frameworks_files + deviceauth_common_files 201 202if (enable_p2p_pake_dl_prime_len_384 == true) { 203 deviceauth_defines += [ "P2P_PAKE_DL_PRIME_LEN_384" ] 204} 205if (enable_p2p_pake_dl_prime_len_256 == true) { 206 deviceauth_defines += [ "P2P_PAKE_DL_PRIME_LEN_256" ] 207} 208 209deviceauth_files += 210 group_auth_files + group_manager_files + database_manager_files 211 212account_unrelated_deviceauth = 213 enable_p2p_bind_lite_protocol || enable_p2p_auth_lite_protocol || 214 enable_p2p_bind_standard_protocol || enable_p2p_auth_standard_protocol 215 216if (account_unrelated_deviceauth == true) { 217 deviceauth_files += 218 group_auth_account_unrelated_files + group_manager_peer_to_peer_files 219} else { 220 deviceauth_files += group_auth_account_unrelated_mock_files + 221 group_manager_peer_to_peer_mock_files 222} 223 224if (account_unrelated_deviceauth == true) { 225 deviceauth_files += authenticators_p2p_files 226} else { 227 deviceauth_files += authenticators_p2p_mock_files 228} 229 230if (enable_p2p_auth_lite_protocol == true) { 231 deviceauth_files += authenticators_p2p_iso_files 232} else { 233 deviceauth_files += authenticators_p2p_iso_mock_files 234} 235 236if (enable_p2p_bind_standard_protocol == true || 237 enable_p2p_auth_standard_protocol == true) { 238 deviceauth_defines += [ "P2P_PAKE_EC_TYPE" ] 239 deviceauth_files += authenticators_p2p_pake_files 240} else { 241 deviceauth_files += authenticators_p2p_pake_mock_files 242} 243 244if (enable_p2p_auth_standard_protocol == true) { 245 deviceauth_files += authenticators_standard_exchange_task_files 246} else { 247 deviceauth_files += authenticators_standard_exchange_task_mock_files 248} 249 250if (enable_account == true) { 251 import("//base/security/device_auth/services/deviceauth_account.gni") 252 deviceauth_defines += account_related_defines 253 inc_path += account_related_inc_path 254 deviceauth_files += account_related_files 255} else { 256 deviceauth_files += group_auth_account_related_mock_files + 257 group_manager_identical_account_mock_files + 258 group_manager_across_account_mock_files + 259 authenticators_account_related_mock_files 260} 261 262if (enable_soft_bus_channel == true) { 263 deviceauth_files += soft_bus_channel_files 264} else { 265 deviceauth_files += soft_bus_channel_mock_files 266} 267 268if (enable_broadcast == true) { 269 deviceauth_files += broadcast_manager_files 270} else { 271 deviceauth_files += broadcast_manager_mock_files 272} 273 274if (defined(ohos_lite)) { 275 deviceauth_files += os_account_adapter_lite_files 276} else { 277 deviceauth_files += os_account_adapter_files 278} 279 280#build_flags = [ "-Wrestrict" ] 281build_flags = [ "-Werror" ] 282 283if (target_os == "linux") { 284 build_flags += [ "-D__LINUX__" ] 285} 286 287ipc_src_suffix = "cpp" 288ipc_adapt_path = "standard" 289if (defined(ohos_lite)) { 290 ipc_src_suffix = "c" 291 ipc_adapt_path = "lite" 292} 293 294deviceauth_ipc_files = [ 295 "${frameworks_path}/src/${ipc_adapt_path}/ipc_adapt.${ipc_src_suffix}", 296 "${frameworks_path}/src/${ipc_adapt_path}/ipc_dev_auth_proxy.${ipc_src_suffix}", 297 "${frameworks_path}/src/${ipc_adapt_path}/ipc_dev_auth_stub.${ipc_src_suffix}", 298 "${frameworks_path}/src/${ipc_adapt_path}/ipc_callback_proxy.${ipc_src_suffix}", 299 "${frameworks_path}/src/${ipc_adapt_path}/ipc_callback_stub.${ipc_src_suffix}", 300] 301