• 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("//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