menuconfig BR2_PACKAGE_WPA_SUPPLICANT
	bool "wpa_supplicant"
	depends on BR2_USE_MMU # fork()
	select BR2_PACKAGE_LIBOPENSSL_ENABLE_DES if BR2_PACKAGE_LIBOPENSSL
	select BR2_PACKAGE_LIBOPENSSL_ENABLE_MD4 if BR2_PACKAGE_LIBOPENSSL
	help
	  WPA supplicant for secure wireless networks

	  http://w1.fi/wpa_supplicant/

if BR2_PACKAGE_WPA_SUPPLICANT

config BR2_PACKAGE_WPA_SUPPLICANT_NL80211
	bool "Enable nl80211 support"
	default y
	depends on BR2_TOOLCHAIN_HAS_THREADS # libnl
	select BR2_PACKAGE_LIBNL
	help
	  Enable support for nl80211.  This is the current wireless
	  API for Linux, supported by all wireless drivers in vanilla
	  Linux, but may not be supported by some out-of-tree Linux
	  wireless drivers.  wpa_supplicant will still fall back to
	  using the Wireless Extensions (wext) API with these drivers.

	  If this option is disabled, then only the deprecated wext
	  API will be supported, with far less features.  Linux may
	  supports using wext with modern drivers using a
	  compatibility layer, but it must be enabled in the kernel
	  configuration.

comment "nl80211 support needs a toolchain w/ threads"
	depends on !BR2_TOOLCHAIN_HAS_THREADS

config BR2_PACKAGE_WPA_SUPPLICANT_WEXT
	bool "Enable wext (deprecated)"
	default y if !BR2_TOOLCHAIN_HAS_THREADS
	help
	  Enable support for wext.  This is the historic wireless API
	  for Linux, which is now deprecated and in maintenance-only in
	  the kernel.  It may still be required by out-of-tree drivers.

config BR2_PACKAGE_WPA_SUPPLICANT_WIRED
	bool "Enable wired support"
	depends on BR2_TOOLCHAIN_HAS_THREADS # libnl
	depends on BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_6
	select BR2_PACKAGE_LIBNL
	select BR2_PACKAGE_WPA_SUPPLICANT_EAP
	help
	  Include the "wired" driver, so the internal IEEE 802.1x
	  supplicant can be used with Ethernet.  This also enables
	  support for MACSEC.

comment "wired macsec support needs a toolchain w/ headers >= 4.6"
	depends on !BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_6

comment "wired support needs a toolchain w/ threads"
	depends on !BR2_TOOLCHAIN_HAS_THREADS

comment "wpa_supplicant will be useless without at least one driver"
	depends on !BR2_PACKAGE_WPA_SUPPLICANT_NL80211 && \
		!BR2_PACKAGE_WPA_SUPPLICANT_WEXT && \
		!BR2_PACKAGE_WPA_SUPPLICANT_WIRED

config BR2_PACKAGE_WPA_SUPPLICANT_IBSS_RSN
	bool "Enable IBSS RSN"
	depends on BR2_PACKAGE_WPA_SUPPLICANT_NL80211
	help
	  Enable support for RSN/WPA2 in Ad-Hoc mode.

config BR2_PACKAGE_WPA_SUPPLICANT_AP_SUPPORT
	bool "Enable AP mode"
	depends on BR2_PACKAGE_WPA_SUPPLICANT_NL80211
	help
	  With this option enabled, wpa_supplicant can act as an
	  access point much like hostapd does with a limited feature
	  set.  This links in parts of hostapd functionality into
	  wpa_supplicant, making it bigger but dispensing the need for
	  a separate hostapd binary in some applications hence being
	  smaller overall.  It also enables support for Wi-Fi Direct.

config BR2_PACKAGE_WPA_SUPPLICANT_WIFI_DISPLAY
	bool "Enable Wi-Fi Display"
	depends on BR2_PACKAGE_WPA_SUPPLICANT_AP_SUPPORT
	help
	  Enable support for Wi-Fi Display

config BR2_PACKAGE_WPA_SUPPLICANT_MESH_NETWORKING
	bool "Enable mesh networking"
	depends on BR2_PACKAGE_WPA_SUPPLICANT_AP_SUPPORT
	select BR2_PACKAGE_OPENSSL
	select BR2_PACKAGE_OPENSSL_FORCE_LIBOPENSSL
	help
	  Enable support for open and secured mesh networking
	  (IEEE 802.11s)

config BR2_PACKAGE_WPA_SUPPLICANT_OVERRIDES
	bool "Enable HT/VHT/HE overrides"
	help
	  Enable wpa_supplicant overrides for HT, VHT and HE (disable
	  HT/HT40, mask MCS rates, etc.) in wpa_supplicant
	  configuration file.

config BR2_PACKAGE_WPA_SUPPLICANT_AUTOSCAN
	bool "Enable autoscan"
	help
	  Enable support for the autoscan feature (allow periodic scan)

config BR2_PACKAGE_WPA_SUPPLICANT_EAP
	bool "Enable EAP"
	help
	  Enable support for EAP, 802.1x/WPA-Enterprise and FILS.

config BR2_PACKAGE_WPA_SUPPLICANT_HOTSPOT
	bool "Enable HS20"
	select BR2_PACKAGE_WPA_SUPPLICANT_EAP
	help
	  Enable Hotspot 2.0 and IEEE 802.11u interworking
	  functionality.

config BR2_PACKAGE_WPA_SUPPLICANT_DEBUG_SYSLOG
	bool "Enable syslog support"
	default y
	help
	  Enable support for sending debug messages to syslog.

config BR2_PACKAGE_WPA_SUPPLICANT_WPS
	bool "Enable WPS"
	help
	  Enable support for Wi-Fi Protected Setup (WPS).

config BR2_PACKAGE_WPA_SUPPLICANT_WPA3
	bool "Enable WPA3 support"
	select BR2_PACKAGE_OPENSSL
	select BR2_PACKAGE_OPENSSL_FORCE_LIBOPENSSL
	default y
	help
	  Enable WPA3 support including OWE, SAE, DPP

config BR2_PACKAGE_WPA_SUPPLICANT_CLI
	bool "Install wpa_cli binary"
	select BR2_PACKAGE_WPA_SUPPLICANT_CTRL_IFACE
	default y
	help
	  Install wpa_cli command line utility

config BR2_PACKAGE_WPA_SUPPLICANT_WPA_CLIENT_SO
	bool "Install wpa_client shared library"
	depends on !BR2_STATIC_LIBS
	default y
	help
	  Install libwpa_client.so.

comment "wpa_client library needs a toolchain w/ dynamic library"
	depends on BR2_STATIC_LIBS

config BR2_PACKAGE_WPA_SUPPLICANT_PASSPHRASE
	bool "Install wpa_passphrase binary"
	help
	  Install wpa_passphrase command line utility.

config BR2_PACKAGE_WPA_SUPPLICANT_CTRL_IFACE
	bool "Enable the Unix-socket control interface"
	default y
	help
	  Enable support for the Unix-socket-based API.

config BR2_PACKAGE_WPA_SUPPLICANT_DBUS
	bool "Enable support for the DBus control interface"
	depends on BR2_TOOLCHAIN_HAS_THREADS # dbus
	select BR2_PACKAGE_DBUS
	help
	  Enable support for the DBus control interface.

comment "dbus support needs a toolchain w/ threads"
	depends on !BR2_TOOLCHAIN_HAS_THREADS

config BR2_PACKAGE_WPA_SUPPLICANT_DBUS_INTROSPECTION
	bool "Introspection support"
	depends on BR2_PACKAGE_WPA_SUPPLICANT_DBUS
	help
	  Add introspection support for the DBus control interface.

endif
