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("//build/ohos.gni") 15import("//third_party/wpa_supplicant/wpa_supplicant-2.9_standard/wpa.gni") 16 17WPA_ROOT_DIR = "//third_party/wpa_supplicant/wpa_supplicant-2.9_standard" 18 19declare_args() { 20 wpa_supplicant_driver_nl80211_hisi = false 21 wpa_supplicant_driver_nl80211 = false 22 wpa_supplicant_ohos_certmgr = true 23} 24 25if (wpa_supplicant_driver_nl80211_hisi) { 26 CONFIG_HISI = "true" 27} else { 28 CONFIG_HISI = "false" 29} 30if (wpa_supplicant_driver_nl80211) { 31 CONFIG_DRIVER = "nl80211" 32} else { 33 CONFIG_DRIVER = "hdf" 34} 35 36CONFIG_OS = "unix" 37CONFIG_ELOOP = "eloop" 38if ("${CONFIG_DRIVER}" == "nl80211") { 39 CONFIG_L2_PACKET = "linux" 40} else { 41 CONFIG_L2_PACKET = "rtos" 42} 43 44CONFIG_MAIN = "main" 45 46config("wpa_warnings") { 47 cflags = [ "-Wno-error=sign-compare" ] 48 ldflags = [ 49 "-flto", 50 "-fsanitize=cfi", 51 "-Wl,-plugin-opt,O1", 52 ] 53} 54 55wpa_client_base_sources = [ 56 "$WPA_ROOT_DIR/src/common/wpa_ctrl.c", 57 "$WPA_ROOT_DIR/src/utils/common.c", 58 "$WPA_ROOT_DIR/src/utils/os_${CONFIG_OS}.c", 59 "$WPA_ROOT_DIR/src/utils/wpa_debug.c", 60] 61 62wpa_client_base_include_dirs = [ 63 "$WPA_ROOT_DIR/src", 64 "$WPA_ROOT_DIR/src/utils", 65 "$WPA_ROOT_DIR/src/drivers", 66 "$WPA_ROOT_DIR/wpa_supplicant", 67 "$WPA_ROOT_DIR/build/include", 68 "//drivers/peripheral/wlan/client/include", 69 "//third_party/bounds_checking_function/include", 70 "//base/hiviewdfxhilog/interfaces/native/innerkits/include", 71 "//base/startup/init/interfaces/innerkits/include/syspara", 72] 73 74wpa_client_base_cflags = [ 75 "-UANDROID", 76 "-fsigned-char", 77 "-DCONFIG_IEEE80211W", 78 "-DCONFIG_NO_VLAN", 79 "-DCONFIG_NO_RADIUS", 80 "-DCONFIG_NO_RANDOM_POOL", 81 "-DCONFIG_SHA256", 82 "-DCONFIG_CRYPTO_INTERNAL", 83 "-DCONFIG_INTERNAL_LIBTOMMATH", 84 "-DCONFIG_INTERNAL_SHA384", 85 "-DCONFIG_INTERNAL_SHA512", 86 "-DCONFIG_CTRL_IFACE", 87 "-DCONFIG_IBSS_RSN", 88 "-DIEEE8021X_EAPOL", 89 "-DCONFIG_BACEND_FILE", 90 "-DCONFIG_NO_CONFIG_BLOBS", 91 "-DUSERSPACE_CLIENT_SUPPORT", 92 "-DCONFIG_DEBUG_FILE", 93 "-DCONFIG_OPEN_HARMONY_PATCH", 94] 95 96ohos_shared_library("wpa_client") { 97 sanitize = { 98 cfi = true 99 integer_overflow = true 100 debug = false 101 blocklist = "./wpa_blocklist.txt" 102 } 103 104 output_name = "wpa_client" 105 sources = wpa_client_base_sources 106 107 include_dirs = wpa_client_base_include_dirs 108 109 cflags = wpa_client_base_cflags 110 if ("${CONFIG_CTRL_IFACE}" == "udp") { 111 cflags += [ "-DCONFIG_CTRL_IFACE_UDP" ] 112 } else { 113 cflags += [ "-DCONFIG_CTRL_IFACE_UNIX" ] 114 } 115 116 external_deps = [ 117 "hilog:libhilog", 118 "init:libbegetutil", 119 ] 120 if ("${CONFIG_DRIVER}" == "nl80211") { 121 include_dirs += [ "$WPA_ROOT_DIR/libnl/include/libnl3" ] 122 cflags += [ 123 "-DCONFIG_DRIVER_NL80211", 124 "-DCONFIG_LIBNL32", 125 ] 126 } else { 127 cflags += [ 128 "-DCONFIG_DRIVER_HDF", 129 "-DCONFIG_OHOS_P2P", 130 ] 131 } 132 configs = [ ":wpa_warnings" ] 133 part_name = "wpa_supplicant-2.9" 134 subsystem_name = "wpa_supplicant-2.9" 135 install_images = [ "system" ] 136} 137 138ohos_shared_library("wpa_client_updater") { 139 sanitize = { 140 cfi = true 141 integer_overflow = true 142 debug = false 143 blocklist = "./wpa_blocklist.txt" 144 } 145 146 output_name = "wpa_client_updater" 147 symlink_target_name = [ "libwpa_client.z.so" ] 148 sources = wpa_client_base_sources 149 150 include_dirs = wpa_client_base_include_dirs 151 152 cflags = wpa_client_base_cflags 153 if ("${CONFIG_CTRL_IFACE}" == "udp") { 154 cflags += [ "-DCONFIG_CTRL_IFACE_UDP" ] 155 } else { 156 cflags += [ "-DCONFIG_CTRL_IFACE_UNIX" ] 157 } 158 159 external_deps = [ 160 "hilog:libhilog", 161 "init:libbegetutil", 162 ] 163 164 if ("${CONFIG_DRIVER}" == "nl80211") { 165 include_dirs += [ "$WPA_ROOT_DIR/libnl/include/libnl3" ] 166 cflags += [ 167 "-DCONFIG_DRIVER_NL80211", 168 "-DCONFIG_LIBNL32", 169 ] 170 } else { 171 cflags += [ 172 "-DCONFIG_DRIVER_HDF", 173 "-DCONFIG_OHOS_P2P", 174 ] 175 } 176 defines = [ "OHOS_EUPDATER" ] 177 configs = [ ":wpa_warnings" ] 178 part_name = "wpa_supplicant-2.9" 179 subsystem_name = "wpa_supplicant-2.9" 180 install_images = [ "updater" ] 181} 182 183wpa_base_sources = [ 184 # wpa & hostapd 185 "$WPA_ROOT_DIR/hostapd/ap_config_file.c", 186 "$WPA_ROOT_DIR/hostapd/ap_ctrl_iface.c", 187 "$WPA_ROOT_DIR/hostapd/ap_eap_register.c", 188 189 # hostapd 190 "$WPA_ROOT_DIR/hostapd/ap_main.c", 191 "$WPA_ROOT_DIR/src/ap/ap_config.c", 192 "$WPA_ROOT_DIR/src/ap/ap_drv_ops.c", 193 "$WPA_ROOT_DIR/src/ap/ap_list.c", 194 "$WPA_ROOT_DIR/src/ap/ap_mlme.c", 195 "$WPA_ROOT_DIR/src/ap/ap_rrm.c", 196 "$WPA_ROOT_DIR/src/ap/authsrv.c", 197 "$WPA_ROOT_DIR/src/ap/beacon.c", 198 "$WPA_ROOT_DIR/src/ap/bss_load.c", 199 "$WPA_ROOT_DIR/src/ap/ctrl_iface_ap.c", 200 "$WPA_ROOT_DIR/src/ap/dfs.c", 201 "$WPA_ROOT_DIR/src/ap/drv_callbacks.c", 202 "$WPA_ROOT_DIR/src/ap/eap_user_db.c", 203 "$WPA_ROOT_DIR/src/ap/hostapd.c", 204 "$WPA_ROOT_DIR/src/ap/hw_features.c", 205 "$WPA_ROOT_DIR/src/ap/ieee802_11.c", 206 "$WPA_ROOT_DIR/src/ap/ieee802_11_auth.c", 207 "$WPA_ROOT_DIR/src/ap/ieee802_11_ht.c", 208 "$WPA_ROOT_DIR/src/ap/ieee802_11_shared.c", 209 "$WPA_ROOT_DIR/src/ap/ieee802_1x.c", 210 "$WPA_ROOT_DIR/src/ap/neighbor_db.c", 211 "$WPA_ROOT_DIR/src/ap/pmksa_cache_auth.c", 212 "$WPA_ROOT_DIR/src/ap/preauth_auth.c", 213 "$WPA_ROOT_DIR/src/ap/sta_info.c", 214 "$WPA_ROOT_DIR/src/ap/tkip_countermeasures.c", 215 "$WPA_ROOT_DIR/src/ap/utils.c", 216 "$WPA_ROOT_DIR/src/ap/wmm.c", 217 "$WPA_ROOT_DIR/src/ap/wpa_auth.c", 218 "$WPA_ROOT_DIR/src/ap/wpa_auth_glue.c", 219 "$WPA_ROOT_DIR/src/ap/wpa_auth_ie.c", 220 "$WPA_ROOT_DIR/src/common/ctrl_iface_common.c", 221 "$WPA_ROOT_DIR/src/common/hw_features_common.c", 222 "$WPA_ROOT_DIR/src/common/ieee802_11_common.c", 223 "$WPA_ROOT_DIR/src/common/wpa_common.c", 224 "$WPA_ROOT_DIR/src/crypto/aes-internal.c", 225 "$WPA_ROOT_DIR/src/crypto/aes-omac1.c", 226 "$WPA_ROOT_DIR/src/crypto/sha1-prf.c", 227 "$WPA_ROOT_DIR/src/crypto/sha256-prf.c", 228 "$WPA_ROOT_DIR/src/drivers/driver_common.c", 229 "$WPA_ROOT_DIR/src/drivers/drivers.c", 230 "$WPA_ROOT_DIR/src/eap_common/eap_common.c", 231 "$WPA_ROOT_DIR/src/eap_peer/eap.c", 232 "$WPA_ROOT_DIR/src/eap_peer/eap_methods.c", 233 "$WPA_ROOT_DIR/src/eap_server/eap_server.c", 234 "$WPA_ROOT_DIR/src/eap_server/eap_server_identity.c", 235 "$WPA_ROOT_DIR/src/eap_server/eap_server_methods.c", 236 "$WPA_ROOT_DIR/src/eapol_auth/eapol_auth_sm.c", 237 "$WPA_ROOT_DIR/src/eapol_supp/eapol_supp_sm.c", 238 "$WPA_ROOT_DIR/src/l2_packet/l2_packet_${CONFIG_L2_PACKET}.c", 239 "$WPA_ROOT_DIR/src/rsn_supp/pmksa_cache.c", 240 "$WPA_ROOT_DIR/src/rsn_supp/preauth.c", 241 "$WPA_ROOT_DIR/src/rsn_supp/wpa.c", 242 "$WPA_ROOT_DIR/src/rsn_supp/wpa_i.h", 243 "$WPA_ROOT_DIR/src/rsn_supp/wpa_ie.c", 244 "$WPA_ROOT_DIR/src/utils/${CONFIG_ELOOP}.c", 245 "$WPA_ROOT_DIR/src/utils/bitfield.c", 246 "$WPA_ROOT_DIR/src/utils/common.c", 247 "$WPA_ROOT_DIR/src/utils/ip_addr.c", 248 "$WPA_ROOT_DIR/src/utils/os_${CONFIG_OS}.c", 249 "$WPA_ROOT_DIR/src/utils/radiotap.c", 250 "$WPA_ROOT_DIR/src/utils/wpa_debug.c", 251 "$WPA_ROOT_DIR/src/utils/wpabuf.c", 252 "$WPA_ROOT_DIR/wpa_supplicant/${CONFIG_MAIN}.c", 253 "$WPA_ROOT_DIR/wpa_supplicant/bss.c", 254 "$WPA_ROOT_DIR/wpa_supplicant/bssid_ignore.c", 255 256 # wpa_supplicant 257 "$WPA_ROOT_DIR/wpa_supplicant/config.c", 258 "$WPA_ROOT_DIR/wpa_supplicant/config_file.c", 259 "$WPA_ROOT_DIR/wpa_supplicant/ctrl_iface.c", 260 "$WPA_ROOT_DIR/wpa_supplicant/ctrl_iface_${CONFIG_CTRL_IFACE}.c", 261 "$WPA_ROOT_DIR/wpa_supplicant/eap_register.c", 262 "$WPA_ROOT_DIR/wpa_supplicant/events.c", 263 "$WPA_ROOT_DIR/wpa_supplicant/ibss_rsn.c", 264 "$WPA_ROOT_DIR/wpa_supplicant/notify.c", 265 "$WPA_ROOT_DIR/wpa_supplicant/op_classes.c", 266 "$WPA_ROOT_DIR/wpa_supplicant/robust_av.c", 267 "$WPA_ROOT_DIR/wpa_supplicant/rrm.c", 268 "$WPA_ROOT_DIR/wpa_supplicant/scan.c", 269 "$WPA_ROOT_DIR/wpa_supplicant/wmm_ac.c", 270 "$WPA_ROOT_DIR/wpa_supplicant/wpa_supplicant.c", 271 "$WPA_ROOT_DIR/wpa_supplicant/wpas_glue.c", 272 273 #sae 274 "$WPA_ROOT_DIR/src/common/sae.c", 275 "$WPA_ROOT_DIR/wpa_supplicant/sme.c", 276 277 #p2p 278 "$WPA_ROOT_DIR/src/ap/p2p_hostapd.c", 279 "$WPA_ROOT_DIR/src/ap/wps_hostapd.c", 280 "$WPA_ROOT_DIR/src/common/dragonfly.c", 281 "$WPA_ROOT_DIR/src/common/gas.c", 282 "$WPA_ROOT_DIR/src/crypto/crypto_openssl.c", 283 "$WPA_ROOT_DIR/src/crypto/dh_groups.c", 284 "$WPA_ROOT_DIR/src/crypto/fips_prf_openssl.c", 285 "$WPA_ROOT_DIR/src/crypto/ms_funcs.c", 286 "$WPA_ROOT_DIR/src/crypto/sha1-tlsprf.c", 287 "$WPA_ROOT_DIR/src/crypto/sha256-kdf.c", 288 "$WPA_ROOT_DIR/src/crypto/tls_openssl.c", 289 "$WPA_ROOT_DIR/src/crypto/tls_openssl_ocsp.c", 290 "$WPA_ROOT_DIR/src/eap_common/chap.c", 291 "$WPA_ROOT_DIR/src/eap_common/eap_peap_common.c", 292 "$WPA_ROOT_DIR/src/eap_common/eap_pwd_common.c", 293 "$WPA_ROOT_DIR/src/eap_common/eap_sim_common.c", 294 "$WPA_ROOT_DIR/src/eap_common/eap_wsc_common.c", 295 "$WPA_ROOT_DIR/src/eap_peer/eap_aka.c", 296 "$WPA_ROOT_DIR/src/eap_peer/eap_gtc.c", 297 "$WPA_ROOT_DIR/src/eap_peer/eap_mschapv2.c", 298 "$WPA_ROOT_DIR/src/eap_peer/eap_peap.c", 299 "$WPA_ROOT_DIR/src/eap_peer/eap_pwd.c", 300 "$WPA_ROOT_DIR/src/eap_peer/eap_sim.c", 301 "$WPA_ROOT_DIR/src/eap_peer/eap_tls.c", 302 "$WPA_ROOT_DIR/src/eap_peer/eap_tls_common.c", 303 "$WPA_ROOT_DIR/src/eap_peer/eap_ttls.c", 304 "$WPA_ROOT_DIR/src/eap_peer/eap_wsc.c", 305 "$WPA_ROOT_DIR/src/eap_peer/mschapv2.c", 306 "$WPA_ROOT_DIR/src/eap_server/eap_server_wsc.c", 307 "$WPA_ROOT_DIR/src/p2p/p2p.c", 308 "$WPA_ROOT_DIR/src/p2p/p2p_build.c", 309 "$WPA_ROOT_DIR/src/p2p/p2p_dev_disc.c", 310 "$WPA_ROOT_DIR/src/p2p/p2p_go_neg.c", 311 "$WPA_ROOT_DIR/src/p2p/p2p_group.c", 312 "$WPA_ROOT_DIR/src/p2p/p2p_invitation.c", 313 "$WPA_ROOT_DIR/src/p2p/p2p_parse.c", 314 "$WPA_ROOT_DIR/src/p2p/p2p_pd.c", 315 "$WPA_ROOT_DIR/src/p2p/p2p_sd.c", 316 "$WPA_ROOT_DIR/src/p2p/p2p_utils.c", 317 "$WPA_ROOT_DIR/src/tls/bignum.c", 318 "$WPA_ROOT_DIR/src/utils/base64.c", 319 "$WPA_ROOT_DIR/src/utils/config.c", 320 "$WPA_ROOT_DIR/src/utils/crc32.c", 321 "$WPA_ROOT_DIR/src/utils/uuid.c", 322 "$WPA_ROOT_DIR/src/wps/wps.c", 323 "$WPA_ROOT_DIR/src/wps/wps_attr_build.c", 324 "$WPA_ROOT_DIR/src/wps/wps_attr_parse.c", 325 "$WPA_ROOT_DIR/src/wps/wps_attr_process.c", 326 "$WPA_ROOT_DIR/src/wps/wps_common.c", 327 "$WPA_ROOT_DIR/src/wps/wps_dev_attr.c", 328 "$WPA_ROOT_DIR/src/wps/wps_enrollee.c", 329 "$WPA_ROOT_DIR/src/wps/wps_registrar.c", 330 "$WPA_ROOT_DIR/wpa_supplicant/ap.c", 331 "$WPA_ROOT_DIR/wpa_supplicant/gas_query.c", 332 "$WPA_ROOT_DIR/wpa_supplicant/offchannel.c", 333 "$WPA_ROOT_DIR/wpa_supplicant/p2p_supplicant.c", 334 "$WPA_ROOT_DIR/wpa_supplicant/p2p_supplicant_sd.c", 335 "$WPA_ROOT_DIR/wpa_supplicant/wps_supplicant.c", 336 "$WPA_ROOT_DIR/wpa_supplicant_lib/wpa_magiclink.c", 337] 338 339wpa_base_include_dirs = [ 340 "$WPA_ROOT_DIR/src", 341 "$WPA_ROOT_DIR/src/utils", 342 "$WPA_ROOT_DIR/src/drivers", 343 "$WPA_ROOT_DIR/wpa_supplicant", 344 "$WPA_ROOT_DIR/build/include", 345 "$WPA_ROOT_DIR/wpa_supplicant_lib", 346 "//third_party/libnl/libnl-3.5.0/include", 347 "//drivers/peripheral/wlan/client/include", 348 "//third_party/bounds_checking_function/include", 349 "//third_party/openssl/include", 350 "$WPA_ROOT_DIR/src/crypto", 351 "$WPA_ROOT_DIR/src/eap_common", 352 "//base/hiviewdfxhilog/interfaces/native/innerkits/include", 353] 354 355ohos_shared_library("wpa") { 356 sanitize = { 357 cfi = true 358 integer_overflow = true 359 debug = false 360 blocklist = "./wpa_blocklist.txt" 361 } 362 output_name = "wpa" 363 sources = wpa_base_sources 364 365 include_dirs = wpa_base_include_dirs 366 367 cflags = [ 368 "-UANDROID", 369 "-fsigned-char", 370 "-DCONFIG_IEEE80211W", 371 "-DCONFIG_NO_VLAN", 372 "-DCONFIG_NO_RADIUS", 373 "-DCONFIG_NO_RANDOM_POOL", 374 "-DCONFIG_SHA256", 375 "-DCONFIG_CRYPTO_INTERNAL", 376 "-DCONFIG_INTERNAL_LIBTOMMATH", 377 "-DCONFIG_INTERNAL_SHA384", 378 "-DCONFIG_INTERNAL_SHA512", 379 "-DCONFIG_CTRL_IFACE", 380 "-DCONFIG_IBSS_RSN", 381 "-DIEEE8021X_EAPOL", 382 "-DUSERSPACE_CLIENT_SUPPORT", 383 "-DCONFIG_BACKEND_FILE", 384 "-DCONFIG_NO_CONFIG_BLOBS", 385 "-DCONFIG_NO_ACCOUNTING", 386 "-DEAP_SERVER_IDENTITY", 387 "-DCONFIG_IEEE80211N", 388 "-DHOSTAPD", 389 "-DNEED_AP_MLME", 390 "-DCONFIG_WPS", 391 "-DCONFIG_AP", 392 "-DCONFIG_P2P", 393 "-DEAP_WSC", 394 "-DEAP_SERVER_WSC", 395 "-DEAP_SERVER", 396 "-DCONFIG_GAS", 397 "-DCONFIG_OFFCHANNEL", 398 "-DCONFIG_MAGICLINK", 399 "-DCONFIG_OPEN_HARMONY_PATCH", 400 "-DEAP_MSCHAPV2", 401 "-DEAP_TLS", 402 "-DEAP_PEAP", 403 "-DEAP_TTLS", 404 "-DEAP_SIM", 405 "-DEAP_PWD", 406 "-DEAP_MSCHAPv2", 407 "-DCONFIG_SHA256", 408 "-DCONFIG_ECC", 409 "-DEAP_AKA", 410 "-DEAP_AKA_PRIME", 411 "-DEAP_TLS_OPENSSL", 412 "-DCONFIG_SAE", 413 "-DCONFIG_SME", 414 "-DCONFIG_WEP", 415 "-DPKCS12_FUNCS", 416 "-DEAP_GTC", 417 ] 418 if ("${CONFIG_CTRL_IFACE}" == "udp") { 419 cflags += [ "-DCONFIG_CTRL_IFACE_UDP" ] 420 } else { 421 cflags += [ "-DCONFIG_CTRL_IFACE_UNIX" ] 422 } 423 424 defines = [ 425 "TLS_DEFAULT_CIPHERS = \"DEFAULT:!EXP:!LOW\"", 426 "OPENSSL_SUPPRESS_DEPRECATED", 427 ] 428 429 deps = [ 430 "//drivers/peripheral/wlan/client:wifi_driver_client", 431 "//third_party/bounds_checking_function:libsec_static", 432 "//third_party/openssl:libcrypto_shared", 433 "//third_party/openssl:libssl_shared", 434 ] 435 external_deps = [ 436 "hilog:libhilog", 437 "init:libbegetutil", 438 ] 439 440 if ("${CONFIG_DRIVER}" == "nl80211") { 441 sources += [ 442 "$WPA_ROOT_DIR/src/ap/ieee802_11_he.c", 443 "$WPA_ROOT_DIR/src/ap/ieee802_11_vht.c", 444 "$WPA_ROOT_DIR/src/drivers/driver_nl80211.c", 445 "$WPA_ROOT_DIR/src/drivers/driver_nl80211_capa.c", 446 "$WPA_ROOT_DIR/src/drivers/driver_nl80211_event.c", 447 "$WPA_ROOT_DIR/src/drivers/driver_nl80211_monitor.c", 448 "$WPA_ROOT_DIR/src/drivers/driver_nl80211_scan.c", 449 "$WPA_ROOT_DIR/src/drivers/linux_ioctl.c", 450 "$WPA_ROOT_DIR/src/drivers/netlink.c", 451 "$WPA_ROOT_DIR/src/drivers/rfkill.c", 452 ] 453 include_dirs += [ 454 "$WPA_ROOT_DIR/libnl/include/libnl3", 455 "$WPA_ROOT_DIR/wpa_supplicant_lib", 456 ] 457 458 cflags += [ 459 "-DCONFIG_DRIVER_NL80211", 460 "-DCONFIG_LIBNL32", 461 "-DCONFIG_LIBNL20", 462 "-DCONFIG_DEBUG_FILE", 463 "-DCONFIG_IEEE80211AC", 464 "-DCONFIG_IEEE80211AX", 465 ] 466 deps += [ "//third_party/libnl:libnl_share" ] 467 } else { 468 sources += [ 469 "$WPA_ROOT_DIR/src/drivers/wpa_hal.c", 470 "$WPA_ROOT_DIR/src/drivers/wpa_hal_event.c", 471 ] 472 cflags += [ 473 "-DCONFIG_DRIVER_HDF", 474 "-DCONFIG_OHOS_P2P", 475 ] 476 } 477 if ("${CONFIG_HISI}" == "true") { 478 sources += [ "$WPA_ROOT_DIR/wpa_supplicant_lib/driver_nl80211_hisi.c" ] 479 cflags += [ "-DCONFIG_DRIVER_NL80211_HISI" ] 480 if (use_musl) { 481 cflags += [ "-DCONFIG_DRIVER_NL80211_HISI_TRUNK" ] 482 } 483 } 484 485 if (wpa_supplicant_ohos_certmgr) { 486 sources += [ "$WPA_ROOT_DIR/wpa_supplicant_lib/wpa_evp_key.c" ] 487 external_deps += [ "certificate_manager:cert_manager_sdk" ] 488 include_dirs += [ 489 "//base/security/certificate_manager/frameworks/cert_manager_standard/main/common/include", 490 "//base/security/certificate_manager/interfaces/innerkits/cert_manager_standard/main/include", 491 "//third_party/openssl", 492 ] 493 defines += [ "CONFIG_OHOS_CERTMGR" ] 494 } 495 496 configs = [ ":wpa_warnings" ] 497 part_name = "wpa_supplicant-2.9" 498 subsystem_name = "wpa_supplicant-2.9" 499} 500 501ohos_shared_library("wpa_updater") { 502 sanitize = { 503 cfi = true 504 integer_overflow = true 505 debug = false 506 blocklist = "./wpa_blocklist.txt" 507 } 508 output_name = "wpa_updater" 509 sources = wpa_base_sources 510 511 include_dirs = wpa_base_include_dirs 512 513 cflags = [ 514 "-UANDROID", 515 "-fsigned-char", 516 "-DCONFIG_IEEE80211W", 517 "-DCONFIG_NO_VLAN", 518 "-DCONFIG_NO_RADIUS", 519 "-DCONFIG_NO_RANDOM_POOL", 520 "-DCONFIG_SHA256", 521 "-DCONFIG_CRYPTO_INTERNAL", 522 "-DCONFIG_INTERNAL_LIBTOMMATH", 523 "-DCONFIG_INTERNAL_SHA384", 524 "-DCONFIG_INTERNAL_SHA512", 525 "-DCONFIG_CTRL_IFACE", 526 "-DCONFIG_IBSS_RSN", 527 "-DIEEE8021X_EAPOL", 528 "-DUSERSPACE_CLIENT_SUPPORT", 529 "-DCONFIG_BACKEND_FILE", 530 "-DCONFIG_NO_CONFIG_BLOBS", 531 "-DCONFIG_NO_ACCOUNTING", 532 "-DEAP_SERVER_IDENTITY", 533 "-DCONFIG_IEEE80211N", 534 "-DHOSTAPD", 535 "-DNEED_AP_MLME", 536 "-DCONFIG_WPS", 537 "-DCONFIG_AP", 538 "-DCONFIG_P2P", 539 "-DEAP_WSC", 540 "-DEAP_SERVER_WSC", 541 "-DEAP_SERVER", 542 "-DCONFIG_GAS", 543 "-DCONFIG_OFFCHANNEL", 544 "-DCONFIG_MAGICLINK", 545 "-DCONFIG_OPEN_HARMONY_PATCH", 546 "-DEAP_MSCHAPV2", 547 "-DEAP_TLS", 548 "-DEAP_PEAP", 549 "-DEAP_TTLS", 550 "-DEAP_SIM", 551 "-DEAP_PWD", 552 "-DEAP_MSCHAPv2", 553 "-DCONFIG_SHA256", 554 "-DCONFIG_ECC", 555 "-DEAP_AKA", 556 "-DEAP_AKA_PRIME", 557 "-DEAP_TLS_OPENSSL", 558 "-DCONFIG_SAE", 559 "-DCONFIG_SME", 560 "-DCONFIG_WEP", 561 "-DPKCS12_FUNCS", 562 "-DEAP_GTC", 563 ] 564 if ("${CONFIG_CTRL_IFACE}" == "udp") { 565 cflags += [ "-DCONFIG_CTRL_IFACE_UDP" ] 566 } else { 567 cflags += [ "-DCONFIG_CTRL_IFACE_UNIX" ] 568 } 569 570 defines = [ 571 "TLS_DEFAULT_CIPHERS = \"DEFAULT:!EXP:!LOW\"", 572 "OPENSSL_SUPPRESS_DEPRECATED", 573 ] 574 575 deps = [ 576 "//drivers/peripheral/wlan/client:wifi_driver_client", 577 "//third_party/bounds_checking_function:libsec_static", 578 "//third_party/openssl:libcrypto_shared", 579 "//third_party/openssl:libssl_shared", 580 ] 581 582 external_deps = [ 583 "hilog:libhilog", 584 "init:libbegetutil", 585 ] 586 587 if ("${CONFIG_DRIVER}" == "nl80211") { 588 sources += [ 589 "$WPA_ROOT_DIR/src/ap/ieee802_11_he.c", 590 "$WPA_ROOT_DIR/src/ap/ieee802_11_vht.c", 591 "$WPA_ROOT_DIR/src/drivers/driver_nl80211.c", 592 "$WPA_ROOT_DIR/src/drivers/driver_nl80211_capa.c", 593 "$WPA_ROOT_DIR/src/drivers/driver_nl80211_event.c", 594 "$WPA_ROOT_DIR/src/drivers/driver_nl80211_monitor.c", 595 "$WPA_ROOT_DIR/src/drivers/driver_nl80211_scan.c", 596 "$WPA_ROOT_DIR/src/drivers/linux_ioctl.c", 597 "$WPA_ROOT_DIR/src/drivers/netlink.c", 598 "$WPA_ROOT_DIR/src/drivers/rfkill.c", 599 ] 600 include_dirs += [ 601 "$WPA_ROOT_DIR/libnl/include/libnl3", 602 "$WPA_ROOT_DIR/wpa_supplicant_lib", 603 ] 604 605 cflags += [ 606 "-DCONFIG_DRIVER_NL80211", 607 "-DCONFIG_LIBNL32", 608 "-DCONFIG_LIBNL20", 609 "-DCONFIG_DEBUG_FILE", 610 "-DCONFIG_IEEE80211AC", 611 "-DCONFIG_IEEE80211AX", 612 ] 613 deps += [ "//third_party/libnl:libnl_share" ] 614 } else { 615 sources += [ 616 "$WPA_ROOT_DIR/src/drivers/wpa_hal.c", 617 "$WPA_ROOT_DIR/src/drivers/wpa_hal_event.c", 618 ] 619 cflags += [ 620 "-DCONFIG_DRIVER_HDF", 621 "-DCONFIG_OHOS_P2P", 622 ] 623 } 624 if ("${CONFIG_HISI}" == "true") { 625 sources += [ "$WPA_ROOT_DIR/wpa_supplicant_lib/driver_nl80211_hisi.c" ] 626 cflags += [ "-DCONFIG_DRIVER_NL80211_HISI" ] 627 if (use_musl) { 628 cflags += [ "-DCONFIG_DRIVER_NL80211_HISI_TRUNK" ] 629 } 630 } 631 symlink_target_name = [ "libwpa.z.so" ] 632 configs = [ ":wpa_warnings" ] 633 part_name = "wpa_supplicant-2.9" 634 subsystem_name = "wpa_supplicant-2.9" 635 install_images = [ "updater" ] 636} 637 638ohos_executable("wpa_cli") { 639 sources = [ 640 "$WPA_ROOT_DIR/src/common/cli.c", 641 "$WPA_ROOT_DIR/src/common/wpa_ctrl.c", 642 "$WPA_ROOT_DIR/src/utils/${CONFIG_ELOOP}.c", 643 "$WPA_ROOT_DIR/src/utils/common.c", 644 "$WPA_ROOT_DIR/src/utils/edit_simple.c", 645 "$WPA_ROOT_DIR/src/utils/os_${CONFIG_OS}.c", 646 "$WPA_ROOT_DIR/src/utils/wpa_debug.c", 647 "$WPA_ROOT_DIR/wpa_supplicant/wpa_cli.c", 648 ] 649 650 include_dirs = [ 651 "$WPA_ROOT_DIR/src", 652 "$WPA_ROOT_DIR/src/utils", 653 "$WPA_ROOT_DIR/src/drivers", 654 "$WPA_ROOT_DIR/wpa_supplicant", 655 "$WPA_ROOT_DIR/build/include", 656 "//base/hiviewdfxhilog/interfaces/native/innerkits/include", 657 "//base/startup/init/interfaces/innerkits/include/syspara", 658 ] 659 660 cflags = [ 661 "-UANDROID", 662 "-fsigned-char", 663 "-DCONFIG_IEEE80211W", 664 "-DCONFIG_NO_VLAN", 665 "-DCONFIG_NO_RADIUS", 666 "-DCONFIG_NO_RANDOM_POOL", 667 "-DCONFIG_SHA256", 668 "-DCONFIG_CRYPTO_INTERNAL", 669 "-DCONFIG_INTERNAL_LIBTOMMATH", 670 "-DCONFIG_INTERNAL_SHA384", 671 "-DCONFIG_INTERNAL_SHA512", 672 "-DCONFIG_CTRL_IFACE", 673 "-DCONFIG_IBSS_RSN", 674 "-DIEEE8021X_EAPOL", 675 "-DUSERSPACE_CLIENT_SUPPORT", 676 "-DCONFIG_BACKEND_FILE", 677 "-DCONFIG_NO_CONFIG_BLOBS", 678 "-DCONFIG_WPS", 679 "-DCONFIG_AP", 680 "-DCONFIG_P2P", 681 "-DEAP_WSC", 682 "-DEAP_SERVER_WSC", 683 "-DEAP_SERVER", 684 "-DCONFIG_GAS", 685 "-DCONFIG_OFFCHANNEL", 686 "-DCONFIG_MAGICLINK", 687 "-DCONFIG_DEBUG_FILE", 688 "-DCONFIG_OPEN_HARMONY_PATCH", 689 ] 690 if ("${CONFIG_CTRL_IFACE}" == "udp") { 691 cflags += [ "-DCONFIG_CTRL_IFACE_UDP" ] 692 } else { 693 cflags += [ "-DCONFIG_CTRL_IFACE_UNIX" ] 694 } 695 696 if ("${CONFIG_DRIVER}" == "nl80211") { 697 include_dirs += [ "$WPA_ROOT_DIR/libnl/include/libnl3" ] 698 cflags += [ 699 "-DCONFIG_DRIVER_NL80211", 700 "-DCONFIG_LIBNL32", 701 ] 702 } else { 703 cflags += [ 704 "-DCONFIG_DRIVER_HDF", 705 "-DCONFIG_OHOS_P2P", 706 ] 707 } 708 709 external_deps = [ 710 "hilog:libhilog", 711 "init:libbegetutil", 712 ] 713 714 configs = [ ":wpa_warnings" ] 715 part_name = "wpa_supplicant-2.9" 716 subsystem_name = "wpa_supplicant-2.9" 717} 718 719ohos_executable("hostapd_cli") { 720 sources = [ 721 "$WPA_ROOT_DIR/hostapd/hostapd_cli.c", 722 "$WPA_ROOT_DIR/src/common/cli.c", 723 "$WPA_ROOT_DIR/src/common/wpa_ctrl.c", 724 "$WPA_ROOT_DIR/src/utils/${CONFIG_ELOOP}.c", 725 "$WPA_ROOT_DIR/src/utils/common.c", 726 "$WPA_ROOT_DIR/src/utils/edit_simple.c", 727 "$WPA_ROOT_DIR/src/utils/os_${CONFIG_OS}.c", 728 "$WPA_ROOT_DIR/src/utils/wpa_debug.c", 729 ] 730 731 include_dirs = [ 732 "$WPA_ROOT_DIR/src", 733 "$WPA_ROOT_DIR/src/utils", 734 "$WPA_ROOT_DIR/src/drivers", 735 "$WPA_ROOT_DIR/wpa_supplicant", 736 "$WPA_ROOT_DIR/build/include", 737 "$WPA_ROOT_DIR/libnl/include/libnl3", 738 "//base/hiviewdfxhilog/interfaces/native/innerkits/include", 739 "//base/startup/init/interfaces/innerkits/include/syspara", 740 ] 741 742 cflags = [ 743 "-UANDROID", 744 "-fsigned-char", 745 "-DCONFIG_IEEE80211W", 746 "-DCONFIG_NO_VLAN", 747 "-DCONFIG_NO_RADIUS", 748 "-DCONFIG_NO_RANDOM_POOL", 749 "-DCONFIG_SHA256", 750 "-DCONFIG_CRYPTO_INTERNAL", 751 "-DCONFIG_INTERNAL_LIBTOMMATH", 752 "-DCONFIG_INTERNAL_SHA384", 753 "-DCONFIG_INTERNAL_SHA512", 754 "-DCONFIG_CTRL_IFACE", 755 "-DCONFIG_IBSS_RSN", 756 "-DIEEE8021X_EAPOL", 757 "-DUSERSPACE_CLIENT_SUPPORT", 758 "-DCONFIG_BACKEND_FILE", 759 "-DCONFIG_NO_CONFIG_BLOBS", 760 "-DCONFIG_NO_ACCOUNTING", 761 "-DEAP_SERVER_IDENTITY", 762 "-DCONFIG_IEEE80211N", 763 "-DHOSTAPD", 764 "-DNEED_AP_MLME", 765 "-DCONFIG_WPS", 766 "-DCONFIG_AP", 767 "-DCONFIG_P2P", 768 "-DEAP_WSC", 769 "-DEAP_SERVER_WSC", 770 "-DEAP_SERVER", 771 "-DCONFIG_GAS", 772 "-DCONFIG_OFFCHANNEL", 773 "-DCONFIG_DEBUG_FILE", 774 "-DCONFIG_OPEN_HARMONY_PATCH", 775 ] 776 if ("${CONFIG_CTRL_IFACE}" == "udp") { 777 cflags += [ "-DCONFIG_CTRL_IFACE_UDP" ] 778 } else { 779 cflags += [ "-DCONFIG_CTRL_IFACE_UNIX" ] 780 } 781 782 external_deps = [ 783 "hilog:libhilog", 784 "init:libbegetutil", 785 ] 786 if ("${CONFIG_DRIVER}" == "nl80211") { 787 cflags += [ 788 "-DCONFIG_DRIVER_NL80211", 789 "-DCONFIG_LIBNL32", 790 ] 791 } else { 792 cflags += [ 793 "-DCONFIG_DRIVER_HDF", 794 "-DCONFIG_OHOS_P2P", 795 ] 796 } 797 configs = [ ":wpa_warnings" ] 798 part_name = "wpa_supplicant-2.9" 799 subsystem_name = "wpa_supplicant-2.9" 800} 801 802ohos_executable("wpa_supplicant") { 803 sources = [ "$WPA_ROOT_DIR/wpa_test/wpa_sample.c" ] 804 805 include_dirs = [ "$WPA_ROOT_DIR/build/include" ] 806 807 deps = [ "//third_party/wpa_supplicant/wpa_supplicant-2.9_standard:wpa" ] 808 configs = [ ":wpa_warnings" ] 809 cflags = [ 810 "-DCONFIG_DEBUG_FILE", 811 "-DCONFIG_OPEN_HARMONY_PATCH", 812 ] 813 part_name = "wpa_supplicant-2.9" 814 subsystem_name = "wpa_supplicant-2.9" 815} 816 817ohos_executable("hostapd") { 818 sources = [ "$WPA_ROOT_DIR/hostapd_test/hostapd_sample.c" ] 819 820 include_dirs = [ "$WPA_ROOT_DIR/build/include" ] 821 822 deps = [ "//third_party/wpa_supplicant/wpa_supplicant-2.9_standard:wpa" ] 823 824 configs = [ ":wpa_warnings" ] 825 cflags = [ 826 "-DCONFIG_DEBUG_FILE", 827 "-DCONFIG_OPEN_HARMONY_PATCH", 828 ] 829 part_name = "wpa_supplicant-2.9" 830 subsystem_name = "wpa_supplicant-2.9" 831} 832