]> git.ipfire.org Git - thirdparty/hostap.git/log
thirdparty/hostap.git
4 years agotests: EAP-SIM DB error cases (SQLite)
Jouni Malinen [Sun, 7 Mar 2021 15:58:14 +0000 (17:58 +0200)] 
tests: EAP-SIM DB error cases (SQLite)

Signed-off-by: Jouni Malinen <j@w1.fi>
4 years agotests: DPP NFC with hostapd
Jouni Malinen [Sun, 7 Mar 2021 15:32:44 +0000 (17:32 +0200)] 
tests: DPP NFC with hostapd

Signed-off-by: Jouni Malinen <j@w1.fi>
4 years agotests: DPP chirp with an AP as a standalone Configurator
Jouni Malinen [Sun, 7 Mar 2021 11:18:01 +0000 (13:18 +0200)] 
tests: DPP chirp with an AP as a standalone Configurator

Signed-off-by: Jouni Malinen <j@w1.fi>
4 years agotests: DPP PKEX errors with hostapd
Jouni Malinen [Sun, 7 Mar 2021 11:12:37 +0000 (13:12 +0200)] 
tests: DPP PKEX errors with hostapd

Signed-off-by: Jouni Malinen <j@w1.fi>
4 years agotests: DPP chirp errors in hostapd
Jouni Malinen [Sun, 7 Mar 2021 11:02:59 +0000 (13:02 +0200)] 
tests: DPP chirp errors in hostapd

Signed-off-by: Jouni Malinen <j@w1.fi>
4 years agotests: DPP Controller management in hostapd
Jouni Malinen [Sun, 7 Mar 2021 10:57:25 +0000 (12:57 +0200)] 
tests: DPP Controller management in hostapd

Signed-off-by: Jouni Malinen <j@w1.fi>
4 years agotests: Invalid DAC_REQUEST values
Jouni Malinen [Sun, 7 Mar 2021 10:46:38 +0000 (12:46 +0200)] 
tests: Invalid DAC_REQUEST values

Signed-off-by: Jouni Malinen <j@w1.fi>
4 years agotests: hostapd ATTACH errors
Jouni Malinen [Sun, 7 Mar 2021 10:41:16 +0000 (12:41 +0200)] 
tests: hostapd ATTACH errors

Signed-off-by: Jouni Malinen <j@w1.fi>
4 years agotests: hostapd PMKSA_ADD failures
Jouni Malinen [Sun, 7 Mar 2021 10:34:32 +0000 (12:34 +0200)] 
tests: hostapd PMKSA_ADD failures

Signed-off-by: Jouni Malinen <j@w1.fi>
4 years agoFix hostapd PMKSA_ADD with Authenticator disabled
Jouni Malinen [Sun, 7 Mar 2021 10:33:30 +0000 (12:33 +0200)] 
Fix hostapd PMKSA_ADD with Authenticator disabled

This function can get called with hapd->wpa_auth == NULL from the
control interface handler, so explicitly check for that.

Signed-off-by: Jouni Malinen <j@w1.fi>
4 years agotests: EAPOL/key config test command failures
Jouni Malinen [Sun, 7 Mar 2021 10:25:38 +0000 (12:25 +0200)] 
tests: EAPOL/key config test command failures

Signed-off-by: Jouni Malinen <j@w1.fi>
4 years agotests: hostapd GET_CAPABILITY
Jouni Malinen [Sun, 7 Mar 2021 10:14:54 +0000 (12:14 +0200)] 
tests: hostapd GET_CAPABILITY

Signed-off-by: Jouni Malinen <j@w1.fi>
4 years agotests: ADD_MAC/DEL_MAC special cases
Jouni Malinen [Sun, 7 Mar 2021 10:11:56 +0000 (12:11 +0200)] 
tests: ADD_MAC/DEL_MAC special cases

Signed-off-by: Jouni Malinen <j@w1.fi>
4 years agotests: Additional invalid SET_NEIGHBOR coverage
Jouni Malinen [Sun, 7 Mar 2021 10:08:02 +0000 (12:08 +0200)] 
tests: Additional invalid SET_NEIGHBOR coverage

Signed-off-by: Jouni Malinen <j@w1.fi>
4 years agotests: hostapd ctrl_iface SHOW_NEIGHBOR while neighbor report disabled
Jouni Malinen [Sun, 7 Mar 2021 10:05:09 +0000 (12:05 +0200)] 
tests: hostapd ctrl_iface SHOW_NEIGHBOR while neighbor report disabled

Signed-off-by: Jouni Malinen <j@w1.fi>
4 years agotests: Additional invalid REQ_BEACON cases
Jouni Malinen [Sun, 7 Mar 2021 10:02:46 +0000 (12:02 +0200)] 
tests: Additional invalid REQ_BEACON cases

Signed-off-by: Jouni Malinen <j@w1.fi>
4 years agotests: VENDOR command
Jouni Malinen [Sun, 7 Mar 2021 09:51:54 +0000 (11:51 +0200)] 
tests: VENDOR command

Signed-off-by: Jouni Malinen <j@w1.fi>
4 years agotests: VHT CSA with VHT80+80 getting enabled
Jouni Malinen [Sat, 6 Mar 2021 23:42:48 +0000 (01:42 +0200)] 
tests: VHT CSA with VHT80+80 getting enabled

Signed-off-by: Jouni Malinen <j@w1.fi>
4 years agoUpdate VHT capabilities info on channel switch event
Jouni Malinen [Sat, 6 Mar 2021 23:35:25 +0000 (01:35 +0200)] 
Update VHT capabilities info on channel switch event

This is needed to be able to move from 80 MHz or lower bandwidth to 160
or 80+80 MHz bandwidth (and back) properly without leaving the Beacon
frame VHT elements showing incorrect information.

Signed-off-by: Jouni Malinen <j@w1.fi>
4 years agonl80211: Determine secondary channel offset for CS to 80+80 MHz
Jouni Malinen [Sat, 6 Mar 2021 23:21:12 +0000 (01:21 +0200)] 
nl80211: Determine secondary channel offset for CS to 80+80 MHz

Signed-off-by: Jouni Malinen <j@w1.fi>
4 years agonl80211: Debug print for channel switch request parameters
Jouni Malinen [Sat, 6 Mar 2021 23:11:18 +0000 (01:11 +0200)] 
nl80211: Debug print for channel switch request parameters

These can be helpful for debugging channel switch issues.

Signed-off-by: Jouni Malinen <j@w1.fi>
4 years agonl80211: Add command-to-string mapping for previously missed commands
Jouni Malinen [Sat, 6 Mar 2021 23:06:00 +0000 (01:06 +0200)] 
nl80211: Add command-to-string mapping for previously missed commands

In addition, make the compiler warn if a new enum value is added without
defining the matching mapping to a string.

Signed-off-by: Jouni Malinen <j@w1.fi>
4 years agoMore specific set_freq_params debug prints for 80/80+80 MHz errors
Jouni Malinen [Sat, 6 Mar 2021 22:54:36 +0000 (00:54 +0200)] 
More specific set_freq_params debug prints for 80/80+80 MHz errors

It is more convenient to see the exact error in the debug log instead of
getting noted that something was invalid.

Signed-off-by: Jouni Malinen <j@w1.fi>
4 years agotests: VHT CSA with invalid parameters
Jouni Malinen [Sat, 6 Mar 2021 15:02:38 +0000 (17:02 +0200)] 
tests: VHT CSA with invalid parameters

Signed-off-by: Jouni Malinen <j@w1.fi>
4 years agotests: Additional GET_PMK coverage
Jouni Malinen [Sat, 6 Mar 2021 14:33:03 +0000 (16:33 +0200)] 
tests: Additional GET_PMK coverage

Signed-off-by: Jouni Malinen <j@w1.fi>
4 years agonl80211: Use process_bss_event() for the nl_connect handler
Avraham Stern [Wed, 17 Feb 2021 10:14:33 +0000 (12:14 +0200)] 
nl80211: Use process_bss_event() for the nl_connect handler

The nl_connect is initialized with the process_bss_event() handler.
However, it is used several times with the default valid handler. As a
result, if a message that is only valid for process_bss_event() is
received while the default handler is used, it will be dropped.

This has been observed in a case where during the 4-way handshake, a
Beacon frame is received on the AP side, which triggers a beacon update,
just before receiving the next EAPOL. When send_and_recv_msgs_owner() is
called for sending the NL80211_CMD_SET_BEACON command, the
NL80211_CMD_CONTROL_PORT_FRAME event is already pending. As a result, it
is received with the default handler, which drops it. Since the EAPOL
frame is dropped, the connection attempt fails.

Fix it by using the process_bss_event() handler when the nl_connect
handler is used.

Signed-off-by: Avraham Stern <avraham.stern@intel.com>
4 years agotests: IGTK and BIGTK replay protection
Jouni Malinen [Sat, 6 Mar 2021 10:41:05 +0000 (12:41 +0200)] 
tests: IGTK and BIGTK replay protection

Signed-off-by: Jouni Malinen <j@w1.fi>
4 years agotests: Invalid MGMT_TX_STATUS_PROCESS
Jouni Malinen [Sat, 6 Mar 2021 10:14:07 +0000 (12:14 +0200)] 
tests: Invalid MGMT_TX_STATUS_PROCESS

Signed-off-by: Jouni Malinen <j@w1.fi>
4 years agotests: RELOAD_WPA_PSK failure
Jouni Malinen [Sat, 6 Mar 2021 10:10:29 +0000 (12:10 +0200)] 
tests: RELOAD_WPA_PSK failure

Signed-off-by: Jouni Malinen <j@w1.fi>
4 years agoDPP: Clear hapd->gas pointer on deinit
Jouni Malinen [Sat, 6 Mar 2021 09:56:00 +0000 (11:56 +0200)] 
DPP: Clear hapd->gas pointer on deinit

While it does not look like the stale pointer could have been
dereferenced in practice, it is better not to leave the stale pointer to
freed memory in place to avoid accidental uses.

Signed-off-by: Jouni Malinen <j@w1.fi>
4 years agotests: hapd->tmp_eap_user clearing on interface deinit/reinit
Jouni Malinen [Sat, 6 Mar 2021 09:45:48 +0000 (11:45 +0200)] 
tests: hapd->tmp_eap_user clearing on interface deinit/reinit

Signed-off-by: Jouni Malinen <j@w1.fi>
4 years agoSQLite: Fix temporary eap_user data freeing on interface restart
Jouni Malinen [Sat, 6 Mar 2021 09:44:38 +0000 (11:44 +0200)] 
SQLite: Fix temporary eap_user data freeing on interface restart

hapd->tmp_eap_user needs to be cleared on interface deinit to avoid
leaving stale pointers to freed memory.

Fixes: ee431d77a51b ("Add preliminary support for using SQLite for eap_user database")
Signed-off-by: Jouni Malinen <j@w1.fi>
4 years agotests: WNM time advertisement and interface restart
Jouni Malinen [Sat, 6 Mar 2021 09:38:18 +0000 (11:38 +0200)] 
tests: WNM time advertisement and interface restart

Signed-off-by: Jouni Malinen <j@w1.fi>
4 years agoFix use after free with hapd->time_adv on interface restart
Michael Braun [Mon, 1 Mar 2021 21:27:46 +0000 (23:27 +0200)] 
Fix use after free with hapd->time_adv on interface restart

When an interface is disabled, e.g. due to radar detected,
hapd->time_adv is freed by hostapd_free_hapd_data(), but later
used by ieee802_11_build_ap_params() calling hostapd_eid_time_adv().

Thus hapd->time_adv needs to be cleared as well.

Fixes: 39b97072b2a4 ("Add support for Time Advertisement")
Signed-off-by: Michael Braun <michael-dev@fami-braun.de>
4 years agoAdd a link to Patchwork for a list of pending patches
Jouni Malinen [Sat, 6 Mar 2021 09:26:20 +0000 (11:26 +0200)] 
Add a link to Patchwork for a list of pending patches

Signed-off-by: Jouni Malinen <j@w1.fi>
4 years agotests: Roam command during a scan operation
Jouni Malinen [Sat, 6 Mar 2021 09:01:29 +0000 (11:01 +0200)] 
tests: Roam command during a scan operation

Signed-off-by: Jouni Malinen <j@w1.fi>
4 years agoReject authentication start during explicit roam requests
Matthew Wang [Sat, 6 Mar 2021 01:43:44 +0000 (17:43 -0800)] 
Reject authentication start during explicit roam requests

The roam D-Bus and ROAM control itnerface commands flip the reassociate
bit before calling wpa_supplicant_connect(). wpa_supplicant connect
eventually aborts ongoing scans (if any), which causes scan results to
be reported. Since the reassociate bit is set, this will trigger a
connection attempt based on the aborted scan's scan results and cancel
the initial connetion request. This often causes wpa_supplicant to
reassociate to the same AP it is currently associated to instead of the
explicitly requested roaming target.

Add a roam_in_progress flag to indicate that we're currently attempting
to roam via an explicitly request to a specific BSS so that we don't
initiate another connection attempt based on the possibly received scan
results from a scan that was in progress at the time the roam command
was received.

Signed-off-by: Matthew Wang <matthewmwang@chromium.org>
4 years agoQCA vendor attribute to allow 6 GHz connection with all security types
Kiran Kumar Lokere [Mon, 1 Mar 2021 22:56:09 +0000 (14:56 -0800)] 
QCA vendor attribute to allow 6 GHz connection with all security types

Add a QCA vendor attribute to configure the driver to allow the 6 GHz
connection with all security types. This attribute is used for testing
purposes.

Signed-off-by: Jouni Malinen <jouni@codeaurora.org>
4 years agoQCA vendor attribute to ignore SAE H2E requirement mismatch
Kiran Kumar Lokere [Mon, 1 Mar 2021 22:13:57 +0000 (14:13 -0800)] 
QCA vendor attribute to ignore SAE H2E requirement mismatch

Add a QCA vendor attribute to ignore SAE H2E requirement mismatch for 6
GHz connection. This attribute is used for testing purposes.

Signed-off-by: Jouni Malinen <jouni@codeaurora.org>
4 years agowpaspy: Do not mark not-existing UNIX domain socket as UDP
Jouni Malinen [Mon, 1 Mar 2021 10:51:20 +0000 (12:51 +0200)] 
wpaspy: Do not mark not-existing UNIX domain socket as UDP

os.stat(path) failure is an ambigious indication of the control
interface "path" type (UDP hostname vs. UNIX domain socket path). The
path may be a valid UNIX domain socket path, but that socket could have
been removed just before reaching here. At least the hwsim test case
concurrent_p2pcli managed to hit the "connect exception" print below
from UDP handling even when using a UNIX domain socket.

Work around incorrect determination of control interface socket type by
assuming anything starting with '/' is a UNIX domain socket and not a
hostname.

Fixes: a2c88a8025b2 ("wpaspy: Add support for UDP connection")
Signed-off-by: Jouni Malinen <jouni@codeaurora.org>
4 years agotests: Fix openssl_systemwide_policy cleanup
Jouni Malinen [Mon, 1 Mar 2021 10:34:05 +0000 (12:34 +0200)] 
tests: Fix openssl_systemwide_policy cleanup

Need to close the WpaSupplicant instance on the extra radio before
returning from this test case since that interface is going to be
removed and WpaSupplicant.__del__() can time out on trying to detach the
monitor connection after that.

Signed-off-by: Jouni Malinen <jouni@codeaurora.org>
4 years agoUpdate old link to ACS wiki documentation
Nikolas Nyby [Mon, 1 Mar 2021 04:19:26 +0000 (23:19 -0500)] 
Update old link to ACS wiki documentation

The old links here were broken.

Signed-off-by: Nikolas Nyby <nikolas@gnu.org>
4 years agotests: hostapd RELOAD with invalid configuration
Jouni Malinen [Mon, 1 Mar 2021 09:13:46 +0000 (11:13 +0200)] 
tests: hostapd RELOAD with invalid configuration

Signed-off-by: Jouni Malinen <jouni@codeaurora.org>
4 years agotests: OCV override in FT Reassociation Response
Jouni Malinen [Sun, 28 Feb 2021 21:29:26 +0000 (23:29 +0200)] 
tests: OCV override in FT Reassociation Response

Signed-off-by: Jouni Malinen <j@w1.fi>
4 years agoOCV: Fix OCV-FAILURE event address for FT Reassociation Response frame
Jouni Malinen [Sun, 28 Feb 2021 21:27:13 +0000 (23:27 +0200)] 
OCV: Fix OCV-FAILURE event address for FT Reassociation Response frame

sm->bssid is still the BSSID of the previous AP at this point in the FT
protocol, so need to show the target AP's BSSID instead in the failure
message.

Fixes: 8c1f61e820d6 ("OCV: Report OCI validation failures with OCV-FAILURE messages (STA)")
Signed-off-by: Jouni Malinen <j@w1.fi>
4 years agotests: OCV override in FILS Association Response
Jouni Malinen [Sun, 28 Feb 2021 21:16:11 +0000 (23:16 +0200)] 
tests: OCV override in FILS Association Response

Signed-off-by: Jouni Malinen <j@w1.fi>
4 years agotests: Move ERP/FILS capability checks to utils.py
Jouni Malinen [Sun, 28 Feb 2021 21:15:57 +0000 (23:15 +0200)] 
tests: Move ERP/FILS capability checks to utils.py

Signed-off-by: Jouni Malinen <j@w1.fi>
4 years agotests: WMM parameter update failing during beacon template update
Jouni Malinen [Sun, 28 Feb 2021 20:58:24 +0000 (22:58 +0200)] 
tests: WMM parameter update failing during beacon template update

Signed-off-by: Jouni Malinen <j@w1.fi>
4 years agotests: DPP config overrides in hostapd
Jouni Malinen [Sun, 28 Feb 2021 20:48:00 +0000 (22:48 +0200)] 
tests: DPP config overrides in hostapd

Signed-off-by: Jouni Malinen <j@w1.fi>
4 years agotests: hostapd and setband
Jouni Malinen [Sun, 28 Feb 2021 20:40:43 +0000 (22:40 +0200)] 
tests: hostapd and setband

Signed-off-by: Jouni Malinen <j@w1.fi>
4 years agotests: wpa_deny_ptk0_rekey in hostapd GET_CONFIG
Jouni Malinen [Sun, 28 Feb 2021 19:07:55 +0000 (21:07 +0200)] 
tests: wpa_deny_ptk0_rekey in hostapd GET_CONFIG

Signed-off-by: Jouni Malinen <j@w1.fi>
4 years agotests: hostapd GET_CONFIG entries for Multi-AP
Jouni Malinen [Sun, 28 Feb 2021 19:00:06 +0000 (21:00 +0200)] 
tests: hostapd GET_CONFIG entries for Multi-AP

Signed-off-by: Jouni Malinen <j@w1.fi>
4 years agotests: Additional coverage for hostapd GET_CONFIG key_mgmt values
Jouni Malinen [Sun, 28 Feb 2021 18:47:37 +0000 (20:47 +0200)] 
tests: Additional coverage for hostapd GET_CONFIG key_mgmt values

Signed-off-by: Jouni Malinen <j@w1.fi>
4 years agotests: Invalid COLOC_INTF_REQ parameters
Jouni Malinen [Sun, 28 Feb 2021 18:40:47 +0000 (20:40 +0200)] 
tests: Invalid COLOC_INTF_REQ parameters

Signed-off-by: Jouni Malinen <j@w1.fi>
4 years agotests: WPS status "Timed-out" from hostapd
Jouni Malinen [Sun, 28 Feb 2021 18:37:09 +0000 (20:37 +0200)] 
tests: WPS status "Timed-out" from hostapd

Signed-off-by: Jouni Malinen <j@w1.fi>
4 years agotests: WPS PBC overlap indication from hostapd
Jouni Malinen [Sun, 28 Feb 2021 18:34:42 +0000 (20:34 +0200)] 
tests: WPS PBC overlap indication from hostapd

Signed-off-by: Jouni Malinen <j@w1.fi>
4 years agotests: Additional coverage for WPS_AP_PIN error case
Jouni Malinen [Sun, 28 Feb 2021 18:28:36 +0000 (20:28 +0200)] 
tests: Additional coverage for WPS_AP_PIN error case

Signed-off-by: Jouni Malinen <j@w1.fi>
4 years agotests: Display unexpected stdout and stderr prints in parallel-vm.py
Jouni Malinen [Sun, 28 Feb 2021 18:20:38 +0000 (20:20 +0200)] 
tests: Display unexpected stdout and stderr prints in parallel-vm.py

Make it more difficult to miss issues that were previously only printed
out in /tmp/hwsim-test-logs/*-parallel.log. This covers things like
memory leaks and test script failures or forgotten development time
prints to stdout.

Signed-off-by: Jouni Malinen <j@w1.fi>
4 years agoFix a memory leak in WPS with ap_scan=2
Jouni Malinen [Sun, 28 Feb 2021 16:46:32 +0000 (18:46 +0200)] 
Fix a memory leak in WPS with ap_scan=2

The wpa_ie buffer is now allocated here and needs to be freed before
returning from the function.

Fixes: d2ba0d719e2a ("Move assoc param setting into a helper function")
Signed-off-by: Jouni Malinen <j@w1.fi>
4 years agoFILS: Simplify code paths
Jouni Malinen [Sun, 28 Feb 2021 16:42:06 +0000 (18:42 +0200)] 
FILS: Simplify code paths

Use a shared code path for freeing the wpa_ie buffer to avoid
unnecessary complexity with a separate return for the non-FILS case.

Signed-off-by: Jouni Malinen <j@w1.fi>
4 years agoSAE: Use more explicit IE payload validation steps
Jouni Malinen [Sun, 28 Feb 2021 16:39:49 +0000 (18:39 +0200)] 
SAE: Use more explicit IE payload validation steps

This is an attempt of making the code easier to understand for static
analyzers. The helper functions were already verifying that these IEs
are fully within the memory buffer, but that may not have been clear
enough for automated analysis.

Signed-off-by: Jouni Malinen <j@w1.fi>
4 years agoUse more consistent iface->conf checks
Jouni Malinen [Sun, 28 Feb 2021 09:51:16 +0000 (11:51 +0200)] 
Use more consistent iface->conf checks

Commit f1df4fbfc7ad ("mesh: Use setup completion callback to complete
mesh join") added a check for iface->conf being NULL into a debug print.
However, it is not clear how that could be NULL here. In any case,
setup_interface() could end up dereferencing iface->conf in the call to
hostapd_validate_bssid_configuration(), so better be consistent with the
checks and not get warnings from static analyzers regardless of whether
this can happen in practice.

Signed-off-by: Jouni Malinen <j@w1.fi>
4 years agoPASN: Avoid unreachable code with CONFIG_NO_RADIUS
Jouni Malinen [Sun, 28 Feb 2021 09:37:09 +0000 (11:37 +0200)] 
PASN: Avoid unreachable code with CONFIG_NO_RADIUS

There is no point in trying to build in rest of this function if in the
middle of it the CONFIG_NO_RADIUS case would unconditionally fail.
Simply make all of this be conditional on that build parameter not being
set to make things easier for static analyzers.

Signed-off-by: Jouni Malinen <j@w1.fi>
4 years agoFILS: Fix RSN info in FD frame for no-group-addressed
Jouni Malinen [Sun, 28 Feb 2021 09:27:42 +0000 (11:27 +0200)] 
FILS: Fix RSN info in FD frame for no-group-addressed

The value from the initial RSN_CIPHER_SUITE_NO_GROUP_ADDRESSED check
ended up getting overridden with the following if. This was supposed to
be a single if statement to avoid that.

Fixes: 9c02a0f5a672 ("FILS: Add generation of FILS Discovery frame template")
Signed-off-by: Jouni Malinen <j@w1.fi>
4 years agoFix dynamic EAP library building
Jouni Malinen [Sat, 27 Feb 2021 21:42:21 +0000 (23:42 +0200)] 
Fix dynamic EAP library building

Build eap_*.so into the wpa_supplicant similarly with the wpa_supplicant
binary and include the shared helper functions from additional files
into the builds. This got broken at some point with the build system
changes.

Signed-off-by: Jouni Malinen <j@w1.fi>
4 years agotests: Fix sigma_dut_ap_dpp_tcp_enrollee_init to stop hostapd
Jouni Malinen [Sat, 27 Feb 2021 19:07:54 +0000 (21:07 +0200)] 
tests: Fix sigma_dut_ap_dpp_tcp_enrollee_init to stop hostapd

This test case was missing an explicit CAPI ap_reset_default and that
could result in hostapd being left running at the end of the test case.
This could result in issues with following test cases if they used a new
radio interface from HWSimRadio().

Signed-off-by: Jouni Malinen <j@w1.fi>
4 years agowlantest: Fix broadcast EAPOL-Key frame handling
Jouni Malinen [Tue, 26 Jan 2021 22:09:49 +0000 (00:09 +0200)] 
wlantest: Fix broadcast EAPOL-Key frame handling

This resulted in an attempt to dereference a NULL pointer since sta_addr
is not known in this type of a case.

Signed-off-by: Jouni Malinen <jouni@codeaurora.org>
4 years agoIgnore group-addressed SA Query frames
Jouni Malinen [Tue, 16 Feb 2021 09:34:50 +0000 (11:34 +0200)] 
Ignore group-addressed SA Query frames

These frames are used for verifying that a specific SA and protected
link is in functional state between two devices. The IEEE 802.11
standard defines only a case that uses individual MAC address as the
destination. While there is no explicit rule on the receiver to ignore
other cases, it seems safer to make sure group-addressed frames do not
end up resulting in undesired behavior. As such, drop such frames
instead of interpreting them as valid SA Query Request/Response.

Signed-off-by: Jouni Malinen <jouni@codeaurora.org>
4 years agoP2P: Pick a 5 GHz channel from more possible channels
Jimmy Chen [Mon, 12 Oct 2020 02:23:40 +0000 (10:23 +0800)] 
P2P: Pick a 5 GHz channel from more possible channels

For an autonomous P2P group on the 5 GHz band, a channel was picked only
from the operating class 115 which is not available in the EU region
anymore. As a result, an autonomous group creation would always fail in
this generic 5 GHz channel case.

There are more possible available channels for the 5 GHz currently.
Especially in the EU region, the operating class 115 channels are no
longer available, but SRD channels (the operating class 124) are
available. Allow them to be used here if they are marked as allowed for
P2P GO use.

In addition, iterate through all the potential options instead of just
checking the first randomly picked channel. Start this iteration from
random position to maintain some randomness in this process.

Signed-off-by: Jimmy Chen <jimmycmchen@google.com>
4 years agotests: Work around exception handling issue in wpas_config_file
Jouni Malinen [Sat, 27 Feb 2021 16:10:41 +0000 (18:10 +0200)] 
tests: Work around exception handling issue in wpas_config_file

Raising an exception while the wlan5 interface was remove (i.e., between
wpas.interface_remove() and .interface_add() calls) would result in the
cleanup code failing and generating yet another exception while the
first one was being processed. Work around this by re-adding the wlan5
interface back temporarily if the interface is not available for the
cleanup operations.

Signed-off-by: Jouni Malinen <j@w1.fi>
4 years agonl80211: Allow compilation with both vendor do_acs() handlers
Jouni Malinen [Sat, 27 Feb 2021 15:57:08 +0000 (17:57 +0200)] 
nl80211: Allow compilation with both vendor do_acs() handlers

Use a helper function as the do_acs() callback to allow builds to pull
in all the vendor specific operations into a single binary.

Signed-off-by: Jouni Malinen <j@w1.fi>
4 years agonl80211: Add ACS support for Broadcom device
Xinrui Sun [Fri, 12 Jun 2020 12:49:07 +0000 (20:49 +0800)] 
nl80211: Add ACS support for Broadcom device

BRCM vendor command used to trigger ACS scan. After ACS finished,
DHD driver will send results by event BRCM_VENDOR_EVENT_ACS.

Signed-off-by: Xinrui Sun <xinrui.sun@broadcom.com>
4 years agotests: RADIUS client device specified
Jouni Malinen [Sat, 27 Feb 2021 08:37:07 +0000 (10:37 +0200)] 
tests: RADIUS client device specified

Signed-off-by: Jouni Malinen <j@w1.fi>
4 years agoRADIUS client: Support SO_BINDTODEVICE
Ben Greear [Wed, 13 May 2020 20:48:12 +0000 (13:48 -0700)] 
RADIUS client: Support SO_BINDTODEVICE

Allow the RADIUS client socket to be bound to a specific netdev. This
helps hostapd work better in VRF and other fancy network environments.

Signed-off-by: Ben Greear <greearb@candelatech.com>
Signed-off-by: Andreas Tobler <andreas.tobler at onway.ch>
4 years agoAndroid: Add DRIVER command support on hostapd and hostapd_cli
Sunil Dutt [Thu, 18 Feb 2021 15:43:13 +0000 (07:43 -0800)] 
Android: Add DRIVER command support on hostapd and hostapd_cli

Add DRIVER command support on hostapd and hostapd_cli on Android
similarly to the way this previously enabled in wpa_supplicant and
wpa_cli.

Signed-off-by: Jouni Malinen <jouni@codeaurora.org>
4 years agoTDLS: Support TDLS operations in HE mode
Sreeramya Soratkal [Wed, 6 Jan 2021 07:08:25 +0000 (12:38 +0530)] 
TDLS: Support TDLS operations in HE mode

Determine if the TDLS peer is HE capable based on HE Capability element
received in the TDLS Setup Response frame. Indicate the peer's HE
capabilities to the driver through sta_add().

Signed-off-by: Sreeramya Soratkal <ssramya@codeaurora.org>
4 years agoP2P: Add device address to the debug entry on oldest peer removal
Jouni Malinen [Tue, 8 Dec 2020 22:13:15 +0000 (00:13 +0200)] 
P2P: Add device address to the debug entry on oldest peer removal

This makes it easier to understand debug logs with large number of peer
entries.

Signed-off-by: Jouni Malinen <jouni@codeaurora.org>
4 years agoP2P: Fix a corner case in peer addition based on PD Request
Jouni Malinen [Tue, 8 Dec 2020 21:52:50 +0000 (23:52 +0200)] 
P2P: Fix a corner case in peer addition based on PD Request

p2p_add_device() may remove the oldest entry if there is no room in the
peer table for a new peer. This would result in any pointer to that
removed entry becoming stale. A corner case with an invalid PD Request
frame could result in such a case ending up using (read+write) freed
memory. This could only by triggered when the peer table has reached its
maximum size and the PD Request frame is received from the P2P Device
Address of the oldest remaining entry and the frame has incorrect P2P
Device Address in the payload.

Fix this by fetching the dev pointer again after having called
p2p_add_device() so that the stale pointer cannot be used.

Fixes: 17bef1e97a50 ("P2P: Add peer entry based on Provision Discovery Request")
Signed-off-by: Jouni Malinen <jouni@codeaurora.org>
4 years agoQCA vendor attribute to configure Punctured Preamble Rx in HE cap
Kiran Kumar Lokere [Thu, 18 Feb 2021 21:20:28 +0000 (13:20 -0800)] 
QCA vendor attribute to configure Punctured Preamble Rx in HE cap

Add a QCA vendor attribute to enable/disable the Punctured Preamble Rx
support in HE PHY capabilities.

This attribute is used for testing purposes.

Signed-off-by: Jouni Malinen <jouni@codeaurora.org>
4 years agoQCA vendor attribute to disable data and management frame Tx
Kiran Kumar Lokere [Thu, 18 Feb 2021 20:41:55 +0000 (12:41 -0800)] 
QCA vendor attribute to disable data and management frame Tx

Add a QCA vendor attribute to configure the driver to disable data and
management response frame transmission to test the BSS max idle period
feature.

This attribute is used for testing purposes.

Signed-off-by: Jouni Malinen <jouni@codeaurora.org>
4 years agoQCA vendor attribute to configure RU 242 tone for data Tx
Kiran Kumar Lokere [Thu, 18 Feb 2021 20:04:43 +0000 (12:04 -0800)] 
QCA vendor attribute to configure RU 242 tone for data Tx

Add a QCA vendor attribute to configure the driver/firmware to use only
RU 242 tone for data frame transmission.

This attribute is used for testing purposes.

Signed-off-by: Jouni Malinen <jouni@codeaurora.org>
4 years agoQCA vendor attribute to configure BSS max idle period
Kiran Kumar Lokere [Thu, 18 Feb 2021 19:43:51 +0000 (11:43 -0800)] 
QCA vendor attribute to configure BSS max idle period

Add a QCA vendor attribute to configure the driver with a specific BSS
max idle period value to advertise in (Re)Association Request frames.

This attribute is used for testing purposes.

Signed-off-by: Jouni Malinen <jouni@codeaurora.org>
4 years agoFix handle_auth_cb() message length check regression
Jouni Malinen [Mon, 22 Feb 2021 22:30:09 +0000 (00:30 +0200)] 
Fix handle_auth_cb() message length check regression

Reordering of code in handle_auth_cb() when adding support for full
station state messaged up frame length checks. The length was originally
tested before looking at the payload of the frame and that is obviously
the correct location for that check. The location after those full state
state changes was after having read six octets of the payload which did
not help at all since there was no addition accesses to the payload
after that check.

Move the payload length check to appropriate place to get this extra
level of protection behaving in the expected manner. Since this is a TX
status callback handler, the frame payload is from a locally generated
Authentication frame and as such, it will be long enough to include
these fields in production use cases. Anyway, better keep this check in
working condition.

Fixes: bb598c3bdd06 ("AP: Add support for full station state")
Signed-off-by: Jouni Malinen <jouni@codeaurora.org>
4 years agoRestore permanent MAC address on the FLUSH command
Jouni Malinen [Sun, 21 Feb 2021 15:22:37 +0000 (17:22 +0200)] 
Restore permanent MAC address on the FLUSH command

Clear previously used random MAC address on the FLUSH command if
mac_addr setting has been disabled.

Signed-off-by: Jouni Malinen <j@w1.fi>
4 years agotests: Fix clean at the end of sigma_dut_client_privacy
Jouni Malinen [Sun, 21 Feb 2021 15:21:48 +0000 (17:21 +0200)] 
tests: Fix clean at the end of sigma_dut_client_privacy

These commands were being issues to incorrect wpa_supplicant instance
and were missing clearing of the MAC_RAND_SCAN parameter.

Signed-off-by: Jouni Malinen <j@w1.fi>
4 years agotests: Fix the cleanup at the end of scan_setband
Jouni Malinen [Sun, 21 Feb 2021 14:58:33 +0000 (16:58 +0200)] 
tests: Fix the cleanup at the end of scan_setband

The iteration of WpaSupplicant instances used incorrect variable and
ended up cleaning up only the wlan5 interface. This left unexpected
setband parameter for wlan0/wlan1/wlan2 which could result in
consecutive test cases failing due to scan not finding the expected
BSSs.

Signed-off-by: Jouni Malinen <j@w1.fi>
4 years agoDPP2: Accept Config Result before GAS response TX status
Jouni Malinen [Sun, 21 Feb 2021 14:44:33 +0000 (16:44 +0200)] 
DPP2: Accept Config Result before GAS response TX status

The TX event for the next frame in the sequence might be received before
the TX status for the final GAS response frame is processed. This used
to result in the Config Result getting discarded and the negotiation not
completing successfully on the Configurator side.

Accept the Config Result message as an indication of the final GAS
response frame having went through fine even if the TX status has not
yet been processed to avoid this issue from a potential race condition
on kernel events.

Signed-off-by: Jouni Malinen <j@w1.fi>
4 years agoMulti-AP: Fix backhaul SSID printing condition
Jouni Malinen [Sun, 21 Feb 2021 10:33:33 +0000 (12:33 +0200)] 
Multi-AP: Fix backhaul SSID printing condition

ssid->ssid is an array so comparison against NULL is pointless; check
ssid->ssid_len instead.

Fixes: 871d6648f502 ("hostapd: Add multi_ap settings to get_config() output")
Signed-off-by: Jouni Malinen <j@w1.fi>
4 years agoAvoid use of C++ keyword in a header file
Jouni Malinen [Sun, 21 Feb 2021 10:48:13 +0000 (12:48 +0200)] 
Avoid use of C++ keyword in a header file

Don't use 'protected' as the name of the variable in bss.h since this
might be used in control interfaces that use C++.

Fixes: 1c77f3d3f9a3 ("Indicate whether additional ANQP elements were protected")
Signed-off-by: Jouni Malinen <j@w1.fi>
4 years agoradiotap: Fix compiler issues with packed structures
Jouni Malinen [Sun, 21 Feb 2021 10:07:38 +0000 (12:07 +0200)] 
radiotap: Fix compiler issues with packed structures

Replace the Radiotap parser platform.h file with use of helper functions
from utils/common.h to avoid compiler issues with the updated design and
getting pointers to members of packet structs.

Silence the warning about _next_bitmap assignment. This pointer is
dereferenced only with operations that are safe for unaligned access, so
the compiler warning is not helpful here.

__packed might not be defined in this context, so use STRUCT_PACKED from
utils/common.h.

Fixes: e6ac269433a3 ("radiotap: Update radiotap parser")
Signed-off-by: Jouni Malinen <j@w1.fi>
4 years agotests: EAP-TTLS and PEAP with TLS 1.3
Jouni Malinen [Sat, 20 Feb 2021 16:00:54 +0000 (18:00 +0200)] 
tests: EAP-TTLS and PEAP with TLS 1.3

Signed-off-by: Jouni Malinen <j@w1.fi>
4 years agoEAP server: Extend EAP-TLS Commitment Message use to PEAP and EAP-TTLS
Alexander Clouter [Fri, 16 Oct 2020 08:49:38 +0000 (09:49 +0100)] 
EAP server: Extend EAP-TLS Commitment Message use to PEAP and EAP-TTLS

Use the explicit Commitment Message per draft-ietf-emu-eap-tls13-13
Section 2.5 and extend this functionality to PEAP and EAP-TTLS when
using TLS 1.3.

Signed-off-by: Alexander Clouter <alex@digriz.org.uk>
4 years agoEAP-TTLS peer: Handle Commitment Message for TLS 1.3
Alexander Clouter [Fri, 16 Oct 2020 08:49:38 +0000 (09:49 +0100)] 
EAP-TTLS peer: Handle Commitment Message for TLS 1.3

Recognize the explicitly defined Commitment Message per
draft-ietf-emu-eap-tls13-13 at the conclusion of the EAP-TTLS with TLS
1.3.

Signed-off-by: Alexander Clouter <alex@digriz.org.uk>
4 years agoEAP-TLS peer: Handle Commitment Message for TLS 1.3
Alexander Clouter [Fri, 16 Oct 2020 08:49:38 +0000 (09:49 +0100)] 
EAP-TLS peer: Handle Commitment Message for TLS 1.3

Recognize the explicitly defined Commitment Message per
draft-ietf-emu-eap-tls13-13 at the conclusion of the EAP-TLS with TLS
1.3.

Signed-off-by: Alexander Clouter <alex@digriz.org.uk>
4 years agoEAP: Extend Session-Id derivation with TLS 1.3 to PEAP and EAP-TTLS
Alexander Clouter [Fri, 16 Oct 2020 08:49:38 +0000 (09:49 +0100)] 
EAP: Extend Session-Id derivation with TLS 1.3 to PEAP and EAP-TTLS

This newer Session-Id/Method-Id derivation is used with PEAP and
EAP-TTLS when using TLS 1.3 per draft-ietf-emu-tls-eap-types-00, so do
not limit this to only EAP-TLS.

Signed-off-by: Alexander Clouter <alex@digriz.org.uk>
4 years agoEAP-TTLS: Key derivation per draft-ietf-emu-tls-eap-types-00
Alexander Clouter [Fri, 16 Oct 2020 08:49:38 +0000 (09:49 +0100)] 
EAP-TTLS: Key derivation per draft-ietf-emu-tls-eap-types-00

Use the TLS-Exporter with the label and context as defined in
draft-ietf-emu-tls-eap-types-00 when deriving keys for EAP-TTLS with TLS
1.3.

Signed-off-by: Alexander Clouter <alex@digriz.org.uk>
4 years agoEAP-PEAP: Key derivation per draft-ietf-emu-tls-eap-types-00
Alexander Clouter [Fri, 16 Oct 2020 08:49:38 +0000 (09:49 +0100)] 
EAP-PEAP: Key derivation per draft-ietf-emu-tls-eap-types-00

Use the TLS-Exporter with the label and context as defined in
draft-ietf-emu-tls-eap-types-00 when deriving keys for PEAP with TLS
1.3.

Signed-off-by: Alexander Clouter <alex@digriz.org.uk>
4 years agoEAP-TTLS/PEAP peer: Fix failure when using session tickets under TLS 1.3
Alexander Clouter [Fri, 16 Oct 2020 08:49:36 +0000 (09:49 +0100)] 
EAP-TTLS/PEAP peer: Fix failure when using session tickets under TLS 1.3

EAP peer does not expect data present when beginning the Phase 2 in
EAP-{TTLS,PEAP} but in TLS 1.3 session tickets are sent after the
handshake completes.

There are several strategies that can be used to handle this, but this
patch picks up from the discussion[1] and implements the proposed use of
SSL_MODE_AUTO_RETRY. SSL_MODE_AUTO_RETRY has already been enabled by
default in OpenSSL 1.1.1, but it needs to be enabled for older versions.

The main OpenSSL wrapper change in tls_connection_decrypt() takes care
of the new possible case with SSL_MODE_AUTO_RETRY for
SSL_ERROR_WANT_READ to indicate that a non-application_data was
processed. That is not really an error case with TLS 1.3, so allow it to
complete and return an empty decrypted application data buffer.
EAP-PEAP/TTLS processing can then use this to move ahead with starting
Phase 2.

[1] https://www.spinics.net/lists/hostap/msg05376.html

Signed-off-by: Alexander Clouter <alex@digriz.org.uk>
4 years agotests: Use a longer timeout for connection in sigma_dut DPP test cases
Jouni Malinen [Sat, 20 Feb 2021 14:10:47 +0000 (16:10 +0200)] 
tests: Use a longer timeout for connection in sigma_dut DPP test cases

It was possible for these test cases to fail if the first scan iteration
did not find the AP since the 10 second timeout was small enough to
terminate the second attempt before fetching the scan results. Increase
this timeout to allow at least two full scan iterations to be completed
before declaring failure.

Signed-off-by: Jouni Malinen <j@w1.fi>
4 years agotests: Clear scan results at the end of scan-ssid-list tests
Jouni Malinen [Sat, 20 Feb 2021 14:01:32 +0000 (16:01 +0200)] 
tests: Clear scan results at the end of scan-ssid-list tests

These test cases use hidden SSIDs and left behind a BSS entry with no
SSID. That can cause issues for consecutive test cases where the BSSID
can be used as the key for finding a BSS entry. That could end up
picking the old hidden SSID BSS instead of the one that was meant to be
used in the test case.

Flush the scan cache at the end of the scan-ssid-list test cases to
reduce invalid test failures for the consecutive test cases.

Signed-off-by: Jouni Malinen <j@w1.fi>