1#
2# Copyright (c) 2024 Nordic Semiconductor ASA
3#
4# SPDX-License-Identifier: Apache-2.0
5#
6
7zephyr_library_named(wifi_credentials)
8zephyr_library_sources(wifi_credentials.c)
9
10if (CONFIG_WIFI_CREDENTIALS_BACKEND_PSA)
11zephyr_library_include_directories(
12	$<TARGET_PROPERTY:tfm,TFM_BINARY_DIR>/api_ns/interface/include
13)
14endif()
15
16zephyr_library_sources_ifdef(
17	CONFIG_WIFI_CREDENTIALS_BACKEND_SETTINGS
18	wifi_credentials_backend_settings.c)
19
20zephyr_library_sources_ifdef(
21	CONFIG_WIFI_CREDENTIALS_BACKEND_PSA
22	wifi_credentials_backend_psa.c)
23
24zephyr_library_sources_ifdef(
25	CONFIG_WIFI_CREDENTIALS_BACKEND_NONE
26	wifi_credentials_backend_none.c)
27
28zephyr_library_sources_ifdef(
29	CONFIG_WIFI_CREDENTIALS_SHELL
30	wifi_credentials_shell.c)
31
32if(WIFI_CREDENTIALS_STATIC_SSID)
33	message(WARNING
34		"Static Wi-Fi configuration is used, please remove before deployment!"
35	)
36endif()
37
38if(DEFINED CONFIG_WIFI_NM_WPA_SUPPLICANT_CRYPTO_ENTERPRISE AND NOT DEFINED CONFIG_NET_L2_WIFI_SHELL)
39  # Wi-Fi Enterprise test certificates handling
40  set(gen_inc_dir ${ZEPHYR_BINARY_DIR}/misc/generated)
41  set(gen_dir ${gen_inc_dir}/wifi_enterprise_test_certs)
42  if(NOT DEFINED WIFI_TEST_CERTS_DIR)
43    set(WIFI_TEST_CERTS_DIR ${ZEPHYR_BASE}/samples/net/wifi/test_certs/rsa3k)
44  endif()
45  # Create output directory for test certs
46  file(MAKE_DIRECTORY ${gen_dir})
47
48  # convert .pem files to array data at build time
49  zephyr_include_directories(${gen_inc_dir})
50
51  foreach(cert_file IN ITEMS
52      ${WIFI_TEST_CERTS_DIR}/client.pem
53      ${WIFI_TEST_CERTS_DIR}/client-key.pem
54      ${WIFI_TEST_CERTS_DIR}/ca.pem
55      ${WIFI_TEST_CERTS_DIR}/client2.pem
56      ${WIFI_TEST_CERTS_DIR}/client-key2.pem
57      ${WIFI_TEST_CERTS_DIR}/ca2.pem
58      )
59
60  if(EXISTS ${cert_file})
61      get_filename_component(cert_name ${cert_file} NAME)
62      generate_inc_file_for_target(
63          app
64          ${cert_file}
65          ${gen_dir}/${cert_name}.inc
66          )
67    else()
68      get_filename_component(cert_name ${cert_file} NAME)
69      file(WRITE ${gen_dir}/${cert_name}.inc "// Empty file generated because ${cert_file} does not exist\n")
70    endif()
71  endforeach()
72
73  # Add explicit dependency on app target for ZEPHYR_CURRENT_LIBRARY, so these
74  # headers are generated at the correct point in the build
75  add_dependencies(${ZEPHYR_CURRENT_LIBRARY} app)
76endif()
77