1#
2# Copyright (c) 2023 Nordic Semiconductor ASA
3#
4# SPDX-License-Identifier: Apache-2.0
5#
6
7if(CONFIG_WIFI_NM_WPA_SUPPLICANT)
8
9zephyr_interface_library_named(hostap)
10
11set(HOSTAP_BASE ${ZEPHYR_HOSTAP_MODULE_DIR})
12set(WIFI_NM_WPA_SUPPLICANT_BASE ${HOSTAP_BASE}/wpa_supplicant)
13set(HOSTAP_SRC_BASE ${HOSTAP_BASE}/src)
14set(WIFI_NM_HOSTAPD_BASE ${HOSTAP_BASE}/hostapd)
15
16set(CMAKE_EXE_LINKER_FLAGS "--specs=nosys.specs -lnosys")
17set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -DMISSING_SYSCALL_NAMES")
18
19zephyr_include_directories(
20  src/
21  ${HOSTAP_BASE}/
22  ${WIFI_NM_WPA_SUPPLICANT_BASE}/
23  ${HOSTAP_SRC_BASE}/
24  ${HOSTAP_SRC_BASE}/common/
25  ${HOSTAP_SRC_BASE}/eap_common
26  ${HOSTAP_SRC_BASE}/eap_server
27  ${HOSTAP_SRC_BASE}/radius
28  ${HOSTAP_SRC_BASE}/crypto/
29  ${HOSTAP_SRC_BASE}/ap/
30  ${HOSTAP_SRC_BASE}/drivers/
31  ${HOSTAP_SRC_BASE}/rsn_supp
32)
33
34target_include_directories(hostap INTERFACE
35  ${HOSTAP_SRC_BASE}/utils/
36)
37
38zephyr_library_compile_definitions(
39  TLS_DEFAULT_CIPHERS=\""DEFAULT:!EXP:!LOW"\"
40  CONFIG_SME
41  CONFIG_NO_CONFIG_WRITE
42  CONFIG_CTRL_IFACE
43  CONFIG_NO_RANDOM_POOL
44  CONFIG_SHA256
45  CONFIG_SHA384
46  CONFIG_SHA512
47  CONFIG_CTRL_IFACE_ZEPHYR
48  CONFIG_SUITEB192
49  CONFIG_SUITEB
50)
51
52
53zephyr_library_compile_definitions_ifdef(CONFIG_WIFI_NM_WPA_SUPPLICANT_CRYPTO_NONE
54  CONFIG_NO_PBKDF2
55)
56
57zephyr_library_compile_definitions_ifdef(CONFIG_WIFI_NM_WPA_SUPPLICANT_NO_DEBUG
58  CONFIG_NO_STDOUT_DEBUG
59)
60
61zephyr_library_compile_definitions_ifndef(CONFIG_WIFI_NM_WPA_SUPPLICANT_ROBUST_AV
62  CONFIG_NO_ROBUST_AV
63)
64
65zephyr_library_compile_definitions_ifndef(CONFIG_WIFI_NM_WPA_SUPPLICANT_WMM_AC
66CONFIG_NO_WMM_AC
67)
68
69zephyr_library_compile_definitions_ifndef(CONFIG_WIFI_NM_WPA_SUPPLICANT_RRM
70CONFIG_NO_RRM
71)
72
73zephyr_library_compile_definitions_ifdef(CONFIG_WIFI_NM_WPA_SUPPLICANT_MBO
74  CONFIG_MBO
75)
76
77zephyr_library_compile_definitions_ifdef(CONFIG_WIFI_NM_WPA_SUPPLICANT_WNM
78  CONFIG_WNM
79)
80
81zephyr_library_include_directories(
82  ${CMAKE_CURRENT_SOURCE_DIR}/src
83  ${HOSTAP_BASE}/
84  ${HOSTAP_SRC_BASE}/utils
85  ${HOSTAP_SRC_BASE}/drivers
86  ${HOSTAP_BASE}/src
87  ${ZEPHYR_BASE}/include
88  ${ZEPHYR_BASE}/include/net
89  )
90
91zephyr_library_compile_definitions_ifdef(CONFIG_WIFI_NM_WPA_SUPPLICANT_NO_DEBUG
92  CONFIG_NO_STDOUT_DEBUG
93)
94
95zephyr_library_sources(
96  ${HOSTAP_SRC_BASE}/common/wpa_common.c
97  ${HOSTAP_SRC_BASE}/common/ieee802_11_common.c
98  ${HOSTAP_SRC_BASE}/common/hw_features_common.c
99  ${HOSTAP_SRC_BASE}/common/wpa_ctrl.c
100  ${HOSTAP_SRC_BASE}/common/cli.c
101
102  ${HOSTAP_SRC_BASE}/drivers/driver_common.c
103  ${HOSTAP_SRC_BASE}/drivers/drivers.c
104  ${HOSTAP_SRC_BASE}/utils/crc32.c
105  ${HOSTAP_SRC_BASE}/utils/base64.c
106  ${HOSTAP_SRC_BASE}/utils/common.c
107  ${HOSTAP_SRC_BASE}/utils/wpabuf.c
108  ${HOSTAP_SRC_BASE}/utils/bitfield.c
109  ${HOSTAP_SRC_BASE}/utils/eloop.c
110  ${HOSTAP_SRC_BASE}/utils/os_zephyr.c
111  ${HOSTAP_SRC_BASE}/utils/wpa_debug_zephyr.c
112  ${HOSTAP_SRC_BASE}/l2_packet/l2_packet_zephyr.c
113  ${HOSTAP_SRC_BASE}/drivers/driver_zephyr.c
114
115  ${WIFI_NM_WPA_SUPPLICANT_BASE}/config.c
116  ${WIFI_NM_WPA_SUPPLICANT_BASE}/notify.c
117  ${WIFI_NM_WPA_SUPPLICANT_BASE}/eap_register.c
118  ${WIFI_NM_WPA_SUPPLICANT_BASE}/config_none.c
119  ${WIFI_NM_WPA_SUPPLICANT_BASE}/bssid_ignore.c
120  ${WIFI_NM_WPA_SUPPLICANT_BASE}/wpas_glue.c
121  ${WIFI_NM_WPA_SUPPLICANT_BASE}/scan.c
122  ${WIFI_NM_WPA_SUPPLICANT_BASE}/ctrl_iface.c
123
124  ${WIFI_NM_WPA_SUPPLICANT_BASE}/bss.c
125  ${WIFI_NM_WPA_SUPPLICANT_BASE}/sme.c
126  ${WIFI_NM_WPA_SUPPLICANT_BASE}/wpa_supplicant.c
127  ${WIFI_NM_WPA_SUPPLICANT_BASE}/events.c
128  ${WIFI_NM_WPA_SUPPLICANT_BASE}/wpa_cli_cmds.c
129  ${WIFI_NM_WPA_SUPPLICANT_BASE}/ctrl_iface_zephyr.c
130  ${WIFI_NM_WPA_SUPPLICANT_BASE}/wpa_cli_zephyr.c
131
132  ${HOSTAP_SRC_BASE}/rsn_supp/pmksa_cache.c
133  ${HOSTAP_SRC_BASE}/common/ptksa_cache.c
134
135  # Zephyr specific files (glue code)
136  src/supp_main.c
137  src/supp_api.c
138  src/supp_events.c
139)
140
141# Advanced features
142zephyr_library_sources_ifdef(CONFIG_WIFI_NM_WPA_SUPPLICANT_RRM
143  ${WIFI_NM_WPA_SUPPLICANT_BASE}/op_classes.c
144  ${WIFI_NM_WPA_SUPPLICANT_BASE}/rrm.c
145)
146zephyr_library_sources_ifdef(CONFIG_WIFI_NM_WPA_SUPPLICANT_WMM_AC
147  ${WIFI_NM_WPA_SUPPLICANT_BASE}/wmm_ac.c
148)
149zephyr_library_sources_ifdef(CONFIG_WIFI_NM_WPA_SUPPLICANT_ROBUST_AV
150  ${WIFI_NM_WPA_SUPPLICANT_BASE}/robust_av.c
151)
152zephyr_library_sources_ifdef(CONFIG_WIFI_NM_WPA_SUPPLICANT_MBO
153  ${WIFI_NM_WPA_SUPPLICANT_BASE}/mbo.c
154)
155zephyr_library_sources_ifdef(CONFIG_WIFI_NM_WPA_SUPPLICANT_WNM
156  ${WIFI_NM_WPA_SUPPLICANT_BASE}/wnm_sta.c
157)
158
159zephyr_library_sources_ifdef(CONFIG_WPA_CLI
160  src/wpa_cli.c
161)
162
163zephyr_library_sources_ifdef(CONFIG_IEEE80211R
164  ${HOSTAP_SRC_BASE}/rsn_supp/wpa_ft.c
165  ${HOSTAP_SRC_BASE}/ap/wpa_auth_ft.c
166)
167
168if(CONFIG_WIFI_NM_WPA_SUPPLICANT_AP OR CONFIG_WIFI_NM_HOSTAPD_AP)
169zephyr_library_sources(
170  ${WIFI_NM_WPA_SUPPLICANT_BASE}/ap.c
171  ${HOSTAP_SRC_BASE}/ap/ap_config.c
172  ${HOSTAP_SRC_BASE}/ap/ap_drv_ops.c
173  ${HOSTAP_SRC_BASE}/ap/ap_list.c
174  ${HOSTAP_SRC_BASE}/ap/ap_mlme.c
175  ${HOSTAP_SRC_BASE}/ap/authsrv.c
176  ${HOSTAP_SRC_BASE}/ap/beacon.c
177  ${HOSTAP_SRC_BASE}/ap/bss_load.c
178  ${HOSTAP_SRC_BASE}/ap/dfs.c
179  ${HOSTAP_SRC_BASE}/ap/drv_callbacks.c
180  ${HOSTAP_SRC_BASE}/ap/ctrl_iface_ap.c
181  ${HOSTAP_SRC_BASE}/ap/eap_user_db.c
182  ${HOSTAP_SRC_BASE}/ap/hostapd.c
183  ${HOSTAP_SRC_BASE}/ap/hw_features.c
184  ${HOSTAP_SRC_BASE}/ap/ieee802_11_auth.c
185  ${HOSTAP_SRC_BASE}/ap/ieee802_11.c
186  ${HOSTAP_SRC_BASE}/ap/comeback_token.c
187  ${HOSTAP_SRC_BASE}/ap/ieee802_11_ht.c
188  ${HOSTAP_SRC_BASE}/ap/ieee802_11_shared.c
189  ${HOSTAP_SRC_BASE}/ap/ieee802_11_vht.c
190  ${HOSTAP_SRC_BASE}/ap/ieee802_1x.c
191  ${HOSTAP_SRC_BASE}/ap/neighbor_db.c
192  ${HOSTAP_SRC_BASE}/ap/p2p_hostapd.c
193  ${HOSTAP_SRC_BASE}/ap/pmksa_cache_auth.c
194  ${HOSTAP_SRC_BASE}/ap/preauth_auth.c
195  ${HOSTAP_SRC_BASE}/ap/rrm.c
196  ${HOSTAP_SRC_BASE}/ap/sta_info.c
197  ${HOSTAP_SRC_BASE}/ap/tkip_countermeasures.c
198  ${HOSTAP_SRC_BASE}/ap/utils.c
199  ${HOSTAP_SRC_BASE}/ap/wmm.c
200
201  ${HOSTAP_SRC_BASE}/ap/wpa_auth.c
202  ${HOSTAP_SRC_BASE}/ap/wpa_auth_ie.c
203  ${HOSTAP_SRC_BASE}/ap/wpa_auth_ft.c
204  ${HOSTAP_SRC_BASE}/ap/wpa_auth_glue.c
205
206  ${HOSTAP_SRC_BASE}/eap_common/eap_common.c
207  ${HOSTAP_SRC_BASE}/eap_server/eap_server.c
208  ${HOSTAP_SRC_BASE}/eap_server/eap_server_identity.c
209  ${HOSTAP_SRC_BASE}/eap_server/eap_server_methods.c
210  ${HOSTAP_SRC_BASE}/eapol_auth/eapol_auth_sm.c
211  ${HOSTAP_SRC_BASE}/ap/ctrl_iface_ap.c
212  ${HOSTAP_SRC_BASE}/utils/crc32.c
213  ${HOSTAP_SRC_BASE}/utils/ip_addr.c
214)
215
216if (CONFIG_WIFI_NM_WPA_SUPPLICANT_MBO)
217  zephyr_library_sources(${HOSTAP_SRC_BASE}/ap/mbo_ap.c)
218endif()
219
220zephyr_library_sources_ifdef(CONFIG_WIFI_NM_WPA_SUPPLICANT_11AX
221  ${HOSTAP_SRC_BASE}/ap/ieee802_11_he.c
222)
223
224zephyr_library_compile_definitions(
225  CONFIG_AP
226  CONFIG_NO_RADIUS
227  CONFIG_NO_VLAN
228  CONFIG_NO_ACCOUNTING
229  NEED_AP_MLME
230  CONFIG_IEEE80211AC
231  EAP_SERVER
232  EAP_SERVER_IDENTITY
233)
234
235zephyr_library_compile_definitions_ifdef(CONFIG_WIFI_NM_WPA_SUPPLICANT_11AX
236  CONFIG_IEEE80211AX
237)
238endif()
239
240zephyr_include_directories_ifdef(CONFIG_WIFI_NM_HOSTAPD_AP
241  ${WIFI_NM_HOSTAPD_BASE}/
242)
243
244zephyr_library_sources_ifdef(CONFIG_WIFI_NM_HOSTAPD_AP
245  ${HOSTAP_SRC_BASE}/ap/acs.c
246  ${WIFI_NM_HOSTAPD_BASE}/config_file.c
247  ${WIFI_NM_HOSTAPD_BASE}/ctrl_iface.c
248  ${WIFI_NM_HOSTAPD_BASE}/ctrl_iface_zephyr.c
249  ${WIFI_NM_HOSTAPD_BASE}/eap_register.c
250  ${WIFI_NM_HOSTAPD_BASE}/hostapd_cli_cmds.c
251  ${WIFI_NM_HOSTAPD_BASE}/hostapd_cli_zephyr.c
252)
253
254zephyr_library_compile_definitions_ifdef(CONFIG_WIFI_NM_HOSTAPD_AP
255  HOSTAPD
256  CONFIG_ACS
257)
258
259zephyr_library_sources_ifdef(CONFIG_WIFI_NM_WPA_SUPPLICANT_CRYPTO_NONE
260  ${HOSTAP_SRC_BASE}/crypto/crypto_none.c
261
262  # FIXME: why do we need these when crypto is not selected?
263  ${HOSTAP_SRC_BASE}/crypto/aes-wrap.c
264  ${HOSTAP_SRC_BASE}/crypto/aes-unwrap.c
265  ${HOSTAP_SRC_BASE}/crypto/aes-internal.c
266  ${HOSTAP_SRC_BASE}/crypto/aes-internal-enc.c
267  ${HOSTAP_SRC_BASE}/crypto/aes-internal-dec.c
268  ${HOSTAP_SRC_BASE}/crypto/aes-omac1.c
269  ${HOSTAP_SRC_BASE}/crypto/md5.c
270  ${HOSTAP_SRC_BASE}/crypto/md5-internal.c
271  ${HOSTAP_SRC_BASE}/crypto/sha1.c
272  ${HOSTAP_SRC_BASE}/crypto/sha1-internal.c
273  ${HOSTAP_SRC_BASE}/crypto/sha1-pbkdf2.c
274  ${HOSTAP_SRC_BASE}/crypto/sha1-prf.c
275  ${HOSTAP_SRC_BASE}/crypto/sha256.c
276  ${HOSTAP_SRC_BASE}/crypto/sha256-internal.c
277  ${HOSTAP_SRC_BASE}/crypto/sha256-prf.c
278  ${HOSTAP_SRC_BASE}/crypto/sha384.c
279  ${HOSTAP_SRC_BASE}/crypto/sha384-internal.c
280  ${HOSTAP_SRC_BASE}/crypto/sha384-prf.c
281  ${HOSTAP_SRC_BASE}/crypto/sha512.c
282  ${HOSTAP_SRC_BASE}/crypto/sha512-internal.c
283  ${HOSTAP_SRC_BASE}/crypto/rc4.c
284)
285
286zephyr_library_compile_definitions_ifdef(CONFIG_WIFI_NM_WPA_SUPPLICANT_CRYPTO_NONE
287  CONFIG_NO_WPA
288  CONFIG_CRYPTO_INTERNAL
289)
290
291zephyr_library_compile_definitions_ifdef(CONFIG_WIFI_NM_WPA_SUPPLICANT_WEP
292  CONFIG_WEP
293)
294
295zephyr_library_sources_ifndef(CONFIG_WIFI_NM_WPA_SUPPLICANT_CRYPTO_ENTERPRISE
296  ${HOSTAP_SRC_BASE}/crypto/tls_none.c
297)
298
299zephyr_library_sources_ifndef(CONFIG_WIFI_NM_WPA_SUPPLICANT_CRYPTO_NONE
300  ${HOSTAP_SRC_BASE}/common/wpa_common.c
301  ${HOSTAP_SRC_BASE}/rsn_supp/wpa.c
302  ${HOSTAP_SRC_BASE}/rsn_supp/preauth.c
303  ${HOSTAP_SRC_BASE}/rsn_supp/wpa_ie.c
304)
305
306zephyr_library_sources_ifdef(CONFIG_WIFI_NM_WPA_SUPPLICANT_WPA3
307  ${HOSTAP_SRC_BASE}/common/sae.c
308  ${HOSTAP_SRC_BASE}/common/dragonfly.c
309
310  ${HOSTAP_SRC_BASE}/crypto/dh_groups.c
311)
312
313zephyr_library_compile_definitions_ifdef(CONFIG_WIFI_NM_WPA_SUPPLICANT_WPA3
314  CONFIG_SAE
315  CONFIG_ECC
316)
317
318zephyr_library_include_directories_ifndef(CONFIG_WIFI_NM_WPA_SUPPLICANT_CRYPTO_NONE
319  ${CMAKE_SOURCE_DIR}
320)
321
322zephyr_library_sources_ifdef(CONFIG_WIFI_NM_WPA_SUPPLICANT_P2P
323  ${WIFI_NM_WPA_SUPPLICANT_BASE}/p2p_supplicant.c
324  ${WIFI_NM_WPA_SUPPLICANT_BASE}/p2p_supplicant_sd.c
325  ${HOSTAP_SRC_BASE}/p2p/p2p.c
326  ${HOSTAP_SRC_BASE}/p2p/p2p_utils.c
327  ${HOSTAP_SRC_BASE}/p2p/p2p_parse.c
328  ${HOSTAP_SRC_BASE}/p2p/p2p_build.c
329  ${HOSTAP_SRC_BASE}/p2p/p2p_go_neg.c
330  ${HOSTAP_SRC_BASE}/p2p/p2p_sd.c
331  ${HOSTAP_SRC_BASE}/p2p/p2p_pd.c
332  ${HOSTAP_SRC_BASE}/p2p/p2p_invitation.c
333  ${HOSTAP_SRC_BASE}/p2p/p2p_dev_disc.c
334  ${HOSTAP_SRC_BASE}/p2p/p2p_group.c
335  ${HOSTAP_SRC_BASE}/ap/p2p_hostapd.c
336  ${HOSTAP_SRC_BASE}/common/gas.c
337  ${WIFI_NM_WPA_SUPPLICANT_BASE}/gas_query.c
338  ${WIFI_NM_WPA_SUPPLICANT_BASE}/offchannel.c
339)
340zephyr_library_sources_ifdef(CONFIG_WIFI_NM_WPA_SUPPLICANT_WPS
341  ${WIFI_NM_WPA_SUPPLICANT_BASE}/wps_supplicant.c
342  ${HOSTAP_SRC_BASE}/utils/uuid.c
343  ${HOSTAP_SRC_BASE}/eap_peer/eap_wsc.c
344  ${HOSTAP_SRC_BASE}/eap_common/eap_wsc_common.c
345  ${HOSTAP_SRC_BASE}/wps/wps.c
346  ${HOSTAP_SRC_BASE}/ap/wps_hostapd.c
347  ${HOSTAP_SRC_BASE}/wps/wps_common.c
348  ${HOSTAP_SRC_BASE}/wps/wps_attr_parse.c
349  ${HOSTAP_SRC_BASE}/wps/wps_attr_build.c
350  ${HOSTAP_SRC_BASE}/wps/wps_attr_process.c
351  ${HOSTAP_SRC_BASE}/wps/wps_dev_attr.c
352  ${HOSTAP_SRC_BASE}/wps/wps_enrollee.c
353  ${HOSTAP_SRC_BASE}/wps/wps_registrar.c
354  ${HOSTAP_SRC_BASE}/crypto/dh_groups.c
355)
356
357if(NOT CONFIG_WIFI_NM_WPA_SUPPLICANT_CRYPTO_ALT)
358# dh_group5 is only needed if we are not using mbedtls, as mbedtls provides
359# its own definition
360zephyr_library_sources_ifdef(CONFIG_WIFI_NM_WPA_SUPPLICANT_WPS
361  ${HOSTAP_SRC_BASE}/crypto/dh_group5.c
362)
363endif()
364
365zephyr_library_compile_definitions_ifdef(CONFIG_WIFI_NM_WPA_SUPPLICANT_P2P
366  CONFIG_P2P
367  CONFIG_GAS
368  CONFIG_OFFCHANNEL
369)
370
371zephyr_library_compile_definitions_ifdef(CONFIG_WIFI_NM_WPA_SUPPLICANT_WPS
372  CONFIG_WPS
373  EAP_WSC
374)
375
376zephyr_library_sources_ifdef(CONFIG_WIFI_NM_HOSTAPD_WPS
377  ${HOSTAP_SRC_BASE}/eap_server/eap_server_wsc.c
378)
379
380zephyr_library_compile_definitions_ifdef(CONFIG_WIFI_NM_HOSTAPD_WPS
381  EAP_SERVER_WSC
382)
383
384zephyr_library_sources_ifdef(CONFIG_WIFI_NM_WPA_SUPPLICANT_CRYPTO_ENTERPRISE
385  ${HOSTAP_SRC_BASE}/eap_common/eap_common.c
386  ${HOSTAP_SRC_BASE}/eap_peer/eap_tls_common.c
387
388)
389
390zephyr_library_compile_definitions_ifdef(CONFIG_WIFI_NM_WPA_SUPPLICANT_CRYPTO_ENTERPRISE
391  IEEE8021X_EAPOL
392  EAP_IKEv2
393)
394
395zephyr_library_sources_ifdef(CONFIG_EAP_TLS
396  ${HOSTAP_SRC_BASE}/eap_peer/eap_tls.c
397)
398
399zephyr_library_compile_definitions_ifdef(CONFIG_EAP_TLS
400  EAP_TLS
401)
402
403zephyr_library_sources_ifdef(CONFIG_EAP_TTLS
404  ${HOSTAP_SRC_BASE}/eap_peer/eap_ttls.c
405)
406
407zephyr_library_compile_definitions_ifdef(CONFIG_EAP_TTLS
408  EAP_TTLS
409)
410
411zephyr_library_sources_ifdef(CONFIG_EAP_PEAP
412  ${HOSTAP_SRC_BASE}/eap_peer/eap_peap.c
413  ${HOSTAP_SRC_BASE}/eap_common/eap_peap_common.c
414)
415
416zephyr_library_compile_definitions_ifdef(CONFIG_EAP_PEAP
417  EAP_PEAP
418)
419
420zephyr_library_sources_ifdef(CONFIG_EAP_MD5
421  ${HOSTAP_SRC_BASE}/eap_peer/eap_md5.c
422)
423
424zephyr_library_compile_definitions_ifdef(CONFIG_EAP_MD5
425  EAP_MD5
426)
427
428zephyr_library_sources_ifdef(CONFIG_EAP_GTC
429  ${HOSTAP_SRC_BASE}/eap_peer/eap_gtc.c
430)
431
432zephyr_library_compile_definitions_ifdef(CONFIG_EAP_GTC
433  EAP_GTC
434)
435
436zephyr_library_sources_ifdef(CONFIG_EAP_MSCHAPV2
437  ${HOSTAP_SRC_BASE}/eap_peer/eap_mschapv2.c
438  ${HOSTAP_SRC_BASE}/eap_peer/mschapv2.c
439)
440
441zephyr_library_compile_definitions_ifdef(CONFIG_EAP_MSCHAPV2
442  EAP_MSCHAPv2
443)
444
445if(CONFIG_EAP_TTLS OR CONFIG_EAP_MSCHAPV2 OR CONFIG_EAP_MD5)
446  zephyr_library_sources(${HOSTAP_SRC_BASE}/eap_common/chap.c)
447endif()
448
449zephyr_library_sources_ifdef(CONFIG_EAP_LEAP
450  ${HOSTAP_SRC_BASE}/eap_peer/eap_leap.c
451)
452
453zephyr_library_compile_definitions_ifdef(CONFIG_EAP_LEAP
454  EAP_LEAP
455)
456
457zephyr_library_sources_ifdef(CONFIG_EAP_PSK
458  ${HOSTAP_SRC_BASE}/eap_peer/eap_psk.c
459  ${HOSTAP_SRC_BASE}/eap_common/eap_psk_common.c
460)
461
462zephyr_library_compile_definitions_ifdef(CONFIG_EAP_PSK
463  EAP_PSK
464)
465
466zephyr_library_sources_ifdef(CONFIG_EAP_PAX
467  ${HOSTAP_SRC_BASE}/eap_peer/eap_pax.c
468  ${HOSTAP_SRC_BASE}/eap_common/eap_pax_common.c
469)
470
471zephyr_library_compile_definitions_ifdef(CONFIG_EAP_PAX
472  EAP_PAX
473)
474
475zephyr_library_sources_ifdef(CONFIG_EAP_SAKE
476  ${HOSTAP_SRC_BASE}/eap_peer/eap_sake.c
477  ${HOSTAP_SRC_BASE}/eap_common/eap_sake_common.c
478)
479
480zephyr_library_compile_definitions_ifdef(CONFIG_EAP_SAKE
481  EAP_SAKE
482)
483
484zephyr_library_sources_ifdef(CONFIG_EAP_GPSK
485  ${HOSTAP_SRC_BASE}/eap_peer/eap_gpsk.c
486  ${HOSTAP_SRC_BASE}/eap_common/eap_gpsk_common.c
487)
488
489zephyr_library_compile_definitions_ifdef(CONFIG_EAP_GPSK
490  EAP_GPSK
491)
492
493zephyr_library_sources_ifdef(CONFIG_EAP_PWD
494  ${HOSTAP_SRC_BASE}/eap_peer/eap_pwd.c
495  ${HOSTAP_SRC_BASE}/eap_common/eap_pwd_common.c
496)
497
498zephyr_library_compile_definitions_ifdef(CONFIG_EAP_PWD
499  EAP_PWD
500)
501
502zephyr_library_sources_ifdef(CONFIG_EAP_EKE
503  ${HOSTAP_SRC_BASE}/eap_peer/eap_eke.c
504  ${HOSTAP_SRC_BASE}/eap_common/eap_eke_common.c
505)
506
507zephyr_library_compile_definitions_ifdef(CONFIG_EAP_EKE
508  EAP_EKE
509)
510
511zephyr_library_sources_ifdef(CONFIG_EAP_IKEV2
512  ${HOSTAP_SRC_BASE}/eap_peer/eap_ikev2.c
513  ${HOSTAP_SRC_BASE}/eap_peer/ikev2.c
514  ${HOSTAP_SRC_BASE}/eap_common/eap_ikev2_common.c
515  ${HOSTAP_SRC_BASE}/eap_common/ikev2_common.c
516)
517
518zephyr_library_compile_definitions_ifdef(CONFIG_EAP_IKEV2
519  EAP_IKEV2
520)
521
522if (CONFIG_EAP_SIM OR CONFIG_EAP_AKA)
523  zephyr_library_sources(${HOSTAP_SRC_BASE}/eap_common/eap_sim_common.c)
524endif()
525
526zephyr_library_sources_ifdef(CONFIG_EAP_SIM
527  ${HOSTAP_SRC_BASE}/eap_peer/eap_sim.c
528)
529
530zephyr_library_compile_definitions_ifdef(CONFIG_EAP_SIM
531  EAP_SIM
532)
533
534zephyr_library_sources_ifdef(CONFIG_EAP_AKA
535  ${HOSTAP_SRC_BASE}/eap_peer/eap_aka.c
536)
537
538zephyr_library_compile_definitions_ifdef(CONFIG_EAP_AKA
539  EAP_AKA
540)
541
542# Needs TLS1.3 and SESSION_TICKETS
543zephyr_library_sources_ifdef(CONFIG_EAP_FAST
544  ${HOSTAP_SRC_BASE}/eap_peer/eap_fast.c
545  ${HOSTAP_SRC_BASE}/eap_peer/eap_fast_pac.c
546  ${HOSTAP_SRC_BASE}/eap_common/eap_fast_common.c
547)
548
549zephyr_library_compile_definitions_ifdef(CONFIG_EAP_FAST
550  EAP_FAST
551)
552
553# Needs TLS1.3 and SESSION_TICKETS
554zephyr_library_sources_ifdef(CONFIG_EAP_FAST
555  ${HOSTAP_SRC_BASE}/eap_peer/eap_fast.c
556  ${HOSTAP_SRC_BASE}/eap_peer/eap_fast_pac.c
557  ${HOSTAP_SRC_BASE}/eap_common/eap_fast_common.c
558)
559
560zephyr_library_compile_definitions_ifdef(CONFIG_EAP_FAST
561  EAP_FAST
562)
563
564zephyr_library_sources_ifdef(CONFIG_WIFI_NM_WPA_SUPPLICANT_EAPOL
565  ${HOSTAP_SRC_BASE}/eapol_supp/eapol_supp_sm.c
566  ${HOSTAP_SRC_BASE}/eap_peer/eap.c
567  ${HOSTAP_SRC_BASE}/eap_peer/eap_methods.c
568  ${HOSTAP_SRC_BASE}/eap_common/eap_common.c
569)
570
571zephyr_library_compile_definitions_ifdef(CONFIG_WIFI_NM_WPA_SUPPLICANT_EAPOL
572  IEEE8021X_EAPOL
573)
574
575zephyr_library_compile_definitions_ifdef(CONFIG_WIFI_NM_WPA_SUPPLICANT_NW_SEL_RELIABILITY
576  CONFIG_NW_SEL_RELIABILITY
577)
578
579zephyr_library_sources_ifdef(CONFIG_WIFI_NM_WPA_SUPPLICANT_DPP
580  ${WIFI_NM_WPA_SUPPLICANT_BASE}/dpp_supplicant.c
581  ${WIFI_NM_WPA_SUPPLICANT_BASE}/offchannel.c
582  ${WIFI_NM_WPA_SUPPLICANT_BASE}/gas_query.c
583
584  ${HOSTAP_SRC_BASE}/ap/dpp_hostapd.c
585  ${HOSTAP_SRC_BASE}/ap/gas_query_ap.c
586  ${HOSTAP_SRC_BASE}/ap/gas_serv.c
587
588  ${HOSTAP_SRC_BASE}/common/dpp_tcp.c
589  ${HOSTAP_SRC_BASE}/common/dpp.c
590  ${HOSTAP_SRC_BASE}/common/dpp_pkex.c
591  ${HOSTAP_SRC_BASE}/common/dpp_crypto.c
592  ${HOSTAP_SRC_BASE}/common/dpp_auth.c
593  ${HOSTAP_SRC_BASE}/common/dpp_reconfig.c
594  ${HOSTAP_SRC_BASE}/common/gas_server.c
595  ${HOSTAP_SRC_BASE}/common/gas.c
596  ${HOSTAP_SRC_BASE}/common/dpp_backup.c
597
598  ${HOSTAP_SRC_BASE}/crypto/aes-siv.c
599
600  ${HOSTAP_SRC_BASE}/utils/json.c
601  ${HOSTAP_SRC_BASE}/utils/ip_addr.c
602
603  ${HOSTAP_SRC_BASE}/tls/asn1.c
604)
605
606zephyr_library_sources_ifdef(CONFIG_WIFI_NM_HOSTAPD_CRYPTO_ENTERPRISE
607  ${HOSTAP_SRC_BASE}/eap_server/eap_server_tls_common.c
608)
609
610zephyr_library_compile_definitions_ifdef(CONFIG_WIFI_NM_HOSTAPD_CRYPTO_ENTERPRISE
611  WIFI_NM_HOSTAPD_CRYPTO_ENTERPRISE
612  EAP_TLS_FUNCS
613  EAP_SERVER
614)
615
616zephyr_library_sources_ifdef(CONFIG_EAP_SERVER_IDENTITY
617  ${HOSTAP_SRC_BASE}/eap_server/eap_server_identity.c
618)
619
620zephyr_library_compile_definitions_ifdef(CONFIG_EAP_SERVER_IDENTITY
621  EAP_SERVER_IDENTITY
622)
623
624
625zephyr_library_sources_ifdef(CONFIG_EAP_SERVER_TLS
626  ${HOSTAP_SRC_BASE}/eap_server/eap_server_tls.c
627)
628
629zephyr_library_compile_definitions_ifdef(CONFIG_EAP_SERVER_TLS
630  EAP_SERVER_TLS
631)
632
633zephyr_library_sources_ifdef(CONFIG_EAP_SERVER_MD5
634  ${HOSTAP_SRC_BASE}/eap_server/eap_server_md5.c
635)
636
637zephyr_library_compile_definitions_ifdef(CONFIG_EAP_SERVER_MD5
638  EAP_SERVER_MD5
639)
640
641zephyr_library_sources_ifdef(CONFIG_EAP_SERVER_MSCHAPV2
642  ${HOSTAP_SRC_BASE}/eap_server/eap_server_mschapv2.c
643)
644
645zephyr_library_compile_definitions_ifdef(CONFIG_EAP_SERVER_MSCHAPV2
646  EAP_SERVER_MSCHAPV2
647)
648
649zephyr_library_sources_ifdef(CONFIG_EAP_SERVER_PEAP
650  ${HOSTAP_SRC_BASE}/eap_server/eap_server_peap.c
651)
652
653zephyr_library_compile_definitions_ifdef(CONFIG_EAP_SERVER_PEAP
654  EAP_SERVER_PEAP
655)
656
657zephyr_library_sources_ifdef(CONFIG_EAP_SERVER_GTC
658  ${HOSTAP_SRC_BASE}/eap_server/eap_server_gtc.c
659)
660
661zephyr_library_compile_definitions_ifdef(CONFIG_EAP_SERVER_GTC
662  EAP_SERVER_GTC
663)
664
665zephyr_library_sources_ifdef(CONFIG_EAP_SERVER_TTLS
666  ${HOSTAP_SRC_BASE}/eap_server/eap_server_ttls.c
667)
668
669zephyr_library_compile_definitions_ifdef(CONFIG_EAP_SERVER_TTLS
670  EAP_SERVER_TTLS
671)
672
673if(CONFIG_WIFI_NM_WPA_SUPPLICANT_CRYPTO_ALT)
674zephyr_include_directories(
675  ${HOSTAP_BASE}/port/mbedtls
676)
677
678zephyr_library_sources(
679  ${HOSTAP_SRC_BASE}/crypto/crypto_mbedtls_alt.c
680  ${HOSTAP_SRC_BASE}/crypto/rc4.c
681)
682
683zephyr_library_sources_ifdef(CONFIG_WIFI_NM_WPA_SUPPLICANT_CRYPTO_MBEDTLS_PSA
684  ${HOSTAP_BASE}/port/mbedtls/supp_psa_api.c
685)
686
687zephyr_library_sources_ifdef(CONFIG_WIFI_NM_WPA_SUPPLICANT_CRYPTO_ENTERPRISE
688  ${HOSTAP_SRC_BASE}/crypto/ms_funcs.c
689  ${HOSTAP_SRC_BASE}/crypto/aes-eax.c
690  ${HOSTAP_SRC_BASE}/crypto/md4-internal.c
691  ${HOSTAP_SRC_BASE}/crypto/sha1-internal.c
692  ${HOSTAP_SRC_BASE}/crypto/fips_prf_internal.c
693  ${HOSTAP_SRC_BASE}/crypto/milenage.c
694  ${HOSTAP_SRC_BASE}/crypto/tls_mbedtls_alt.c
695)
696
697zephyr_library_sources_ifdef(CONFIG_WIFI_NM_WPA_SUPPLICANT_CRYPTO_TEST
698  ${HOSTAP_SRC_BASE}/crypto/crypto_module_tests.c
699  ${HOSTAP_SRC_BASE}/crypto/fips_prf_internal.c
700  ${HOSTAP_SRC_BASE}/crypto/sha1-internal.c
701  ${HOSTAP_SRC_BASE}/crypto/sha1-tlsprf.c
702)
703endif()
704
705zephyr_library_link_libraries_ifndef(CONFIG_WIFI_NM_WPA_SUPPLICANT_CRYPTO_NONE
706  mbedTLS)
707
708if(CONFIG_SAE_PWE_EARLY_EXIT)
709  message(WARNING "CONFIG_SAE_PWE_EARLY_EXIT is enabled, "
710  "this is not secure and is a workaround for low resource systems, "
711  "please use it carefully and do not use it production.")
712endif()
713
714endif()
715