package/wpa_supplicant: add Smart card option

CONFIG_SMARTCARD was unconditionally disabled which has meant that
even if OpenSSL is compiled with engine support and the supplicant is
configured to use an engine it would warn that it was compiled without
engine support.

This mechanism is used to enable the more secure forms of 802.1x
networking authentication such as EAP-TLS with hardware-delegated
cryptography and private keys protected in hardware.

Enabling the option will allow delegating private key access to TPM2,
ARM TrustZone and other specialized secure hardware for establishing a
network connection.

Signed-off-by: Lars Wikman <lars@underjord.io>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
This commit is contained in:
Lars Wikman
2025-04-22 09:27:17 +02:00
committed by Thomas Petazzoni
parent 1fc51abc27
commit 1896f8c758
2 changed files with 14 additions and 3 deletions

View File

@@ -175,4 +175,12 @@ config BR2_PACKAGE_WPA_SUPPLICANT_DBUS_INTROSPECTION
help
Add introspection support for the DBus control interface.
config BR2_PACKAGE_WPA_SUPPLICANT_SMARTCARD
bool "Smartcard support"
select BR2_PACKAGE_OPENSSL
select BR2_PACKAGE_OPENSSL_FORCE_LIBOPENSSL
help
Enable the smart card support. Required for OpenSSL engines
to work using PKCS11 and 802.1x
endif

View File

@@ -24,9 +24,6 @@ WPA_SUPPLICANT_CONFIG_ENABLE = \
CONFIG_INTERNAL_LIBTOMMATH \
CONFIG_MATCH_IFACE
WPA_SUPPLICANT_CONFIG_DISABLE = \
CONFIG_SMARTCARD
# libnl-3 needs -lm (for rint) and -lpthread if linking statically
# And library order matters hence stick -lnl-3 first since it's appended
# in the wpa_supplicant Makefiles as in LIBS+=-lnl-3 ... thus failing
@@ -191,6 +188,12 @@ WPA_SUPPLICANT_DEPENDENCIES += readline
WPA_SUPPLICANT_CONFIG_ENABLE += CONFIG_READLINE
endif
ifeq ($(BR2_PACKAGE_WPA_SUPPLICANT_SMARTCARD),y)
WPA_SUPPLICANT_CONFIG_ENABLE += CONFIG_SMARTCARD
else
WPA_SUPPLICANT_CONFIG_DISABLE += CONFIG_SMARTCARD
endif
ifeq ($(BR2_PACKAGE_WPA_SUPPLICANT_CTRL_IFACE),y)
define WPA_SUPPLICANT_ENABLE_CTRL_IFACE
sed -i '/ctrl_interface/s/^#//g' $(TARGET_DIR)/etc/wpa_supplicant.conf