]> git.ipfire.org Git - thirdparty/hostap.git/log
thirdparty/hostap.git
9 years agotests: Make *_key_lifetime_in_memory more robust
Jouni Malinen [Sat, 31 Jan 2015 16:06:06 +0000 (18:06 +0200)] 
tests: Make *_key_lifetime_in_memory more robust

It was possible for the GTK-found-in-memory case to be triggered due to
a retransmission of EAPOL-Key msg 3/4 especially when running test cases
under heavy load (i.e., timeout on hostapd due to not receiving the 4/4
response quickly enough). Make this false failure report less likely by
waiting a bit longer after the connection has been completed before
fetching the process memory.

Signed-off-by: Jouni Malinen <j@w1.fi>
9 years agotests: wpa_supplicant and station interface in a bridge
Jouni Malinen [Sat, 31 Jan 2015 15:28:08 +0000 (17:28 +0200)] 
tests: wpa_supplicant and station interface in a bridge

Signed-off-by: Jouni Malinen <j@w1.fi>
9 years agoWork around Linux packet socket regression
Jouni Malinen [Sat, 31 Jan 2015 15:21:58 +0000 (17:21 +0200)] 
Work around Linux packet socket regression

Linux kernel commit 576eb62598f10c8c7fd75703fe89010cdcfff596 ('bridge:
respect RFC2863 operational state') from 2012 introduced a regression
for using wpa_supplicant with EAPOL frames and a station interface in a
bridge. Since it does not look like this regression is going to get
fixed any time soon (it is already two years from that commit and over
1.5 from a discussion pointing out the regression), add a workaround in
wpa_supplicant to avoid this issue.

The wpa_supplicant workaround uses a secondary packet socket to capture
all frames (ETH_P_ALL) from the netdev that is in a bridge. This is
needed to avoid the kernel regression. However, this comes at the price
of more CPU load. Some of this is avoided with use of Linux socket
filter, but still, this is less efficient than a packet socket bound to
the specific EAPOL ethertype. The workaround gets disabled
automatically, if the main packet socket interface on the bridge
interface turns out to be working for RX (e.g., due to an old kernel
version being used or a new kernel version having a fix for the
regression). In addition, this workaround is only taken into use for the
special case of running wpa_supplicant with an interface in a bridge.

Signed-off-by: Jouni Malinen <j@w1.fi>
9 years agotests: RSN pre-authentication OOM in wpa_supplicant
Jouni Malinen [Sat, 31 Jan 2015 11:45:52 +0000 (13:45 +0200)] 
tests: RSN pre-authentication OOM in wpa_supplicant

Signed-off-by: Jouni Malinen <j@w1.fi>
9 years agoFix resource leaks on rsn_preauth_init() error paths
Jouni Malinen [Sat, 31 Jan 2015 11:44:48 +0000 (13:44 +0200)] 
Fix resource leaks on rsn_preauth_init() error paths

The l2_packet instances were not freed on some of the rsn_preauth_init()
error paths.

Signed-off-by: Jouni Malinen <j@w1.fi>
9 years agotests: RSN pre-authentication timeout
Jouni Malinen [Sat, 31 Jan 2015 11:35:31 +0000 (13:35 +0200)] 
tests: RSN pre-authentication timeout

Signed-off-by: Jouni Malinen <j@w1.fi>
9 years agotests: PMKSA cache size limit in wpa_supplicant
Jouni Malinen [Sat, 31 Jan 2015 11:26:46 +0000 (13:26 +0200)] 
tests: PMKSA cache size limit in wpa_supplicant

Signed-off-by: Jouni Malinen <j@w1.fi>
9 years agotests: Invalid NFC NDEF record handling
Jouni Malinen [Sat, 31 Jan 2015 00:00:02 +0000 (02:00 +0200)] 
tests: Invalid NFC NDEF record handling

Signed-off-by: Jouni Malinen <j@w1.fi>
9 years agotests: Add capture file validation for IPv6 in proxyarp_open
Jouni Malinen [Fri, 30 Jan 2015 19:55:46 +0000 (21:55 +0200)] 
tests: Add capture file validation for IPv6 in proxyarp_open

Signed-off-by: Jouni Malinen <jouni@qca.qualcomm.com>
9 years agotests: Add capture file validation for IPv4 in proxyarp_open
Jouni Malinen [Fri, 30 Jan 2015 14:23:26 +0000 (16:23 +0200)] 
tests: Add capture file validation for IPv4 in proxyarp_open

Verify that the expected frames were seend and unexpected frames
weren't.

Signed-off-by: Jouni Malinen <jouni@qca.qualcomm.com>
9 years agotests: Add another bridge port to proxyarp_open
Jouni Malinen [Fri, 30 Jan 2015 11:53:34 +0000 (13:53 +0200)] 
tests: Add another bridge port to proxyarp_open

Use another AP instance as a separate bridge port in the proxyarp_open
test cases to increase testing coverage for kernel proxyarp
functionality.

Signed-off-by: Jouni Malinen <jouni@qca.qualcomm.com>
9 years agotests: Add brctl showmacs output to proxyarp_open test cases
Jouni Malinen [Fri, 30 Jan 2015 11:33:32 +0000 (13:33 +0200)] 
tests: Add brctl showmacs output to proxyarp_open test cases

Signed-off-by: Jouni Malinen <jouni@qca.qualcomm.com>
9 years agotests: Run the proxyarp_open test case both with and without ebtables
Jouni Malinen [Fri, 30 Jan 2015 11:26:12 +0000 (13:26 +0200)] 
tests: Run the proxyarp_open test case both with and without ebtables

Signed-off-by: Jouni Malinen <jouni@qca.qualcomm.com>
9 years agotests: Fix tshark refactoring
Jouni Malinen [Fri, 30 Jan 2015 13:28:59 +0000 (15:28 +0200)] 
tests: Fix tshark refactoring

Commit 2e1d7386e2766b57bc295702af543cc784a0d2be ('tests: Refactor tshark
running') added a helper function for running tshark. However, it did
not use the filter argument correctly, added an extra -Tfields on the
command line, and failed to use global variable. In practice, this ended
up disabling all the tshark sniffer checks. Fix that by using the filter
argument from the caller and marking the _tshark_filter_arg global.

Signed-off-by: Jouni Malinen <jouni@qca.qualcomm.com>
9 years agodhcp_snoop: Make IPv4 addresses human readable in debug log
Jouni Malinen [Fri, 30 Jan 2015 16:38:47 +0000 (18:38 +0200)] 
dhcp_snoop: Make IPv4 addresses human readable in debug log

Use standard numbers-and-dots format for IPv4 in debug logs instead
of hexdump in two different byte orders.

Signed-off-by: Jouni Malinen <jouni@qca.qualcomm.com>
9 years agotests: RADIUS server changing VLAN ID assignment
Jouni Malinen [Thu, 29 Jan 2015 23:11:56 +0000 (01:11 +0200)] 
tests: RADIUS server changing VLAN ID assignment

Signed-off-by: Jouni Malinen <jouni@qca.qualcomm.com>
9 years agoFix STA re-bind to another VLAN on reauthentication
Jouni Malinen [Thu, 29 Jan 2015 23:09:51 +0000 (01:09 +0200)] 
Fix STA re-bind to another VLAN on reauthentication

Previously, the old VLAN ID could have been deleted before the STA was
bound to the new VLAN in case the RADIUS server changed the VLAN ID
during an association. This did not exactly work well with mac80211, so
reorder the operations in a way that first binds the STA to the new VLAN
ID and only after that, removes the old VLAN interface if no STAs remain
in it.

Signed-off-by: Jouni Malinen <jouni@qca.qualcomm.com>
9 years agoFree old eap_user_file data on configuration change
Jouni Malinen [Thu, 29 Jan 2015 22:54:40 +0000 (00:54 +0200)] 
Free old eap_user_file data on configuration change

This fixes a memory leak if hostapd eap_user_file parameter is modified.

Signed-off-by: Jouni Malinen <jouni@qca.qualcomm.com>
9 years agotests: PMKSA caching OOM error cases
Jouni Malinen [Thu, 29 Jan 2015 22:14:57 +0000 (00:14 +0200)] 
tests: PMKSA caching OOM error cases

Signed-off-by: Jouni Malinen <jouni@qca.qualcomm.com>
9 years agotests: hostapd OOM loop tests for WPA2-PSK and WPA2-EAP connection
Jouni Malinen [Thu, 29 Jan 2015 20:33:25 +0000 (22:33 +0200)] 
tests: hostapd OOM loop tests for WPA2-PSK and WPA2-EAP connection

These verify number of previously uncovered error paths.

Signed-off-by: Jouni Malinen <jouni@qca.qualcomm.com>
9 years agoWPA auth: Disconnect STA if MSK cannot be fetched
Jouni Malinen [Thu, 29 Jan 2015 20:31:41 +0000 (22:31 +0200)] 
WPA auth: Disconnect STA if MSK cannot be fetched

Previously, it was possible for some corner cases to leave the WPA
authenticator state machine running if PMK could not be derived. Change
this to forcefully disconnect the STA to get more consistent behavior
and faster notification of the error.

Signed-off-by: Jouni Malinen <jouni@qca.qualcomm.com>
9 years agoWPA auth: Clear temporary MSK storage from stack explicitly
Jouni Malinen [Thu, 29 Jan 2015 20:24:27 +0000 (22:24 +0200)] 
WPA auth: Clear temporary MSK storage from stack explicitly

This reduces the duration of time a key may remain unnecessarily in
memory.

Signed-off-by: Jouni Malinen <jouni@qca.qualcomm.com>
9 years agoConvert couple of remaining printf to wpa_printf in ap_list
Jouni Malinen [Thu, 29 Jan 2015 19:12:51 +0000 (21:12 +0200)] 
Convert couple of remaining printf to wpa_printf in ap_list

This type of error reporting cases should use wpa_printf() to get
consistent debug logging behavior.

Signed-off-by: Jouni Malinen <jouni@qca.qualcomm.com>
9 years agotests: OLBC AP table error cases
Jouni Malinen [Thu, 29 Jan 2015 19:11:41 +0000 (21:11 +0200)] 
tests: OLBC AP table error cases

Signed-off-by: Jouni Malinen <jouni@qca.qualcomm.com>
9 years agotests: hostapd OOM loop targeting RADIUS accounting
Jouni Malinen [Thu, 29 Jan 2015 18:52:30 +0000 (20:52 +0200)] 
tests: hostapd OOM loop targeting RADIUS accounting

The hostapd_oom_wpa2_eap test case did not always catch these code
paths, so add a variant of that test case explicitly targeting RADIUS
functions.

Signed-off-by: Jouni Malinen <jouni@qca.qualcomm.com>
9 years agotests: cfg80211 DEL_STATION issued externally to hostapd
Jouni Malinen [Thu, 29 Jan 2015 14:26:31 +0000 (16:26 +0200)] 
tests: cfg80211 DEL_STATION issued externally to hostapd

Signed-off-by: Jouni Malinen <jouni@qca.qualcomm.com>
9 years agotests: RADIUS MAC ACL and accounting enabled
Jouni Malinen [Thu, 29 Jan 2015 13:48:23 +0000 (15:48 +0200)] 
tests: RADIUS MAC ACL and accounting enabled

This ends up using the special User-Name = STA MAC address case for
Accounting-Request. In addition, add Chargeable-User-Identity for one of
the STAs.

Signed-off-by: Jouni Malinen <jouni@qca.qualcomm.com>
9 years agotests: EAP-MSCHAPv2 server out-of-memory cases
Jouni Malinen [Wed, 28 Jan 2015 14:17:25 +0000 (16:17 +0200)] 
tests: EAP-MSCHAPv2 server out-of-memory cases

Signed-off-by: Jouni Malinen <jouni@qca.qualcomm.com>
9 years agoEAP-PEAP server: Fix Phase 2 TLV length in error case
Jouni Malinen [Wed, 28 Jan 2015 14:15:58 +0000 (16:15 +0200)] 
EAP-PEAP server: Fix Phase 2 TLV length in error case

The payload length in a Phase 2 TLV message reporting error was not set
correctly. Fix this to not include the TLVs that are included only in
success case.

Signed-off-by: Jouni Malinen <jouni@qca.qualcomm.com>
9 years agotests: EAP-GTC server error cases
Jouni Malinen [Wed, 28 Jan 2015 13:59:02 +0000 (15:59 +0200)] 
tests: EAP-GTC server error cases

In addition, no-password-configured coverage extended to EAP-MD5 and
EAP-MSCHAPv2 as well.

Signed-off-by: Jouni Malinen <jouni@qca.qualcomm.com>
9 years agomesh: Create new station entry on popen frames
Bob Copeland [Tue, 27 Jan 2015 13:17:59 +0000 (08:17 -0500)] 
mesh: Create new station entry on popen frames

Currently, there is a race in open mesh networks where mesh STA A
receives a beacon from B and sends a peering open frame to initiate
peering. STA B, having not yet received a beacon from A and thus
created the corresponding station entry, will ignore all such open
frames. If the beacon interval is sufficiently long then peering
will not succeed as a result.

In fact B can simply create the station entry when the popen is
received, as is done in Linux's in-kernel MPM, avoiding the issue.

Signed-off-by: Bob Copeland <me@bobcopeland.com>
9 years agomesh: Always free the station if peering failed
Bob Copeland [Tue, 27 Jan 2015 13:17:58 +0000 (08:17 -0500)] 
mesh: Always free the station if peering failed

Previously, we would only free the station entry if a peering close
frame was received (freeing the station entry causes the kernel to
start sending peer candidate events again when suitable beacons are
received, triggering peering or authentication to restart).

The end result is the same in any case regardless of close reason:
if we leave holding state then peering has started again, so go
ahead and remove the station in all cases.

Signed-off-by: Bob Copeland <me@bobcopeland.com>
9 years agomesh: Sync plink state with kernel
Masashi Honma [Thu, 22 Jan 2015 05:22:16 +0000 (14:22 +0900)] 
mesh: Sync plink state with kernel

The plink_state exists both wpa_supplicant and kernel. Synchronize them
with wpa_mesh_set_plink_state().

Signed-off-by: Kenzoh Nishikawa <Kenzoh.Nishikawa@jp.sony.com>
Signed-off-by: Masashi Honma <masashi.honma@gmail.com>
9 years agotests: Pending EAP peer processing with VENDOR-TEST
Jouni Malinen [Tue, 27 Jan 2015 23:39:35 +0000 (01:39 +0200)] 
tests: Pending EAP peer processing with VENDOR-TEST

This extends the VENDOR-TEST EAP method peer implementation to allow
pending processing case to be selected at run time. The
ap_wpa2_eap_vendor_test test case is similarly extended to include this
option as the second case for full coverage.

Signed-off-by: Jouni Malinen <j@w1.fi>
9 years agoSimplify eapol_sm_notify_pmkid_attempt()
Jouni Malinen [Tue, 27 Jan 2015 23:26:14 +0000 (01:26 +0200)] 
Simplify eapol_sm_notify_pmkid_attempt()

Drop the unneeded 'attempt' argument. This was originally used for
indicating an aborted PMKID caching attempt, but a fix in 2006 removed
the only such user and since that time, only attempt == 1 has been used.

Signed-off-by: Jouni Malinen <j@w1.fi>
9 years agotests: EAPOL supplicant invalid frame handling
Jouni Malinen [Tue, 27 Jan 2015 15:06:26 +0000 (17:06 +0200)] 
tests: EAPOL supplicant invalid frame handling

Signed-off-by: Jouni Malinen <jouni@qca.qualcomm.com>
9 years agotests: STATUS-VERBOSE
Jouni Malinen [Tue, 27 Jan 2015 14:02:35 +0000 (16:02 +0200)] 
tests: STATUS-VERBOSE

Signed-off-by: Jouni Malinen <jouni@qca.qualcomm.com>
9 years agoAdd eap_session_id to wpa_supplicant STATUS output
Jouni Malinen [Tue, 27 Jan 2015 14:14:40 +0000 (16:14 +0200)] 
Add eap_session_id to wpa_supplicant STATUS output

This makes the current EAP Session-Id available for external programs.

Signed-off-by: Jouni Malinen <jouni@qca.qualcomm.com>
9 years agoOpenSSL: Implement aes_wrap() and aes_unwrap()
Jouni Malinen [Tue, 27 Jan 2015 11:57:59 +0000 (13:57 +0200)] 
OpenSSL: Implement aes_wrap() and aes_unwrap()

This replaces the implementation in aes-wrap.c and aes-unwrap.c with
OpenSSL AES_wrap_key() and AES_unwrap_key() functions when building
hostapd or wpa_supplicant with OpenSSL.

Signed-off-by: Jouni Malinen <jouni@qca.qualcomm.com>
9 years agoOpenSSL: Remove support for versions older than 0.9.8
Jouni Malinen [Tue, 27 Jan 2015 11:37:49 +0000 (13:37 +0200)] 
OpenSSL: Remove support for versions older than 0.9.8

These have reached out-of-life status in the OpenSSL project and there
is no need to maintain support for them in hostapd/wpa_supplicant
either.

Signed-off-by: Jouni Malinen <jouni@qca.qualcomm.com>
9 years agoOpenSSL: Use a common helper function for HMAC
Jouni Malinen [Tue, 27 Jan 2015 11:32:38 +0000 (13:32 +0200)] 
OpenSSL: Use a common helper function for HMAC

There is no need to duplicate this construction for each hash algorithm.

Signed-off-by: Jouni Malinen <jouni@qca.qualcomm.com>
9 years agoOpenSSL: Replace internal HMAC-MD5 implementation
Jouni Malinen [Tue, 27 Jan 2015 11:26:01 +0000 (13:26 +0200)] 
OpenSSL: Replace internal HMAC-MD5 implementation

Use OpenSSL HMAC_* functions to implement HMAC-MD5 instead of depending
on the src/crypto/md5.c implementation.

Signed-off-by: Jouni Malinen <jouni@qca.qualcomm.com>
9 years agoIgnore pmf=1 default if driver does not support PMF
Jouni Malinen [Mon, 26 Jan 2015 15:40:22 +0000 (17:40 +0200)] 
Ignore pmf=1 default if driver does not support PMF

Connection with a PMF enabled AP will fail if we try to negotiate PMF
while the local driver does not support this. Since pmf=1 does not
require PMF for a successful connection, it can be ignored in such a
case to avoid connectivity issues with invalid configuration. This makes
it somewhat easier to allow upper layer programs to use pmf=1 default
regardless of driver capabilities.

Signed-off-by: Jouni Malinen <j@w1.fi>
9 years agonl80211: Fix build with libnl 1.1
Jouni Malinen [Mon, 26 Jan 2015 23:50:02 +0000 (01:50 +0200)] 
nl80211: Fix build with libnl 1.1

Commit 630b3230c86abf1976a39db596c51540e57e31c8 ('nl80211: Increase
netlink receive buffer size') added unconditional use of
nl_socket_set_buffer_size() which was not included in libnl 1.1. Fix use
of that old version by making this conditional on CONFIG_LIBNL20.

Signed-off-by: Jouni Malinen <j@w1.fi>
9 years agoUpdate copyright notices for the new year 2015
Jouni Malinen [Mon, 26 Jan 2015 00:25:22 +0000 (02:25 +0200)] 
Update copyright notices for the new year 2015

Signed-off-by: Jouni Malinen <j@w1.fi>
9 years agotests: Suite B 192-bit profile
Jouni Malinen [Sun, 25 Jan 2015 11:16:06 +0000 (13:16 +0200)] 
tests: Suite B 192-bit profile

This adds a Suite B test case for 192-bit level.

Signed-off-by: Jouni Malinen <j@w1.fi>
9 years agotests: Complete Suite B 128-bit coverage
Jouni Malinen [Sat, 24 Jan 2015 20:24:10 +0000 (22:24 +0200)] 
tests: Complete Suite B 128-bit coverage

Enable BIP-GMAC-128 and enforce Suite B profile for TLS.

Signed-off-by: Jouni Malinen <j@w1.fi>
9 years agotests: Fix ft_psk_key_lifetime_in_memory with new PTK derivation debug
Jouni Malinen [Mon, 26 Jan 2015 00:07:32 +0000 (02:07 +0200)] 
tests: Fix ft_psk_key_lifetime_in_memory with new PTK derivation debug

PTK is not printed out anymore as a single entry, so fetch KCK, KEK, and
TK separately.

Signed-off-by: Jouni Malinen <j@w1.fi>
9 years agoAdd Suite B AKMs to key_mgmt capability list
Jouni Malinen [Mon, 26 Jan 2015 00:00:18 +0000 (02:00 +0200)] 
Add Suite B AKMs to key_mgmt capability list

Signed-off-by: Jouni Malinen <j@w1.fi>
9 years agoAdd Suite B 192-bit AKM
Jouni Malinen [Sun, 25 Jan 2015 21:32:01 +0000 (23:32 +0200)] 
Add Suite B 192-bit AKM

WPA-EAP-SUITE-B-192 can now be used to select 192-bit level Suite B into
use as the key management method.

Signed-off-by: Jouni Malinen <j@w1.fi>
9 years agoAdd HMAC-SHA384
Jouni Malinen [Sun, 25 Jan 2015 22:37:18 +0000 (00:37 +0200)] 
Add HMAC-SHA384

For now, this is only implemented with OpenSSL.

Signed-off-by: Jouni Malinen <j@w1.fi>
9 years agoPreparations for variable length KCK and KEK
Jouni Malinen [Sun, 25 Jan 2015 14:49:18 +0000 (16:49 +0200)] 
Preparations for variable length KCK and KEK

This modifies struct wpa_ptk to allow the length of KCK and KEK to be
stored. This is needed to allow longer keys to be used, e.g., with
Suite B 192-bit level.

Signed-off-by: Jouni Malinen <j@w1.fi>
9 years agotests: Group management frame cipher suites
Jouni Malinen [Fri, 23 Jan 2015 13:58:51 +0000 (15:58 +0200)] 
tests: Group management frame cipher suites

This extends testing coverage of PMF group management cipher suites to
include all the cases supported by the driver (existing BIP =
AES-128-CMAC and the new BIP-GMAC-128, BIP-GMAC-256, BIP-CMAC-256).

Signed-off-by: Jouni Malinen <jouni@qca.qualcomm.com>
9 years agowlantest: Extend BIP validation to support GMAC-128 and GMAC-256
Jouni Malinen [Sat, 24 Jan 2015 10:21:49 +0000 (12:21 +0200)] 
wlantest: Extend BIP validation to support GMAC-128 and GMAC-256

Signed-off-by: Jouni Malinen <j@w1.fi>
9 years agowlantest: New mgmt_group_cipher values for BSS info and debug log
Jouni Malinen [Sat, 24 Jan 2015 10:09:04 +0000 (12:09 +0200)] 
wlantest: New mgmt_group_cipher values for BSS info and debug log

This adds BIP-GMAC-128, BIP-GMAC-256, and BIP-CMAC-256 to info_bss
command and debug log.

Signed-off-by: Jouni Malinen <j@w1.fi>
9 years agowlantest: Extend BIP support to cover BIP-CMAC-256
Jouni Malinen [Fri, 23 Jan 2015 15:24:24 +0000 (17:24 +0200)] 
wlantest: Extend BIP support to cover BIP-CMAC-256

Signed-off-by: Jouni Malinen <jouni@qca.qualcomm.com>
9 years agoExtend AES-CMAC routines to support 256-bit keys
Jouni Malinen [Fri, 23 Jan 2015 14:59:33 +0000 (16:59 +0200)] 
Extend AES-CMAC routines to support 256-bit keys

omac1_aes_256() and omac1_aes_vector() can now be used to perform
256-bit CMAC operations similarly to the previously supported 128-bit
cases.

Signed-off-by: Jouni Malinen <jouni@qca.qualcomm.com>
9 years agonl80211: Fix default group key management index configuration
Jouni Malinen [Fri, 23 Jan 2015 14:47:53 +0000 (16:47 +0200)] 
nl80211: Fix default group key management index configuration

The correct nl80211 flag for group key management cipher was set only
for BIP (AES-CMAC-128). The same flag needs to be used with the newer
ciphers BIP-CMAC-256, BIP-GMAC-128, and BIP-GMAC-256.

Signed-off-by: Jouni Malinen <jouni@qca.qualcomm.com>
9 years agoShow supported group_mgmt capabilities
Jouni Malinen [Fri, 23 Jan 2015 13:57:05 +0000 (15:57 +0200)] 
Show supported group_mgmt capabilities

This extends GET_CAPABILITY command to allow the supported group
management frame cipher suites to be listed.

Signed-off-by: Jouni Malinen <jouni@qca.qualcomm.com>
9 years agoInterworking: More debug messages
Ben Greear [Mon, 12 Jan 2015 22:15:48 +0000 (14:15 -0800)] 
Interworking: More debug messages

And convert some wpa_printf to wpa_msg.

Signed-off-by: Ben Greear <greearb@candelatech.com>
9 years agoInterworking: Add logging to track nai_realm_find_eap failures
Ben Greear [Mon, 12 Jan 2015 22:15:47 +0000 (14:15 -0800)] 
Interworking: Add logging to track nai_realm_find_eap failures

There are lots of reasons we can fail to match an EAP credential, so add
logging to help determine why it is happening in various cases.

Signed-off-by: Ben Greear <greearb@candelatech.com>
9 years agoInterworking: Remove unnecessary NULL check
Jouni Malinen [Sat, 24 Jan 2015 17:36:55 +0000 (19:36 +0200)] 
Interworking: Remove unnecessary NULL check

nai_realm_find_eap() is called only in cases where the cred pointer is
not NULL.

Signed-off-by: Jouni Malinen <j@w1.fi>
9 years agohostapd: Debug messages for dodgy RADIUS servers
Ben Greear [Mon, 12 Jan 2015 22:15:45 +0000 (14:15 -0800)] 
hostapd: Debug messages for dodgy RADIUS servers

These were helpful when tracking down why hostapd did not work
properly with a RADIUS server.

Signed-hostap: Ben Greear <greearb@candelatech.com>

9 years agowpa_gui: Sort frequency and signal numerically in the scan results dialog
Adrian Nowicki [Thu, 15 Jan 2015 16:53:38 +0000 (17:53 +0100)] 
wpa_gui: Sort frequency and signal numerically in the scan results dialog

Signal strength was sorted lexically rather than numerically, which
put "-100 dBm" before "-50 dBm" if sorted in descending order.
This change fixes that. It also treats frequency in the same
manner, preparing it for the IEEE 802.11ah.

Signed-off-by: Adrian Nowicki <adinowicki@gmail.com>
9 years agotests: Make ap_wps_er_pbc_overlap more robust
Jouni Malinen [Thu, 22 Jan 2015 22:52:56 +0000 (00:52 +0200)] 
tests: Make ap_wps_er_pbc_overlap more robust

Reorder scanning in a way that allows the ER behavior to be more
predictable. The first Probe Request report is for a previously received
frame on the AP and this new sequence avoids leaving either of the PBC
test STAs to be that one.

Signed-off-by: Jouni Malinen <j@w1.fi>
9 years agotests: Make active scans more robust
Jouni Malinen [Thu, 22 Jan 2015 20:38:38 +0000 (22:38 +0200)] 
tests: Make active scans more robust

This makes testing under very heavy load or under extensive kernel
debugging options more robust by allowing number of test cases to scan
multiple times before giving up on active scans. The main reason for
many of the related test failures is in Probe Response frame from
hostapd not getting out quickly enough especially when multiple BSSes
are operating.

Signed-off-by: Jouni Malinen <j@w1.fi>
9 years agotests: P2P group formation using PBC multiple times in a row
Jouni Malinen [Thu, 22 Jan 2015 18:53:03 +0000 (20:53 +0200)] 
tests: P2P group formation using PBC multiple times in a row

This verifies that PBC session overlap detection does not get indicated
when forming the group with the same peer multiple times.

Signed-off-by: Jouni Malinen <jouni@qca.qualcomm.com>
9 years agoAdd passive_scan configuration parameter
Jouni Malinen [Thu, 22 Jan 2015 18:50:01 +0000 (20:50 +0200)] 
Add passive_scan configuration parameter

This new wpa_supplicant configuration parameter can be used to force
passive scanning to be used for most scanning cases at the cost of
increased latency and less reliably scans. This may be of use for both
testing purposes and somewhat increased privacy due to no Probe Request
frames with fixed MAC address being sent out.

Signed-off-by: Jouni Malinen <jouni@qca.qualcomm.com>
9 years agotests: P2P_SERV_DISC_CANCEL_REQ during query
Jouni Malinen [Thu, 22 Jan 2015 13:55:36 +0000 (15:55 +0200)] 
tests: P2P_SERV_DISC_CANCEL_REQ during query

This is a regression test case for a specific sequence that could result
in wpa_supplicant NULL dereference when a SD request is cancelled before
the SD Request TX status callback has been processed.

Signed-off-by: Jouni Malinen <jouni@qca.qualcomm.com>
9 years agoP2P: Fix NULL pointer dereference with SD query cancellation
Ola Olsson [Tue, 20 Jan 2015 09:45:52 +0000 (10:45 +0100)] 
P2P: Fix NULL pointer dereference with SD query cancellation

A NULL pointer crash was caused by commit
7139cf4a4f1fecfd03d0daff9bb33adb80cc3530 ('P2P: Decrement
sd_pending_bcast_queries when sd returns'). p2p->sd_query can be cleared
to NULL whenever a query is cancelled, even in case the request had
already been transmitted. As such, need to be prepared for the query not
remaining when processing TX status callback for the frame.

Crashes on 2ee98 in following code
2ee90:       f7fc f8b6       bl      2b000 <p2p_dbg>
2ee94:       e02c            b.n     2eef0 <p2p_send_action_cb+0x348>
2ee96:       6c25            ldr     r5, [r4, #64]   ; 0x40
2ee98:       68ee            ldr     r6, [r5, #12]
2ee9a:       b166            cbz     r6, 2eeb6 <p2p_send_action_cb+0x30e>

Signed-off-by: Ola Olsson <ola.olsson@sonymobile.com>
9 years agonl80211: Increase netlink receive buffer size
Jouni Malinen [Thu, 22 Jan 2015 11:51:15 +0000 (13:51 +0200)] 
nl80211: Increase netlink receive buffer size

libnl uses a pretty small buffer (32 kB that gets converted to 64 kB) by
default. It is possible to hit that limit in some cases where operations
are blocked, e.g., with a burst of Deauthentication frames to hostapd
and STA entry deletion. Try to increase the buffer to make this less
likely to occur.

Signed-off-by: Jouni Malinen <jouni@qca.qualcomm.com>
9 years agotests: ANQP-QUERY-DONE event
Jouni Malinen [Mon, 19 Jan 2015 23:41:48 +0000 (01:41 +0200)] 
tests: ANQP-QUERY-DONE event

Signed-off-by: Jouni Malinen <j@w1.fi>
9 years agoInterworking: Notify the ANQP parsing status
ASHUTOSH NARAYAN [Mon, 19 Jan 2015 01:45:02 +0000 (20:45 -0500)] 
Interworking: Notify the ANQP parsing status

The ANQP verification/parsing is done only after the GAS_DONE indication
is sent over the control interface. This means that in case the ANQP
parsing fails there is no indication to the upper layers. Add an
ANQP-QUERY-DONE event that reports the status of the ANQP parsing.

Signed-off-by: ASHUTOSH NARAYAN <ashutoshx.narayan@intel.com>
9 years agoHS20: Provide appropriate permission to the OSU related files
ASHUTOSH NARAYAN [Mon, 19 Jan 2015 01:45:01 +0000 (20:45 -0500)] 
HS20: Provide appropriate permission to the OSU related files

The icon files and the osu-providers.txt that are generated may not have
proper permission for external programs to access. Set the access
permissions to the same as the permissions for osu_dir.

Signed-off-by: ASHUTOSH NARAYAN <ashutoshx.narayan@intel.com>
9 years agoHS20: Fix TrustRoot path for PolicyUpdate node in PPS MO
ASHUTOSH NARAYAN [Mon, 19 Jan 2015 01:45:00 +0000 (20:45 -0500)] 
HS20: Fix TrustRoot path for PolicyUpdate node in PPS MO

Incorrect TrustRoot path "PolicyUpdate/TrustRoot" was used. The
TrustRoot path is required to be "Policy/PolicyUpdate/TrustRoot" as
defined in Section 9.1 of Hotspot 2.0 (Release 2) specification. Fix the
path to "Policy/PolicyUpdate/TrustRoot".

Signed-off-by: ASHUTOSH NARAYAN <ashutoshx.narayan@intel.com>
9 years agoHS20: Return result of cmd_sub_rem in hs20-osu-client
ASHUTOSH NARAYAN [Mon, 19 Jan 2015 01:44:59 +0000 (20:44 -0500)] 
HS20: Return result of cmd_sub_rem in hs20-osu-client

Previously, both failure and success cases used same return value 0.
Indicate failures differently to make hs20-osu-client return value more
useful for subscription remediation cases.

Signed-off-by: ASHUTOSH NARAYAN <ashutoshx.narayan@intel.com>
9 years agoWNM: Fix possible memory leak by free buf
Haim Dreyfuss [Mon, 19 Jan 2015 01:44:39 +0000 (20:44 -0500)] 
WNM: Fix possible memory leak by free buf

Buf is allocated and may not be freed on an error path.

Signed-off-by: Haim Dreyfuss <haim.dreyfuss@intel.com>
9 years agoEAP: Fix possible memory leak in eap_ttls_process_decrypted()
Ben [Mon, 19 Jan 2015 01:44:38 +0000 (20:44 -0500)] 
EAP: Fix possible memory leak in eap_ttls_process_decrypted()

In case eap_peer_tls_encrypt() fails in eap_ttls_process_decrypted(),
free resp memory.

Signed-off-by: Ben Rosenfeld <ben.rosenfeld@intel.com>
9 years agoeap_server: Avoid NULL pointer dereference in eap_fast_encrypt_phase2()
Haim Dreyfuss [Mon, 19 Jan 2015 01:44:37 +0000 (20:44 -0500)] 
eap_server: Avoid NULL pointer dereference in eap_fast_encrypt_phase2()

If TLS encryption fails, encr may be NULL and that would have resulted
in NULL pointer dereference..

Signed-off-by: Haim Dreyfuss <haim.dreyfuss@intel.com>
9 years agohostapd: Remove unused variable from hostapd_get_hw_features
Avraham Stern [Mon, 19 Jan 2015 01:44:36 +0000 (20:44 -0500)] 
hostapd: Remove unused variable from hostapd_get_hw_features

Signed-off-by: Avraham Stern <avraham.stern@intel.com>
9 years agoFix memory leak in wpa_supplicant global bgscan configuration
Ilan Peer [Mon, 19 Jan 2015 01:44:35 +0000 (20:44 -0500)] 
Fix memory leak in wpa_supplicant global bgscan configuration

Global bgscan configuration parameter was not freed when config was
freed.

Signed-off-by: Ilan Peer <ilan.peer@intel.com>
9 years agowpa_cli: Fix NULL dereference on printf string argument
Eytan Lifshitz [Mon, 19 Jan 2015 04:57:30 +0000 (23:57 -0500)] 
wpa_cli: Fix NULL dereference on printf string argument

In wpa_cli_cmd_interface(), try_connection(), and main(), ctrl_ifname
may be NULL and could be dereferenced depending on the printf()
implementation.

Signed-off-by: Eytan Lifshitz <eytan.lifshitz@intel.com>
9 years agoAvoid NULL string in printf on EAP method names in authenticator
Eytan Lifshitz [Mon, 19 Jan 2015 04:56:43 +0000 (23:56 -0500)] 
Avoid NULL string in printf on EAP method names in authenticator

In ieee802_1x_decapsulate_radius(), eap_server_get_name() may return
NULL, and it could be dereferenced depending on printf implementation.
Change it to return "unknown" instead for the case of no matching EAP
method found. This makes it easier for the callers to simply print this
in logs (which is the only use for this function).

Signed-off-by: Eytan Lifshitz <eytan.lifshitz@intel.com>
9 years agoP2P: Stop p2p_listen/find on wpas_p2p_invite
Ilan Peer [Mon, 19 Jan 2015 01:44:12 +0000 (20:44 -0500)] 
P2P: Stop p2p_listen/find on wpas_p2p_invite

Stop any ongoing P2P listen/find flow before starting invitation flow.
This was partially handled in p2p_invite() that called p2p_find(), but
this did not cleanly handle cases such as long_listen.

Signed-off-by: Ilan Peer <ilan.peer@intel.com>
9 years agonl80211: Fix reading of the extended capabilities mask
Luciano Coelho [Mon, 19 Jan 2015 01:44:11 +0000 (20:44 -0500)] 
nl80211: Fix reading of the extended capabilities mask

We were copying the NL80211_ATTR_EXT_CAPA attribute into the
extended_capa_mask element, which is incorrect. Use
NL80211_ATTR_EXT_CAPA_MASK instead.

Signed-off-by: Luciano Coelho <luciano.coelho@intel.com>
9 years agoP2P: Use the correct wpa_s interface to handle P2P state flush
Ilan Peer [Mon, 19 Jan 2015 01:44:10 +0000 (20:44 -0500)] 
P2P: Use the correct wpa_s interface to handle P2P state flush

A control interface call to flush the current state used the
current wpa_s to clear the P2P state even though it might not
be the interface controlling the P2P state.

Fix it by using the correct interface to flush the P2P state.

Signed-off-by: Ilan Peer <ilan.peer@intel.com>
9 years agoAP: Enable HT Tx STBC for AP/GO if supported by driver
Eyal Shapira [Mon, 19 Jan 2015 01:44:09 +0000 (20:44 -0500)] 
AP: Enable HT Tx STBC for AP/GO if supported by driver

Publish support for Tx STBC in the HT capabilities of a GO and AP
controlled by wpa_supplicant in case the hardware supports it.

Signed-off-by: Eyal Shapira <eyalx.shapira@intel.com>
9 years agoMove external_scan_running to wpa_radio
Ben Rosenfeld [Mon, 19 Jan 2015 01:44:08 +0000 (20:44 -0500)] 
Move external_scan_running to wpa_radio

external_scan_running should be common to all interfaces that share a
radio. This fixes a case where external_scan_running was set on a single
interface, but did not block scan on other interfaces.

Signed-off-by: Ben Rosenfeld <ben.rosenfeld@intel.com>
9 years agoClear reattach flag in fast associate flow
Ben [Mon, 19 Jan 2015 01:44:07 +0000 (20:44 -0500)] 
Clear reattach flag in fast associate flow

Clear the reattach flags, in case a connection request did not trigger a
scan. This needs to be done to avoid leaving the reattach flag set for
the next scan operation which may not have anything to do with the
specific request that could have been optimized using the single-channel
single-SSID scan.

Signed-off-by: Ben <ben.rosenfeld@intel.com>
9 years agoNFC: Redirect NFC commands on global control interface
David Spinadel [Mon, 19 Jan 2015 01:44:06 +0000 (20:44 -0500)] 
NFC: Redirect NFC commands on global control interface

Redirect NFC commands from global control interface to P2P device
interface.

Signed-off-by: David Spinadel <david.spinadel@intel.com>
9 years agotests: P2P NFC invitiation with driver using cfg80211 P2P Device
Jouni Malinen [Mon, 19 Jan 2015 23:57:20 +0000 (01:57 +0200)] 
tests: P2P NFC invitiation with driver using cfg80211 P2P Device

Signed-off-by: Jouni Malinen <j@w1.fi>
9 years agoP2P: Fix P2P invitation with NFC
David Spinadel [Mon, 19 Jan 2015 01:44:05 +0000 (20:44 -0500)] 
P2P: Fix P2P invitation with NFC

Use interface's own NFC configuration instead of parent's one
to support a P2P device dedicated interface.

Signed-off-by: David Spinadel <david.spinadel@intel.com>
9 years agoWNM: Fix the length of WNM_BSS_QUERY control interface command
Matti Gottlieb [Mon, 19 Jan 2015 01:44:04 +0000 (20:44 -0500)] 
WNM: Fix the length of WNM_BSS_QUERY control interface command

The length should be 14 and not 10.
The current situation causes failure during parsing of the command.

Signed-off-by: Matti Gottlieb <matti.gottlieb@intel.com>
9 years agotests: Error handling for scan trigger failure cases
Jouni Malinen [Mon, 19 Jan 2015 18:12:38 +0000 (20:12 +0200)] 
tests: Error handling for scan trigger failure cases

Signed-off-by: Jouni Malinen <jouni@qca.qualcomm.com>
9 years agoRetry scan-for-connect if driver trigger fails
Jouni Malinen [Mon, 19 Jan 2015 18:10:00 +0000 (20:10 +0200)] 
Retry scan-for-connect if driver trigger fails

This restores some of the pre-radio work behavior for scanning by
retrying scan trigger if the driver rejects it (most likely returning
EBUSY in case of nl80211-drivers). Retry is indicated in the
CTRL-EVENT-SCAN-FAILED event with "retry=1".

For manual scans (e.g., triggered through "SCAN" control interface
command), no additional retries are performed. In other words, if upper
layers want to retry, they can do so based on the CTRL-EVENT-SCAN-FAILED
event.

Signed-off-by: Jouni Malinen <jouni@qca.qualcomm.com>
9 years agoAdd a test framework for various wpa_supplicant failure cases
Jouni Malinen [Mon, 19 Jan 2015 17:34:00 +0000 (19:34 +0200)] 
Add a test framework for various wpa_supplicant failure cases

For CONFIG_TESTING_OPTIONS=y builds, add a new test parameter than can
be used to trigger various error cases within wpa_supplicant operations
to make it easier to test error path processing. "SET test_failure
<val>" is used to set which operation fails. For now, 0 = no failures
and 1 = scan trigger fails with EBUSY. More operations can be added in
the future to extend coverage.

Signed-off-by: Jouni Malinen <jouni@qca.qualcomm.com>
9 years agotests: WPS registrar learning configuration from WPA+WPA2 AP
Jouni Malinen [Mon, 19 Jan 2015 16:39:13 +0000 (18:39 +0200)] 
tests: WPS registrar learning configuration from WPA+WPA2 AP

Signed-off-by: Jouni Malinen <jouni@qca.qualcomm.com>
9 years agoWPS: Re-fix an interoperability issue with mixed mode and AP Settings
Jouni Malinen [Mon, 19 Jan 2015 16:35:59 +0000 (18:35 +0200)] 
WPS: Re-fix an interoperability issue with mixed mode and AP Settings

Commit ce7b56afab8e6065e886b9471fa8071c8d2bd66b ('WPS: Fix an
interoperability issue with mixed mode and AP Settings') added code to
filter M7 Authentication/Encryption Type attributes into a single bit
value in mixed mode (WPA+WPA2) cases to work around issues with Windows
7. This workaround was lost in commit
d7a15d5953beb47964526aa17b4dc2e9b2985fc1 ('WPS: Indicate current AP
settings in M7 in unconfigurated state') that fixed unconfigured state
values in AP Settings, but did not take into account the earlier
workaround for mixed mode.

Re-introduce filtering of Authentication/Encryption Type attributes for
M7 based on the current AP configuration. In other words, merge those
two earlier commits together to include both the earlier workaround the
newer fix.

Signed-off-by: Jouni Malinen <jouni@qca.qualcomm.com>
9 years agoACS: Allow subset of channels to be configured
Adrien Decostre [Mon, 12 Jan 2015 07:57:17 +0000 (08:57 +0100)] 
ACS: Allow subset of channels to be configured

Add the possibility to define a subset of channels used by the ACS
engine when not operating on DFS channels.

Signed-off-by: Adrien Decostre <ad.decostre@gmail.com>
9 years agonl80211: Allow HT/VHT to be disabled for IBSS
Janusz Dziedzic [Tue, 13 Jan 2015 08:55:52 +0000 (09:55 +0100)] 
nl80211: Allow HT/VHT to be disabled for IBSS

Allow HT/VHT overrides to be used for IBSS.

Signed-off-by: Janusz Dziedzic <janusz.dziedzic@tieto.com>