wpa_supplicant: update to 1.0.

This commit is contained in:
Juan RP 2012-06-26 10:04:03 +02:00
parent 31a41755cf
commit 62f298738b
7 changed files with 109 additions and 161 deletions

View file

@ -41,7 +41,7 @@
# Driver interface for Host AP driver
CONFIG_DRIVER_HOSTAP=y
#CONFIG_DRIVER_HOSTAP=y
# Driver interface for Agere driver
#CONFIG_DRIVER_HERMES=y
@ -57,10 +57,10 @@ CONFIG_DRIVER_HOSTAP=y
# Driver interface for ndiswrapper
# Deprecated; use CONFIG_DRIVER_WEXT=y instead.
CONFIG_DRIVER_NDISWRAPPER=y
#CONFIG_DRIVER_NDISWRAPPER=y
# Driver interface for Atmel driver
CONFIG_DRIVER_ATMEL=y
#CONFIG_DRIVER_ATMEL=y
# Driver interface for old Broadcom driver
# Please note that the newer Broadcom driver ("hybrid Linux driver") supports
@ -72,12 +72,17 @@ CONFIG_DRIVER_ATMEL=y
# Driver interface for Intel ipw2100/2200 driver
# Deprecated; use CONFIG_DRIVER_WEXT=y instead.
CONFIG_DRIVER_IPW=y
#CONFIG_DRIVER_IPW=y
# Driver interface for Ralink driver
CONFIG_DRIVER_RALINK=y
#CONFIG_DRIVER_RALINK=y
# Driver interface for generic Linux wireless extensions
# Note: WEXT is deprecated in the current Linux kernel version and no new
# functionality is added to it. nl80211-based interface is the new
# replacement for WEXT and its use allows wpa_supplicant to properly control
# the driver to improve existing functionality like roaming and to support new
# functionality.
CONFIG_DRIVER_WEXT=y
# Driver interface for Linux drivers using the nl80211 kernel interface
@ -109,11 +114,6 @@ CONFIG_DRIVER_NL80211=y
# Driver interface for development testing
#CONFIG_DRIVER_TEST=y
# Include client MLME (management frame processing) for test driver
# This can be used to test MLME operations in hostapd with the test interface.
# space.
#CONFIG_CLIENT_MLME=y
# Driver interface for wired Ethernet drivers
CONFIG_DRIVER_WIRED=y
@ -123,6 +123,10 @@ CONFIG_DRIVER_WIRED=y
# Driver interface for no driver (e.g., WPS ER only)
#CONFIG_DRIVER_NONE=y
# Solaris libraries
#LIBS += -lsocket -ldlpi -lnsl
#LIBS_c += -lsocket
# Enable IEEE 802.1X Supplicant (automatically included if any EAP method is
# included)
CONFIG_IEEE8021X_EAPOL=y
@ -161,6 +165,9 @@ CONFIG_EAP_OTP=y
# EAP-PSK (experimental; this is _not_ needed for WPA-PSK)
#CONFIG_EAP_PSK=y
# EAP-pwd (secure authentication using only a password)
#CONFIG_EAP_PWD=y
# EAP-PAX
#CONFIG_EAP_PAX=y
@ -189,7 +196,14 @@ CONFIG_EAP_LEAP=y
#CONFIG_EAP_TNC=y
# Wi-Fi Protected Setup (WPS)
#CONFIG_WPS=y
CONFIG_WPS=y
# Enable WSC 2.0 support
#CONFIG_WPS2=y
# Enable WPS external registrar functionality
#CONFIG_WPS_ER=y
# Disable credentials for an open network by default when acting as a WPS
# registrar.
#CONFIG_WPS_REG_DISABLE_OPEN=y
# EAP-IKEv2
#CONFIG_EAP_IKEV2=y
@ -224,6 +238,10 @@ CONFIG_CTRL_IFACE=y
# the resulting binary.
CONFIG_READLINE=y
# Include internal line edit mode in wpa_cli. This can be used as a replacement
# for GNU Readline to provide limited command line editing and history support.
#CONFIG_WPA_CLI_EDIT=y
# Remove debugging code that is printing out debug message to stdout.
# This can be used to reduce the size of the wpa_supplicant considerably
# if debugging code is not needed. The size reduction can be around 35%
@ -305,18 +323,17 @@ CONFIG_PEERKEY=y
# Select TLS implementation
# openssl = OpenSSL (default)
# gnutls = GnuTLS (needed for TLS/IA, see also CONFIG_GNUTLS_EXTRA)
# gnutls = GnuTLS
# internal = Internal TLSv1 implementation (experimental)
# none = Empty template
#CONFIG_TLS=openssl
# Whether to enable TLS/IA support, which is required for EAP-TTLSv1.
# You need CONFIG_TLS=gnutls for this to have any effect. Please note that
# even though the core GnuTLS library is released under LGPL, this extra
# library uses GPL and as such, the terms of GPL apply to the combination
# of wpa_supplicant and GnuTLS if this option is enabled. BSD license may not
# apply for distribution of the resulting binary.
#CONFIG_GNUTLS_EXTRA=y
# TLS-based EAP methods require at least TLS v1.0. Newer version of TLS (v1.1)
# can be enabled to get a stronger construction of messages when block ciphers
# are used. It should be noted that some existing TLS v1.0 -based
# implementation may not be compatible with TLS v1.1 message (ClientHello is
# sent prior to negotiating which version will be used)
#CONFIG_TLSV11=y
# If CONFIG_TLS=internal is used, additional library and include paths are
# needed for LibTomMath. Alternatively, an integrated, minimal version of
@ -332,7 +349,7 @@ CONFIG_PEERKEY=y
# At the cost of about 4 kB of additional binary size, the internal LibTomMath
# can be configured to include faster routines for exptmod, sqr, and div to
# speed up DH and RSA calculation considerably
CONFIG_INTERNAL_LIBTOMMATH_FAST=y
#CONFIG_INTERNAL_LIBTOMMATH_FAST=y
# Include NDIS event processing through WMI into wpa_supplicant/wpasvc.
# This is only for Windows builds and requires WMI-related header files and
@ -373,23 +390,28 @@ CONFIG_CTRL_IFACE_DBUS_INTRO=y
#CONFIG_DYNAMIC_EAP_METHODS=y
# IEEE Std 802.11r-2008 (Fast BSS Transition)
CONFIG_IEEE80211R=y
#CONFIG_IEEE80211R=y
# Add support for writing debug log to a file (/tmp/wpa_supplicant-log-#.txt)
CONFIG_DEBUG_FILE=y
# Send debug messages to syslog instead of stdout
#CONFIG_DEBUG_SYSLOG=y
# Set syslog facility for debug messages
#CONFIG_DEBUG_SYSLOG_FACILITY=LOG_DAEMON
# Enable privilege separation (see README 'Privilege separation' for details)
#CONFIG_PRIVSEP=y
# Enable mitigation against certain attacks against TKIP by delaying Michael
# MIC error reports by a random amount of time between 0 and 60 seconds
CONFIG_DELAYED_MIC_ERROR_REPORT=y
#CONFIG_DELAYED_MIC_ERROR_REPORT=y
# Enable tracing code for developer debugging
# This tracks use of memory allocations and other registrations and reports
# incorrect use with a backtrace of call (or allocation) location.
#CONFIG_WPA_TRACE=y
# For BSD, comment out these.
# For BSD, uncomment these.
#LIBS += -lexecinfo
#LIBS_p += -lexecinfo
#LIBS_c += -lexecinfo
@ -398,9 +420,49 @@ CONFIG_DELAYED_MIC_ERROR_REPORT=y
# This enables use of libbfd to get more detailed symbols for the backtraces
# generated by CONFIG_WPA_TRACE=y.
#CONFIG_WPA_TRACE_BFD=y
# For BSD, comment out these.
# For BSD, uncomment these.
#LIBS += -lbfd -liberty -lz
#LIBS_p += -lbfd -liberty -lz
#LIBS_c += -lbfd -liberty -lz
# wpa_supplicant depends on strong random number generation being available
# from the operating system. os_get_random() function is used to fetch random
# data when needed, e.g., for key generation. On Linux and BSD systems, this
# works by reading /dev/urandom. It should be noted that the OS entropy pool
# needs to be properly initialized before wpa_supplicant is started. This is
# important especially on embedded devices that do not have a hardware random
# number generator and may by default start up with minimal entropy available
# for random number generation.
#
CONFIG_LIBNL32=yes
# As a safety net, wpa_supplicant is by default trying to internally collect
# additional entropy for generating random data to mix in with the data fetched
# from the OS. This by itself is not considered to be very strong, but it may
# help in cases where the system pool is not initialized properly. However, it
# is very strongly recommended that the system pool is initialized with enough
# entropy either by using hardware assisted random number generator or by
# storing state over device reboots.
#
# wpa_supplicant can be configured to maintain its own entropy store over
# restarts to enhance random number generation. This is not perfect, but it is
# much more secure than using the same sequence of random numbers after every
# reboot. This can be enabled with -e<entropy file> command line option. The
# specified file needs to be readable and writable by wpa_supplicant.
#
# If the os_get_random() is known to provide strong random data (e.g., on
# Linux/BSD, the board in question is known to have reliable source of random
# data from /dev/urandom), the internal wpa_supplicant random pool can be
# disabled. This will save some in binary size and CPU use. However, this
# should only be considered for builds that are known to be used on devices
# that meet the requirements described above.
CONFIG_NO_RANDOM_POOL=y
# IEEE 802.11n (High Throughput) support (mainly for AP mode)
#CONFIG_IEEE80211N=y
# Interworking (IEEE 802.11u)
# This can be used to enable functionality to improve interworking with
# external networks (GAS/ANQP to learn more about the networks and network
# selection based on available credentials).
#CONFIG_INTERWORKING=y
CONFIG_LIBNL32=y

View file

@ -1,12 +0,0 @@
[Unit]
Description=Wi-Fi Security Service
After=syslog.target
[Service]
Type=dbus
BusName=fi.epitest.hostap.WPASupplicant
ExecStart=/usr/sbin/wpa_supplicant -c /etc/wpa_supplicant.conf -u
StandardOutput=syslog
[Install]
WantedBy=multi-user.target

View file

@ -1,9 +0,0 @@
[Unit]
Description=Wi-Fi Security Service on %I
After=syslog.target
[Service]
ExecStart=/usr/sbin/wpa_supplicant -Dwext -i %I -c /etc/wpa_supplicant.conf
[Install]
Alias=multi-user.target.wants/wpa_supplicant@wlan0.service

View file

@ -1,61 +0,0 @@
From b80b5639935d37b95d00f86b57f2844a9c775f57 Mon Sep 17 00:00:00 2001
From: Dan Williams <dcbw@redhat.com>
Date: Fri, 17 Dec 2010 15:56:01 +0200
Subject: [PATCH] dbus: Emit property changed events when adding/removing BSSes
The supplicant was not emitting property changed events when the BSSs
property changed.
Signed-off-by: Dan Williams <dcbw@redhat.com>
(cherry picked from commit 1e6288df6b07a353a9246b77e0de2a840b5f2c72)
---
wpa_supplicant/dbus/dbus_new.c | 6 ++++++
wpa_supplicant/dbus/dbus_new.h | 1 +
2 files changed, 7 insertions(+), 0 deletions(-)
diff --git a/wpa_supplicant/dbus/dbus_new.c b/wpa_supplicant/dbus/dbus_new.c
index bdfbbac..c66640a 100644
--- wpa_supplicant/dbus/dbus_new.c
+++ wpa_supplicant/dbus/dbus_new.c
@@ -691,6 +691,10 @@ void wpas_dbus_signal_prop_changed(struct wpa_supplicant *wpa_s,
wpas_dbus_getter_current_network;
prop = "CurrentNetwork";
break;
+ case WPAS_DBUS_PROP_BSSS:
+ getter = (WPADBusPropertyAccessor) wpas_dbus_getter_bsss;
+ prop = "BSSs";
+ break;
default:
wpa_printf(MSG_ERROR, "dbus: %s: Unknown Property value %d",
__func__, property);
@@ -1199,6 +1203,7 @@ int wpas_dbus_unregister_bss(struct wpa_supplicant *wpa_s,
}
wpas_dbus_signal_bss_removed(wpa_s, bss_obj_path);
+ wpas_dbus_signal_prop_changed(wpa_s, WPAS_DBUS_PROP_BSSS);
return 0;
}
@@ -1263,6 +1268,7 @@ int wpas_dbus_register_bss(struct wpa_supplicant *wpa_s,
}
wpas_dbus_signal_bss_added(wpa_s, bss_obj_path);
+ wpas_dbus_signal_prop_changed(wpa_s, WPAS_DBUS_PROP_BSSS);
return 0;
diff --git a/wpa_supplicant/dbus/dbus_new.h b/wpa_supplicant/dbus/dbus_new.h
index 80ea98c..9cdefcb 100644
--- wpa_supplicant/dbus/dbus_new.h
+++ wpa_supplicant/dbus/dbus_new.h
@@ -30,6 +30,7 @@ enum wpas_dbus_prop {
WPAS_DBUS_PROP_STATE,
WPAS_DBUS_PROP_CURRENT_BSS,
WPAS_DBUS_PROP_CURRENT_NETWORK,
+ WPAS_DBUS_PROP_BSSS,
};
enum wpas_dbus_bss_prop {
--
1.7.4-rc1

View file

@ -1,41 +1,11 @@
Subject: [RFC] hostap: Allow linking with libnl-3.
Date: Tue, 15 Nov 2011 14:30:04 -0000
From: Ben Greear <greearb@candelatech.com>
I needed this patch to compile against the latest
libnl code. I added this to my config file:
CONFIG_LIBNL32=y
Signed-hostap: Ben Greear <greearb@candelatech.com>
rediffed against 0.7.3 by Stefan Lippers-Hollmann <s.l-h@gmx.de>
---
:100644 100644 5caeec5... 0cc81f9... M src/drivers/drivers.mak
src/drivers/drivers.mak | 21 ++++++++++++++-------
2 files changed, 29 insertions(+), 14 deletions(-)
--- src/drivers/drivers.mak
+++ src/drivers/drivers.mak
@@ -31,11 +31,18 @@ NEED_SME=y
NEED_AP_MLME=y
NEED_NETLINK=y
NEED_LINUX_IOCTL=y
-DRV_LIBS += -lnl
+ifdef CONFIG_LIBNL32
+ DRV_LIBS += -lnl-3
+ DRV_LIBS += -lnl-genl-3
+ DRV_CFLAGS += -DCONFIG_LIBNL20
+ DRV_CFLAGS += -I/usr/include/libnl3/
+else
+ DRV_LIBS += -lnl
-ifdef CONFIG_LIBNL20
-DRV_LIBS += -lnl-genl
-DRV_CFLAGS += -DCONFIG_LIBNL20
+ ifdef CONFIG_LIBNL20
+ DRV_LIBS += -lnl-genl
+ DRV_CFLAGS += -DCONFIG_LIBNL20
+ endif
endif
endif
--- src/drivers/drivers.mak.foo 2012-03-02 16:11:43.176448714 -0600
+++ src/drivers/drivers.mak 2012-03-02 16:12:29.759866341 -0600
@@ -48,7 +48,7 @@ NEED_RFKILL=y
ifdef CONFIG_LIBNL32
DRV_LIBS += -lnl-3
DRV_LIBS += -lnl-genl-3
- DRV_CFLAGS += -DCONFIG_LIBNL20
+ DRV_CFLAGS += -DCONFIG_LIBNL20 `pkg-config --cflags libnl-3.0`
else
ifdef CONFIG_LIBNL_TINY
DRV_LIBS += -lnl-tiny

View file

@ -1,16 +1,16 @@
# Template file for 'wpa_supplicant'
pkgname=wpa_supplicant
version=0.7.3
revision=9
version=1.0
revision=1
build_wrksrc=$pkgname
homepage="http://hostap.epitest.fi"
distfiles="$homepage/releases/$pkgname-$version.tar.gz"
makedepends="libnl3-devel openssl-devel dbus-devel readline-devel"
makedepends="pkg-config libnl3-devel openssl-devel dbus-devel readline-devel"
conf_files="/etc/${pkgname}.conf"
short_desc="WPA/WPA2/IEEE 802.1X Supplicant"
maintainer="Juan RP <xtraeme@gmail.com>"
license="GPL-2"
checksum=d0cd50caa85346ccc376dcda5ed3c258eef19a93b3cade39d25760118ad59443
checksum=91d41d473a5aafa2e25dd6577ebda975c4d4a3188850a53e31feaf7c04482b9c
long_desc="
$pkgname is a WPA Supplicant for Linux, BSD, Mac OS X, and Windows with
support for WPA and WPA2 (IEEE 802.11i / RSN). It is suitable for both
@ -27,29 +27,28 @@ long_desc="
do_build() {
sed -i 's|/usr/local|$(PREFIX)|g' Makefile
cp -f ${FILESDIR}/config .config
make ${makejobs}
make PREFIX=/usr ${makejobs}
}
do_install() {
make PREFIX=/usr DESTDIR=${DESTDIR} install
vinstall ${FILESDIR}/${pkgname}.service 644 lib/systemd/system
vinstall ${FILESDIR}/${pkgname}@.service 644 lib/systemd/system
vinstall ${FILESDIR}/${pkgname}.tmpfiles.d \
644 usr/lib/tmpfiles.d ${pkgname}.conf
vinstall ${FILESDIR}/${pkgname}.conf 644 etc
vinstall ${FILESDIR}/${pkgname}.conf 644 etc/$pkgname
vinstall wpa_supplicant.conf 644 usr/share/examples/${pkgname}
for d in 5 8; do
install -d ${DESTDIR}/usr/share/man/man${d}
done
install -m644 doc/docbook/${pkgname}.conf.5 \
${DESTDIR}/usr/share/man/man5
install -m644 doc/docbook/wpa_*.8 ${DESTDIR}/usr/share/man/man8
install -m644 doc/docbook/*.5 ${DESTDIR}/usr/share/man/man5
install -m644 doc/docbook/*.8 ${DESTDIR}/usr/share/man/man8
install -d ${DESTDIR}/usr/share/dbus-1/system-services
sed -i -e "s|/sbin|/usr/sbin|" dbus/*.service
install -m644 dbus/*.service \
${DESTDIR}/usr/share/dbus-1/system-services/
vinstall dbus/dbus-${pkgname}.conf 644 \
etc/dbus-1/system.d ${pkgname}.conf
vmkdir lib/systemd/system
install -m644 systemd/*.service ${DESTDIR}/lib/systemd/system
}

View file

@ -3,6 +3,5 @@ libc.so.6
libcrypto.so.1
libssl.so.1
libdbus-1.so.3
libpthread.so.0
libnl-3.so.200
libnl-genl-3.so.200