]> git.ipfire.org Git - thirdparty/hostap.git/log
thirdparty/hostap.git
3 years agotests: WPA2-EAP AP with PMF and EAP frame injection
Jouni Malinen [Sat, 7 May 2022 14:46:07 +0000 (17:46 +0300)] 
tests: WPA2-EAP AP with PMF and EAP frame injection

Signed-off-by: Jouni Malinen <j@w1.fi>
3 years agoDiscard unencrypted EAPOL/EAP when TK is set and PMF is enabled (AP)
Jouni Malinen [Sat, 7 May 2022 15:10:17 +0000 (18:10 +0300)] 
Discard unencrypted EAPOL/EAP when TK is set and PMF is enabled (AP)

RSN design is supposed to encrypt all Data frames, including EAPOL
frames, once the TK has been configured. However, there are deployed
implementations that do not really follow this design and there are
various examples from the older uses of EAPOL frame where those frames
were not encrypted. As such, strict filtering of unencrypted EAPOL
frames might results in undesired interoperation issues.

However, some of the most important cases of missing EAPOL frame
encryption should be possible to handle without causing too significant
issues. These are for cases where an attacker could potentially cause an
existing association to be dropped when PMF is used. EAPOL-Start and
EAPOL-Logoff are potential candidate for such attacks since those frames
could be used to terminate an authentication or initiate a new EAP
authentication. Such an attack could result in the station ending up
disconnecting or at minimum, getting into somewhat mismatching state
with the AP.

Drop EAPOL-Start/Logoff/EAP frames on the AP/Authenticator when it is
known that it was not encrypted but should have been and when PMF is
enabled. While it would be correct to drop this even without PMF, that
does not provide any significant benefit since it is trivial to force
disconnection in no-PMF cases. It should also be noted that not all
drivers provide information about the encryption status of the EAPOL
frames and this change has no impact with drivers that do not indicate
whether the frame was encrypted.

Signed-off-by: Jouni Malinen <j@w1.fi>
3 years agoDiscard unencrypted EAPOL-EAP when TK is set and PMF is enabled
Jouni Malinen [Sat, 7 May 2022 14:42:51 +0000 (17:42 +0300)] 
Discard unencrypted EAPOL-EAP when TK is set and PMF is enabled

RSN design is supposed to encrypt all Data frames, including EAPOL
frames, once the TK has been configured. However, there are deployed
implementations that do not really follow this design and there are
various examples from the older uses of EAPOL frame where those frames
were not encrypted. As such, strict filtering of unencrypted EAPOL
frames might results in undesired interoperation issues.

However, some of the most important cases of missing EAPOL frame
encryption should be possible to handle without causing too significant
issues. These are for cases where an attacker could potentially cause an
existing association to be dropped when PMF is used. EAP-Request is one
potential candidate for such attacks since that frame could be used to
initiate a new EAP authentication and the AP/Authenticator might not
allow that to complete or a large number of EAP-Request frames could be
injected to exceed the maximum number of EAP frames. Such an attack
could result in the station ending up disconnecting or at minimum,
getting into somewhat mismatching state with the AP.

Drop EAPOL-EAP frames when it is known that it was not encrypted but
should have been and when PMF is enabled. While it would be correct to
drop this even without PMF, that does not provide any significant
benefit since it is trivial to force disconnection in no-PMF cases. It
should also be noted that not all drivers provide information about the
encryption status of the EAPOL frames and this change has no impact with
drivers that do not indicate whether the frame was encrypted.

Signed-off-by: Jouni Malinen <j@w1.fi>
3 years agoDiscard unencrypted EAPOL-Key msg 1/4 when TK is set and PMF is enabled
Jouni Malinen [Sat, 7 May 2022 08:54:16 +0000 (11:54 +0300)] 
Discard unencrypted EAPOL-Key msg 1/4 when TK is set and PMF is enabled

RSN design is supposed to encrypt all Data frames, including EAPOL
frames, once the TK has been configured. However, there are deployed
implementations that do not really follow this design and there are
various examples from the older uses of EAPOL frame where those frames
were not encrypted. As such, strict filtering of unencrypted EAPOL
frames might results in undesired interoperation issues.

However, some of the most important cases of missing EAPOL frame
encryption should be possible to handle without causing too significant
issues. These are for cases where an attacker could potentially cause an
existing association to be dropped when PMF is used. EAPOL-Key msg 1/4
is one potential candidate for such attacks since that frame could be
used to initiate a 4-way handshake that the real AP might never complete
and the station might end up disconnecting because of that or at
minimum, getting into somewhat mismatching state with the AP.

Drop EAPOL-Key msg 1/4 when it is known that it was not encrypted but
should have been and when PMF is enabled. While it would be correct to
drop this even without PMF, that does not provide any significant
benefit since it is trivial to force disconnection in no-PMF cases. It
should also be noted that not all drivers provide information about the
encryption status of the EAPOL frames and this change has no impact with
drivers that do not indicate whether the frame was encrypted.

Signed-off-by: Jouni Malinen <j@w1.fi>
3 years agoDo not prevent Michael MIC error report based on disallowed PTK0 rekey
Jouni Malinen [Sat, 7 May 2022 08:14:50 +0000 (11:14 +0300)] 
Do not prevent Michael MIC error report based on disallowed PTK0 rekey

EAPOL-Key Request frame with Error=1 is not really a request for a new
key, so allow that frame to be sent even if PTK0 rekey is not allowed
since the supplicant is required to report Michael MIC errors to the
authenticator.

Signed-off-by: Jouni Malinen <j@w1.fi>
3 years agoProvide information about the encryption status of received EAPOL frames
Jouni Malinen [Fri, 6 May 2022 21:38:35 +0000 (00:38 +0300)] 
Provide information about the encryption status of received EAPOL frames

This information was already available from the nl80211 control port RX
path, but it was not provided to upper layers within wpa_supplicant and
hostapd. It can be helpful, so parse the information from the driver
event.

Signed-off-by: Jouni Malinen <j@w1.fi>
3 years agoFILS: Set pairwise_set when configuring TK after association
Jouni Malinen [Sat, 7 May 2022 17:34:07 +0000 (20:34 +0300)] 
FILS: Set pairwise_set when configuring TK after association

sm->pairwise_set needs to be set whenever the TK has been configured to
the driver to request following EAPOL frames to be encrypted (or more
specifically, not to request them to not be encrypted). The FILS case
missed this setting and that could result in rekeying or
reauthentication in an associated started with FILS not working
correctly.

Fixes: da24c5aa1c47 ("FILS: Set TK after association (AP)")
Signed-off-by: Jouni Malinen <j@w1.fi>
3 years agoFix no_encrypt flag in control port TX for rekeying
Jouni Malinen [Fri, 6 May 2022 21:58:41 +0000 (00:58 +0300)] 
Fix no_encrypt flag in control port TX for rekeying

The wpa_supplicant check for whether a TK is configured into the driver
was broken during the time this information is needed for rekeying or
reauthenticating with another 4-way handshake. sm->ptk.installed is not
set at the point the EAPOL-Key msg 4/4 is sent and while that means the
initial 4-way handshake needs to prevent encryption, the consecutive
4-way handshake must not be doing that since the old key (TK) is still
in the driver. Fix this so that the EAPOL-Key msg 4/4 during rekeying
does not get transmitted without encryption.

Fixes: a79ed0687197 ("Add no_encrypt flag for control port TX")
Signed-off-by: Jouni Malinen <j@w1.fi>
3 years agotests: PMF and EAPOL-Key msg 1/4 injection
Jouni Malinen [Sat, 7 May 2022 08:13:43 +0000 (11:13 +0300)] 
tests: PMF and EAPOL-Key msg 1/4 injection

Signed-off-by: Jouni Malinen <j@w1.fi>
3 years agoWPA: Discard EAPOL-Key msg 1/4 with corrupted information elements
Domien Schepers [Thu, 5 May 2022 19:53:26 +0000 (21:53 +0200)] 
WPA: Discard EAPOL-Key msg 1/4 with corrupted information elements

Currently a corrupted handshake message 1/4 causes the client to
disconnect from the network. This can lead to a denial-of-service
vulnerability allowing an adversary to forcibly disconnect a client from
protected networks even when Wi-Fi Management Frame Protection (MFP) is
enforced if the driver allows unencrypted EAPOL-Key frames to be
received after key configuration..

Fix this by discarding the corrupted handshake message 1/4.

This issue was discovered by Domien Schepers (Northeastern University)
and Mathy Vanhoef (imec-DistriNet, KU Leuven).

Signed-off-by: Domien Schepers <schepers.d@northeastern.edu>
3 years agotests: Do not require disconnection in ap_wpa2_psk_supp_proto_msg_1_invalid_kde
Jouni Malinen [Sat, 7 May 2022 10:40:56 +0000 (13:40 +0300)] 
tests: Do not require disconnection in ap_wpa2_psk_supp_proto_msg_1_invalid_kde

The wpa_supplicant implementation for this functionality is going to be
changed to not require disconnection, so prepare the test case to not
fail.

Signed-off-by: Jouni Malinen <j@w1.fi>
3 years agotests: WPA2-PSK with PMF and Association Request frame injection
Jouni Malinen [Sat, 7 May 2022 15:50:58 +0000 (18:50 +0300)] 
tests: WPA2-PSK with PMF and Association Request frame injection

Signed-off-by: Jouni Malinen <j@w1.fi>
3 years agoCheck need for SA Query/assoc comeback before updating RSNE parameters
Jouni Malinen [Sat, 7 May 2022 15:49:57 +0000 (18:49 +0300)] 
Check need for SA Query/assoc comeback before updating RSNE parameters

wpa_validate_wpa_ie() might update sm->* values, so it should not be
allowed for an existing STA entry if that STA has negotiated MFP to be
used for the association. Fix this by first checking whether an SA Query
procedure needs to be initiated. In particular, this prevents a
potential bypass of the disconnection protection.

Signed-off-by: Jouni Malinen <quic_jouni@quicinc.com>
3 years agotests: EHT open connection
Veerendranath Jakkam [Tue, 3 May 2022 19:04:51 +0000 (00:34 +0530)] 
tests: EHT open connection

Signed-off-by: Veerendranath Jakkam <quic_vjakkam@quicinc.com>
3 years agoACS: Send EHT enabled info to driver
Veerendranath Jakkam [Tue, 3 May 2022 19:04:50 +0000 (00:34 +0530)] 
ACS: Send EHT enabled info to driver

The driver can consider EHT specific parameters such as the puncture
pattern for ACS when this flag attribute is indicated by userspace.

Signed-off-by: Veerendranath Jakkam <quic_vjakkam@quicinc.com>
3 years agonl80211: Don't force VHT channel definition with EHT
Veerendranath Jakkam [Tue, 3 May 2022 19:04:49 +0000 (00:34 +0530)] 
nl80211: Don't force VHT channel definition with EHT

Add a check to avoid sending VHT channel definition when EHT is enabled
in the 2.4 GHz band since the 2.4 GHz band isn't supposed to use VHT
operations. Also add EHT enabled info into debug prints.

Signed-off-by: Veerendranath Jakkam <quic_vjakkam@quicinc.com>
3 years agoEHT: Add [EHT] flag into AP mode STA command
Veerendranath Jakkam [Tue, 3 May 2022 19:04:48 +0000 (00:34 +0530)] 
EHT: Add [EHT] flag into AP mode STA command

This indicates whether an associated stations supports EHT.

Signed-off-by: Veerendranath Jakkam <quic_vjakkam@quicinc.com>
3 years agoEHT: Indicate wifi_generation=7 in wpa_supplicant STATUS output
Veerendranath Jakkam [Tue, 3 May 2022 19:04:47 +0000 (00:34 +0530)] 
EHT: Indicate wifi_generation=7 in wpa_supplicant STATUS output

This adds wifi_generation=7 line to the STATUS output if the driver
reports (Re)Association Request frame and (Re)Association Response frame
information elements in the association or connection event with EHT
capability IEs.

Signed-off-by: Veerendranath Jakkam <quic_vjakkam@quicinc.com>
3 years agoEHT: Indicate ieee80211be configuration in hostapd STATUS output
Veerendranath Jakkam [Tue, 3 May 2022 19:04:46 +0000 (00:34 +0530)] 
EHT: Indicate ieee80211be configuration in hostapd STATUS output

Signed-off-by: Veerendranath Jakkam <quic_vjakkam@quicinc.com>
3 years agoEHT: Fix invalid length checking for EHT Capability element
Veerendranath Jakkam [Tue, 3 May 2022 19:04:45 +0000 (00:34 +0530)] 
EHT: Fix invalid length checking for EHT Capability element

Do not consider optional octets maximum lengths when validating EHT
fixed fields length. Furthermore, do not use the first two octets of the
PPE Thresholds field without explicitly confirming that these octets
were included in the element and fix PPE Thresholds field length
calculation.

Fixes: a6d1b4c46c20 ("EHT: Process (Re)Association Request frame capabilities")
Signed-off-by: Veerendranath Jakkam <quic_vjakkam@quicinc.com>
3 years agoSAE: Send real status code to the driver when AP rejects external auth
Veerendranath Jakkam [Tue, 26 Apr 2022 06:52:37 +0000 (12:22 +0530)] 
SAE: Send real status code to the driver when AP rejects external auth

Send the status code from the AP authentication response instead of
sending the hardcoded WLAN_STATUS_UNSPECIFIED_FAILURE when the external
SAE authentication failure is due to an explicit rejection by the AP.
This will allow the driver to indicate the correct status in connect
response.

For example, an AP can send WLAN_STATUS_AP_UNABLE_TO_HANDLE_NEW_STA in
SAE authentication response. With this change the driver gets the real
status for the SAE authentication failure and it can fill the correct
status in the connect response event.

Signed-off-by: Veerendranath Jakkam <quic_vjakkam@quicinc.com>
3 years agoFix compilation due to forward declaration of macaddr_acl
Sunil Ravi [Thu, 5 May 2022 06:25:43 +0000 (23:25 -0700)] 
Fix compilation due to forward declaration of macaddr_acl

enum macaddr_acl is forward declared in wpa_supplicant/ap.h.
c++ compiler doesn't allow forward declaration. So to fix the
compilation error, moved the enum macaddr_acl declaration out
of struct hostapd_bss_config.

Signed-off-by: Sunil Ravi <sunilravi@google.com>
3 years agoOpenSSL: Fix build with old library versions that do not support TLS 1.3
Jouni Malinen [Wed, 4 May 2022 21:35:47 +0000 (00:35 +0300)] 
OpenSSL: Fix build with old library versions that do not support TLS 1.3

The OCSP check here is specific to TLS 1.3 and the TLS1_3_VERSION value
is not available in older library versions. Comment this check out from
such cases since it is not applicable with such an old library.

Fixes: 10746875e27a ("OpenSSL: Allow no OCSP response when resuming a session with TLS 1.3")
Signed-off-by: Jouni Malinen <quic_jouni@quicinc.com>
3 years agoLibreSSL: Fix compilation issue with TLS 1.3 session ticket limit
Jouni Malinen [Wed, 4 May 2022 21:34:25 +0000 (00:34 +0300)] 
LibreSSL: Fix compilation issue with TLS 1.3 session ticket limit

LibreSSL does not seem have SSL_CTX_set_num_tickets(), so comment out
these not really critical calls when building with that library.

Fixes: 81e24988895a ("OpenSSL: Limit the number of TLS 1.3 session tickets to one")
Fixes: decac7cd1e50 ("OpenSSL: Do not send out a TLS 1.3 session ticket if caching disabled")
Signed-off-by: Jouni Malinen <quic_jouni@quicinc.com>
3 years agoLibreSSL: Fix compilation issue with RSA-OAEP
Jouni Malinen [Wed, 4 May 2022 21:31:43 +0000 (00:31 +0300)] 
LibreSSL: Fix compilation issue with RSA-OAEP

EVP_PKEY_CTX_set_rsa_oaep_md() does not seem to be available in
LibreSSL, so for now, comment out this functionality whenever building
with that library.

Fixes: 36b11bbcffb6 ("OpenSSL: RSA-OAEP-SHA-256 encryption/decryption")
Signed-off-by: Jouni Malinen <quic_jouni@quicinc.com>
3 years agoBoringSSL: Fix compilation error due to TLS 1.3 session tickets
Sunil Ravi [Thu, 5 May 2022 06:46:35 +0000 (23:46 -0700)] 
BoringSSL: Fix compilation error due to TLS 1.3 session tickets

SSL_CTX_set_num_tickets() is not available in boringSSL.
So protect the call to SSL_CTX_set_num_tickets() under
!defined(OPENSSL_IS_BORINGSSL) to fix the compilation error.

Fixes: decac7cd1e50 ("OpenSSL: Do not send out a TLS 1.3 session ticket if caching disabled")
Fixes: 81e24988895a ("OpenSSL: Limit the number of TLS 1.3 session tickets to one")
Signed-off-by: Sunil Ravi <sunilravi@google.com>
3 years agoEAP peer status notification for server not supporting RFC 5746
Jouni Malinen [Wed, 4 May 2022 20:55:38 +0000 (23:55 +0300)] 
EAP peer status notification for server not supporting RFC 5746

Add a notification message to indicate reason for TLS handshake failure
due to the server not supporting safe renegotiation (RFC 5746).

Signed-off-by: Jouni Malinen <quic_jouni@quicinc.com>
3 years agoEAP peer: Workaround for servers that do not support safe TLS renegotiation
Jouni Malinen [Wed, 4 May 2022 21:07:44 +0000 (00:07 +0300)] 
EAP peer: Workaround for servers that do not support safe TLS renegotiation

The TLS protocol design for renegotiation was identified to have a
significant security flaw in 2009 and an extension to secure this design
was published in 2010 (RFC 5746). However, some old RADIUS
authentication servers without support for this are still used commonly.

This is obviously not good from the security view point, but since there
are cases where the user of a network service has no realistic means for
getting the authentication server upgraded, TLS handshake may still need
to be allowed to be able to use the network.

OpenSSL 3.0 disabled the client side workaround by default and this
resulted in issues connection to some networks with insecure
authentication servers. With OpenSSL 3.0, the client is now enforcing
security by refusing to authenticate with such servers. The pre-3.0
behavior of ignoring this issue and leaving security to the server can
now be enabled with a new phase1 parameter allow_unsafe_renegotiation=1.
This should be used only when having to connect to a network that has an
insecure authentication server that cannot be upgraded.

The old (pre-2010) TLS renegotiation mechanism might open security
vulnerabilities if the authentication server were to allow TLS
renegotiation to be initiated. While this is unlikely to cause real
issues with EAP-TLS, there might be cases where use of PEAP or TTLS with
an authentication server that does not support RFC 5746 might result in
a security vulnerability.

Signed-off-by: Jouni Malinen <quic_jouni@quicinc.com>
3 years agoFix tls_connection_set_success_data() in TLS library wrappers
Jouni Malinen [Tue, 3 May 2022 21:05:09 +0000 (00:05 +0300)] 
Fix tls_connection_set_success_data() in TLS library wrappers

Some of the TLS library wrappers defined only an empty function for
tls_connection_set_success_data(). That could result in memory leaks in
TLS server cases, so update these to do the minimal thing and free the
provided buffer as unused.

Signed-off-by: Jouni Malinen <quic_jouni@quicinc.com>
3 years agoOpenSSL: Do not send out a TLS 1.3 session ticket if caching disabled
Jouni Malinen [Mon, 2 May 2022 14:31:28 +0000 (17:31 +0300)] 
OpenSSL: Do not send out a TLS 1.3 session ticket if caching disabled

Do not provide TLS 1.3 session tickets if session caching is disabled.

Signed-off-by: Jouni Malinen <quic_jouni@quicinc.com>
3 years agoEAP-PEAP server: Fix TLS 1.3 move to Phase 2 without a new session ticket
Jouni Malinen [Mon, 2 May 2022 14:29:35 +0000 (17:29 +0300)] 
EAP-PEAP server: Fix TLS 1.3 move to Phase 2 without a new session ticket

When a new session ticket is not issued to the peer, Phase 2 identity
request need to be sent out as a response to the Finished message from
the peer. Fix this to allow the TLS server to be configured to not send
out a new session ticket when using TLS 1.3.

Signed-off-by: Jouni Malinen <quic_jouni@quicinc.com>
3 years agoOpenSSL: Allow no OCSP response when resuming a session with TLS 1.3
Jouni Malinen [Mon, 2 May 2022 13:54:13 +0000 (16:54 +0300)] 
OpenSSL: Allow no OCSP response when resuming a session with TLS 1.3

TLS 1.3 sends the OCSP response with the server Certificate message.
Since that Certificate message is not sent when resuming a session,
there can be no new OCSP response. Allow this since the OCSP response
was validated when checking the initial certificate exchange.

Signed-off-by: Jouni Malinen <quic_jouni@quicinc.com>
3 years agoEAP-TLS peer: Fix protected success indication check for resumed session
Jouni Malinen [Mon, 2 May 2022 13:23:20 +0000 (16:23 +0300)] 
EAP-TLS peer: Fix protected success indication check for resumed session

The internal flag prot_success_received was not cleared between the
sessions and that resulted in the resumed session not mandating the
protected success indication to be received. Fix this by clearing the
internal flag so that the EAP-TLS handshake using session resumption
with TLS 1.3 takes care of the required check before marking the
authentication successfully completed. This will make the EAP-TLS peer
reject an EAP-Success message should it be received without the
protected success indication.

Signed-off-by: Jouni Malinen <quic_jouni@quicinc.com>
3 years agoEAP-TLS server: Send final TLS message for resumed session with TLS 1.3
Jouni Malinen [Mon, 2 May 2022 13:19:06 +0000 (16:19 +0300)] 
EAP-TLS server: Send final TLS message for resumed session with TLS 1.3

The final message with NewSessionTicket and ApplicationData(0x00) was
already generated, but that was not sent out due the session considered
to be already completed. Fix this by actually sending out that message
to allow the peer to receive the new session ticket and protected
success indication when using resuming a session with TLS 1.3.

Signed-off-by: Jouni Malinen <quic_jouni@quicinc.com>
3 years agoOpenSSL: Limit the number of TLS 1.3 session tickets to one
Jouni Malinen [Mon, 2 May 2022 12:57:44 +0000 (15:57 +0300)] 
OpenSSL: Limit the number of TLS 1.3 session tickets to one

One session ticket is sufficient for EAP-TLS, so do not bother
generating more than a single session ticket.

Signed-off-by: Jouni Malinen <quic_jouni@quicinc.com>
3 years agowpa_supplicant/README-WPS: Beautifications
Yegor Yefremov [Sun, 1 May 2022 14:15:39 +0000 (16:15 +0200)] 
wpa_supplicant/README-WPS: Beautifications

Fix grammar, remove spaces, and new lines.

Signed-off-by: Yegor Yefremov <yegorslists@googlemail.com>
3 years agoOpenSSL: SSLKEYLOGFILE capability to allow Wireshark TLS decoding
Alexander Clouter [Thu, 28 Apr 2022 22:07:35 +0000 (23:07 +0100)] 
OpenSSL: SSLKEYLOGFILE capability to allow Wireshark TLS decoding

A port of the trivial patch I wrote for FreeRADIUS to allow TLS decoding
in Wireshark for hostapd/wpa_supplicant:

https://github.com/FreeRADIUS/freeradius-server/commit/df0eb0a8849611cb44e0baeadfd3e6fcd20bc7b9

Signed-off-by: Alexander Clouter <alex@coremem.com>
3 years agotests: Enable additional TLS test cases with wolfSSL
Juliusz Sosinowicz [Mon, 25 Apr 2022 14:18:49 +0000 (16:18 +0200)] 
tests: Enable additional TLS test cases with wolfSSL

Signed-off-by: Juliusz Sosinowicz <juliusz@wolfssl.com>
3 years agowolfSSL: Fix OCSP stapling
Juliusz Sosinowicz [Mon, 25 Apr 2022 14:18:49 +0000 (16:18 +0200)] 
wolfSSL: Fix OCSP stapling

Signed-off-by: Juliusz Sosinowicz <juliusz@wolfssl.com>
3 years agowolfSSL: Allow TLS version 1.3 to be disabled
Juliusz Sosinowicz [Mon, 25 Apr 2022 14:18:49 +0000 (16:18 +0200)] 
wolfSSL: Allow TLS version 1.3 to be disabled

Signed-off-by: Juliusz Sosinowicz <juliusz@wolfssl.com>
3 years agowolfSSL: Fix TLS 1.3 session handling
Juliusz Sosinowicz [Mon, 25 Apr 2022 14:18:49 +0000 (16:18 +0200)] 
wolfSSL: Fix TLS 1.3 session handling

Uses the changes to wolfSSL found in
https://github.com/wolfSSL/wolfssl/pull/5078

Signed-off-by: Juliusz Sosinowicz <juliusz@wolfssl.com>
3 years agowolfSSL: Check for the too-short-password error in pbkdf2_sha1()
Juliusz Sosinowicz [Fri, 29 Apr 2022 14:11:54 +0000 (16:11 +0200)] 
wolfSSL: Check for the too-short-password error in pbkdf2_sha1()

This may fail with FIPS builds because the FIPS requirement is that the
password must be at least 14 characters.

Signed-off-by: Juliusz Sosinowicz <juliusz@wolfssl.com>
3 years agoCheck the return of pbkdf2_sha1() for errors
Juliusz Sosinowicz [Fri, 29 Apr 2022 14:11:54 +0000 (16:11 +0200)] 
Check the return of pbkdf2_sha1() for errors

pbkdf2_sha1() may return errors and this should be checked in calls.
This is especially an issue with FIPS builds because the FIPS
requirement is that the password must be at least 14 characters.

Signed-off-by: Juliusz Sosinowicz <juliusz@wolfssl.com>
3 years agowolfSSL: Fixes for FIPS builds
Juliusz Sosinowicz [Fri, 29 Apr 2022 14:18:00 +0000 (16:18 +0200)] 
wolfSSL: Fixes for FIPS builds

Some API is not available when using FIPS. We need to allocate memory
and initialize the structs directly.

Signed-off-by: Juliusz Sosinowicz <juliusz@wolfssl.com>
3 years agowolfSSL: Register a FIPS callback
Juliusz Sosinowicz [Fri, 29 Apr 2022 14:18:00 +0000 (16:18 +0200)] 
wolfSSL: Register a FIPS callback

Register a callback with wolfCrypt_SetCb_fips to inform the user of
errors in the wolfCrypt FIPS module.

Signed-off-by: Juliusz Sosinowicz <juliusz@wolfssl.com>
3 years agotests: Add a note for wolfSSL testing with Brainpool curves
Juliusz Sosinowicz [Mon, 25 Apr 2022 14:18:15 +0000 (16:18 +0200)] 
tests: Add a note for wolfSSL testing with Brainpool curves

Signed-off-by: Juliusz Sosinowicz <juliusz@wolfssl.com>
3 years agowolfSSL: Implement crypto_ec_key wrappers
Juliusz Sosinowicz [Mon, 25 Apr 2022 14:18:15 +0000 (16:18 +0200)] 
wolfSSL: Implement crypto_ec_key wrappers

These are needed to support SAEK-PK with the wolfSSL backend.

Signed-off-by: Juliusz Sosinowicz <juliusz@wolfssl.com>
3 years agowolfSSL: Add missing free calls for wolfSSL structs
Juliusz Sosinowicz [Thu, 28 Apr 2022 12:16:36 +0000 (14:16 +0200)] 
wolfSSL: Add missing free calls for wolfSSL structs

In some configurations the wc_Init*() functions may either allocate
memory or other system resources. These resources need to be freed.

Co-authored-by: JacobBarthelmeh <jacob@wolfssl.com>
Signed-off-by: Juliusz Sosinowicz <juliusz@wolfssl.com>
3 years agowolfSSL: Support both DER and PEM blobs
Juliusz Sosinowicz [Fri, 29 Apr 2022 14:18:38 +0000 (16:18 +0200)] 
wolfSSL: Support both DER and PEM blobs

Add support for loading private keys and certificates in both PEM and
DER formats with wolfSSL.

Signed-off-by: Juliusz Sosinowicz <juliusz@wolfssl.com>
3 years agotests: IMSI privacy with imsi_privacy_key on peer
Jouni Malinen [Sun, 1 May 2022 10:01:46 +0000 (13:01 +0300)] 
tests: IMSI privacy with imsi_privacy_key on peer

Signed-off-by: Jouni Malinen <quic_jouni@quicinc.com>
3 years agoEAP-SIM/AKA peer: IMSI privacy
Jouni Malinen [Sun, 1 May 2022 08:34:49 +0000 (11:34 +0300)] 
EAP-SIM/AKA peer: IMSI privacy

Add support for IMSI privacy in the EAP-SIM/AKA peer implementation. If
the new wpa_supplicant network configuration parameter imsi_privacy_key
is used to specify an RSA public key in a form of a PEM encoded X.509v3
certificate, that key will be used to encrypt the permanent identity
(IMSI) in the transmitted EAP messages.

Signed-off-by: Jouni Malinen <quic_jouni@quicinc.com>
3 years agotests: IMSI privacy with imsi_identity
Jouni Malinen [Sat, 30 Apr 2022 13:28:33 +0000 (16:28 +0300)] 
tests: IMSI privacy with imsi_identity

Add RSA public key (in an X.509v3 certificate) and private key for IMSI
privacy. These were generated with
openssl req -new -x509 -sha256 -newkey rsa:2048 -nodes -days 7500 \
-keyout imsi-privacy-key.pem -out imsi-privacy-cert.pem

Test the case where wpa_supplicant side RSA-OAEP operation for IMSI
privacy is done in an external component while the hostapd (EAP server)
processing of the encrypted identity is internal.

Signed-off-by: Jouni Malinen <quic_jouni@quicinc.com>
3 years agoEAP-SIM/AKA server: IMSI privacy
Jouni Malinen [Sat, 30 Apr 2022 13:56:10 +0000 (16:56 +0300)] 
EAP-SIM/AKA server: IMSI privacy

Add support for IMSI privacy in the EAP-SIM/AKA server implementation.
If the new hostapd configuration parameter imsi_privacy_key is used to
specify an RSA private key, that key will be used to decrypt encrypted
permanent identity.

Signed-off-by: Jouni Malinen <quic_jouni@quicinc.com>
3 years agoOpenSSL: RSA-OAEP-SHA-256 encryption/decryption
Jouni Malinen [Sat, 30 Apr 2022 10:34:00 +0000 (13:34 +0300)] 
OpenSSL: RSA-OAEP-SHA-256 encryption/decryption

Add new crypto wrappers for performing RSA-OAEP-SHA-256 encryption and
decryption. These are needed for IMSI privacy.

Signed-off-by: Jouni Malinen <quic_jouni@quicinc.com>
3 years agoEHT: Channel switch command support
Muna Sinada [Tue, 19 Apr 2022 18:04:17 +0000 (11:04 -0700)] 
EHT: Channel switch command support

Add option to hostapd control interface CHAN_SWITCH command to allow
switch in EHT mode.

Signed-off-by: Muna Sinada <quic_msinada@quicinc.com>
Signed-off-by: Aloka Dixit <quic_alokad@quicinc.com>
Signed-off-by: Pradeep Kumar Chitrapu <quic_pradeepc@quicinc.com>
3 years agoEHT: Additions to hostapd_set_freq_params()
Muna Sinada [Tue, 19 Apr 2022 18:04:16 +0000 (11:04 -0700)] 
EHT: Additions to hostapd_set_freq_params()

Modify hostapd_set_freq_params() to include EHT parameters and update
the calling functions to match.

Signed-off-by: Muna Sinada <quic_msinada@quicinc.com>
Signed-off-by: Aloka Dixit <quic_alokad@quicinc.com>
Signed-off-by: Pradeep Kumar Chitrapu <quic_pradeepc@quicinc.com>
3 years agoEHT: Indicate EHT support in Neighbor Report element
Aloka Dixit [Tue, 19 Apr 2022 18:04:15 +0000 (11:04 -0700)] 
EHT: Indicate EHT support in Neighbor Report element

Set bit 21 in the neighbor report for an EHT AP as described in IEEE
P802.11be/D1.5, 9.4.2.36. Also move the check for HE outside the check
for HT as neither HT nor VHT are enabled in the 6 GHz band.

Signed-off-by: Aloka Dixit <quic_alokad@quicinc.com>
Signed-off-by: Pradeep Kumar Chitrapu <quic_pradeepc@quicinc.com>
3 years agoEHT: Provide EHT capabilities in STA addition path
Aloka Dixit [Tue, 19 Apr 2022 18:04:13 +0000 (11:04 -0700)] 
EHT: Provide EHT capabilities in STA addition path

Add support for EHT capabilities in the addition of a new station entry
to the driver.

Signed-off-by: Aloka Dixit <quic_alokad@quicinc.com>
Signed-off-by: Pradeep Kumar Chitrapu <quic_pradeepc@quicinc.com>
3 years agoEHT: Process (Re)Association Request frame capabilities
Aloka Dixit [Tue, 19 Apr 2022 18:04:12 +0000 (11:04 -0700)] 
EHT: Process (Re)Association Request frame capabilities

Parse EHT capabilities sent by a non-AP STA in (Re)Association Request
frames. Validate the length of the element, matching MCS rates between
AP TX and STA RX. Store the capabilities in the station info structure.

Signed-off-by: Aloka Dixit <quic_alokad@quicinc.com>
Signed-off-by: Pradeep Kumar Chitrapu <quic_pradeepc@quicinc.com>
3 years agoEHT: Parse elements received in Management frames
Aloka Dixit [Tue, 19 Apr 2022 18:04:11 +0000 (11:04 -0700)] 
EHT: Parse elements received in Management frames

Parse and store pointers to EHT Capabilities and Operation elements
received in Management frames.

Signed-off-by: Aloka Dixit <quic_alokad@quicinc.com>
Signed-off-by: Pradeep Kumar Chitrapu <quic_pradeepc@quicinc.com>
3 years agoEHT: Add operation element in AP mode Management frames
Aloka Dixit [Tue, 19 Apr 2022 18:04:09 +0000 (11:04 -0700)] 
EHT: Add operation element in AP mode Management frames

Add EHT Operation element in Beacon, Probe Response, and (Re)Association
Response frames using the format described in IEEE P802.11be/D1.5,
9.4.2.311.

Signed-off-by: Aloka Dixit <quic_alokad@quicinc.com>
Signed-off-by: Muna Sinada <quic_msinada@quicinc.com>
Signed-off-by: Pradeep Kumar Chitrapu <quic_pradeepc@quicinc.com>
3 years agoEHT: Add capabilities element in AP mode Management frames
Aloka Dixit [Tue, 19 Apr 2022 18:04:08 +0000 (11:04 -0700)] 
EHT: Add capabilities element in AP mode Management frames

Add EHT Capabilities element in Beacon, Probe Response, and
(Re)Association Response frames.

Signed-off-by: Aloka Dixit <quic_alokad@quicinc.com>
Signed-off-by: Pradeep Kumar Chitrapu <quic_pradeepc@quicinc.com>
3 years agoEHT: Add configuration options for beamforming capabilities
Aloka Dixit [Tue, 19 Apr 2022 18:04:05 +0000 (11:04 -0700)] 
EHT: Add configuration options for beamforming capabilities

Add configuration options to set EHT SU/MU beamforming capabilities.

Signed-off-by: Aloka Dixit <quic_alokad@quicinc.com>
Signed-off-by: Pradeep Kumar Chitrapu <quic_pradeepc@quicinc.com>
3 years agoEHT: Add operating channel width configuration
Aloka Dixit [Tue, 19 Apr 2022 18:04:04 +0000 (11:04 -0700)] 
EHT: Add operating channel width configuration

Add new configuration options to configure EHT operating channel
width and center frequency.

Signed-off-by: Aloka Dixit <quic_alokad@quicinc.com>
Signed-off-by: Pradeep Kumar Chitrapu <quic_pradeepc@quicinc.com>
3 years agoEHT: AP mode configuration options to enable/disable the support
Aloka Dixit [Tue, 19 Apr 2022 18:04:03 +0000 (11:04 -0700)] 
EHT: AP mode configuration options to enable/disable the support

Add compilation support for IEEE 802.11be along with options to enable
EHT support per radio and disable per interface.

Enabling HE is mandatory to enable EHT mode.

Tested-by: Pradeep Kumar Chitrapu <quic_pradeepc@quicinc.com>
Signed-off-by: Aloka Dixit <quic_alokad@quicinc.com>
Signed-off-by: Pradeep Kumar Chitrapu <quic_pradeepc@quicinc.com>
3 years agonl80211: Pass station's EHT capabilities to the driver in sta_add()
Aloka Dixit [Tue, 19 Apr 2022 18:04:14 +0000 (11:04 -0700)] 
nl80211: Pass station's EHT capabilities to the driver in sta_add()

Pass non-AP STA's EHT capabilities to the driver using the
NL80211_ATTR_EHT_CAPABILITY attribute.

Signed-off-by: Aloka Dixit <quic_alokad@quicinc.com>
Signed-off-by: Pradeep Kumar Chitrapu <quic_pradeepc@quicinc.com>
3 years agonl80211: Parse EHT capabilities from the driver
Aloka Dixit [Tue, 19 Apr 2022 18:04:10 +0000 (11:04 -0700)] 
nl80211: Parse EHT capabilities from the driver

Add nl80211 support to parse the EHT capabilities passed by the kernel
using new attributes added in NL80211_BAND_ATTR_IFTYPE_DATA.

Signed-off-by: Aloka Dixit <quic_alokad@quicinc.com>
Signed-off-by: Pradeep Kumar Chitrapu <quic_pradeepc@quicinc.com>
3 years agoEHT: Define EHT elements
Aloka Dixit [Tue, 19 Apr 2022 18:04:02 +0000 (11:04 -0700)] 
EHT: Define EHT elements

Define the following fields described in IEEE P802.11be/D1.5:
- 9.4.2.311 EHT Operation element
- 9.4.2.313 EHT Capabilities element

Signed-off-by: Aloka Dixit <quic_alokad@quicinc.com>
Signed-off-by: Pradeep Kumar Chitrapu <quic_pradeepc@quicinc.com>
3 years agodefconfig: Document IEEE 802.11ax as a published amendment
Jouni Malinen [Fri, 29 Apr 2022 10:30:48 +0000 (13:30 +0300)] 
defconfig: Document IEEE 802.11ax as a published amendment

The comment about the IEEE 802.11ax functionality being experimental and
based on a not yet finalized standard is not accurate anymore since IEEE
Std 802.11ax-2021 has already been published. Remove that comment and
add the entry for wpa_supplicant as well.

Signed-off-by: Jouni Malinen <quic_jouni@quicinc.com>
3 years agotests: HE with 20 MHz channel width on 6 GHz
Jouni Malinen [Thu, 28 Apr 2022 20:58:03 +0000 (23:58 +0300)] 
tests: HE with 20 MHz channel width on 6 GHz

Signed-off-by: Jouni Malinen <quic_jouni@quicinc.com>
3 years agotests: Update regulatory database to VMs
Jouni Malinen [Thu, 28 Apr 2022 20:56:35 +0000 (23:56 +0300)] 
tests: Update regulatory database to VMs

Update the wireless-regdb database to the wireless-regdb.git version of
2022-04-08.

Signed-off-by: Jouni Malinen <quic_jouni@quicinc.com>
3 years agoSet hostapd hw_mode automatically based on 6 GHz op_class
Jouni Malinen [Fri, 29 Apr 2022 08:18:34 +0000 (11:18 +0300)] 
Set hostapd hw_mode automatically based on 6 GHz op_class

Allow hostapd configuration to specify use of the 6 GHz band with the
specific op_class values without having to set the hw_mode=a parameter
explicitly.

Signed-off-by: Jouni Malinen <quic_jouni@quicinc.com>
3 years agonl80211: Increase the buffer length for debug printing channels
Jouni Malinen [Thu, 28 Apr 2022 18:15:41 +0000 (21:15 +0300)] 
nl80211: Increase the buffer length for debug printing channels

The previously used buffer was not large enough to be able to print out
all 6 GHz channels, so use a larger buffer to avoid leaving out
supported channels from the debug print.

Signed-off-by: Jouni Malinen <quic_jouni@quicinc.com>
3 years agoQCA vendor attribute to allow eMLSR HW mode
Gururaj Pandurangi [Mon, 25 Apr 2022 11:38:40 +0000 (04:38 -0700)] 
QCA vendor attribute to allow eMLSR HW mode

Add QCA_WLAN_VENDOR_ATTR_WIFI_TEST_CONFIG_11BE_EMLSR_MODE value to allow
or disallow eMLSR hardware mode for IEEE 802.11be MLO capable devices.
If this attribute is set to 1, and if the firmware supports this
capability too, the STA advertises this capability to the AP over
Association Request frame. This attribute will not have any effect on
legacy devices with no IEEE 802.11be support.

Signed-off-by: Gururaj Pandurangi <quic_panduran@quicinc.com>
3 years agoOpenSSL: Track SSL_SESSION ex data separately
Jouni Malinen [Wed, 27 Apr 2022 14:04:28 +0000 (17:04 +0300)] 
OpenSSL: Track SSL_SESSION ex data separately

It looks like the OpenSSL callbacks for SSL_SESSION can end up calling
the remove callback for multiple SSL_SESSION entries that share the same
ex data. This could result in double freeing the session data on the
server side.

Track the SSL_SESSION ex data in a separate list and free the
allocations only if they are pointing to a valid allocated wpabuf
pointer.

Signed-off-by: Jouni Malinen <quic_jouni@quicinc.com>
3 years agotests: MBO and dynamic association disallowed change with passive scanning
Jouni Malinen [Sun, 24 Apr 2022 08:46:52 +0000 (11:46 +0300)] 
tests: MBO and dynamic association disallowed change with passive scanning

Signed-off-by: Jouni Malinen <j@w1.fi>
3 years agoMBO: Check association disallowed in Beacon frames, if newer
Kuan-Chung Chen [Fri, 28 Jan 2022 09:25:46 +0000 (17:25 +0800)] 
MBO: Check association disallowed in Beacon frames, if newer

When a station receives either a Beacon frame or a Probe Response frame
from an AP that contains an MBO element with the Association Disallowed
attribute, the station should prevent association to that AP. When using
passive scanning, it is possible for the scan results to contain the
latest information in the Beacon frame elements instead of the Probe
Response frame elements. That could result in using old information and
not noticing the AP having changed its state to disallowing new
associations.

Make it more likely to follow the AP's change to disallow associations
by checking the Beacon frame elements instead of Probe Response frame
elements if the scan results are known to contain newer information for
the Beacon frame.

Signed-off-by: Kuan-Chung Chen <damon.chen@realtek.com>
3 years agoDetermine whether Beacon frame information is newer in scan results
Jouni Malinen [Sun, 24 Apr 2022 09:06:56 +0000 (12:06 +0300)] 
Determine whether Beacon frame information is newer in scan results

It can be helpful to know whether the information elements from the
Beacon frame or the Probe Response frame are newer when using BSS table
entries, so make this information known, if available. This allows the
Beacon frame elements to be preferred over the Probe Response frame
elements when desired.

Signed-off-by: Jouni Malinen <j@w1.fi>
3 years agoscan: Print SSID in scan results dump
xinpeng wang [Wed, 20 Apr 2022 09:23:32 +0000 (17:23 +0800)] 
scan: Print SSID in scan results dump

Add printing of SSID into the "Sorted scan reslts" dump for easy reading
and debugging.

Signed-off-by: xinpeng wang <wangxinpeng@uniontech.com>
3 years agoInstall wpa_passphrase when not disabled
Alex Kiernan [Thu, 21 Apr 2022 14:38:42 +0000 (15:38 +0100)] 
Install wpa_passphrase when not disabled

As part of fixing CONFIG_NO_WPA_PASSPHRASE, whilst wpa_passphrase gets
built, its not installed during `make install`.

Fixes: cb41c214b78d ("build: Re-enable options for libwpa_client.so and wpa_passphrase")
Signed-off-by: Alex Kiernan <alexk@zuma.ai>
Signed-off-by: Alex Kiernan <alex.kiernan@gmail.com>
3 years agohostapd: Allow enabling background radar
Ben Greear [Thu, 21 Apr 2022 23:02:39 +0000 (16:02 -0700)] 
hostapd: Allow enabling background radar

This feature does not work on all radios that advertise this feature
with the current driver implementation, and possibly some users don't
want to use it even if it works fine, so disable it by default for now,
but let users enable it as desired with enable_background_radar=1.

Signed-off-by: Ben Greear <greearb@candelatech.com>
3 years agowolfSSL: Speed up crypto_ec_point_compute_y_sqr()
Jouni Malinen [Sat, 23 Apr 2022 13:12:49 +0000 (16:12 +0300)] 
wolfSSL: Speed up crypto_ec_point_compute_y_sqr()

Optimize the calculation by computing (x^2 + a) first to get rid of one
separate multiplication by x.

Signed-off-by: Jouni Malinen <j@w1.fi>
3 years agowolfSSL: Fix crypto_ec_point_compute_y_sqr() error case processing
Jouni Malinen [Sat, 23 Apr 2022 13:04:49 +0000 (16:04 +0300)] 
wolfSSL: Fix crypto_ec_point_compute_y_sqr() error case processing

The result (y2) was cleared and freed in error cases, but the pointer
itself was not cleared to NULL, so the error path would have returned a
pointer to freed memory. Fix this by properly clearing the return value
in error cases. In addition, simplify the function to avoid tracking
success case separately.

Signed-off-by: Jouni Malinen <j@w1.fi>
3 years agowolfSSL: Fix the memory leak of crypto_ec_point_compute_y_sqr()
赵军涛 [Tue, 19 Apr 2022 09:31:35 +0000 (17:31 +0800)] 
wolfSSL: Fix the memory leak of crypto_ec_point_compute_y_sqr()

Local variable "t" needs to be cleared whether "calced" is 0 or 1.

Signed-off-by: 赵军涛 <d2014zjt@163.com>
3 years agowolfSSL: Use wc_HmacInit() to avoid potential use of uninitialized values
Jouni Malinen [Sat, 23 Apr 2022 12:45:31 +0000 (15:45 +0300)] 
wolfSSL: Use wc_HmacInit() to avoid potential use of uninitialized values

wc_HmacSetKey() seems to initialize everything that is needed for the
actual operation, but at least valgrind is reporting use of
uninitialized values when this was done on a data structure that was not
explicitly cleared.

Call wc_HmacInit() before wc_HmacSetKey() to avoid any unexpected
behavior from potentially uninitialized values.

Signed-off-by: Jouni Malinen <j@w1.fi>
3 years agoOpenSSL: Fix build with BoringSSL
Jouni Malinen [Sat, 23 Apr 2022 10:05:49 +0000 (13:05 +0300)] 
OpenSSL: Fix build with BoringSSL

SSL_CTX_set_dh_auto() is not available in BoringSSL even though it
claims to be based on OpenSSL 1.1.1 in OPENSSL_VERSION_NUMBER.

Fixes: ebb3055e1302 ("OpenSSL: Generate DH parameters automatically if not set with dh_file")
Signed-off-by: Jouni Malinen <j@w1.fi>
3 years agoOpenSSL: Remove compatibility options for older versions than 1.0.2
Jouni Malinen [Sat, 23 Apr 2022 10:02:37 +0000 (13:02 +0300)] 
OpenSSL: Remove compatibility options for older versions than 1.0.2

Anything older than OpenSSL 1.0.2 should not be used anymore, so drop
the build compatibility options for those old versions.

Signed-off-by: Jouni Malinen <j@w1.fi>
3 years agoOpenSSL: Drop compatibility options for LibreSSL older than 2.7
Jouni Malinen [Sat, 23 Apr 2022 09:52:27 +0000 (12:52 +0300)] 
OpenSSL: Drop compatibility options for LibreSSL older than 2.7

Compilation was failing even with LibreSSL 2.7 versions, so there is no
point in maintaining these old compatibility options for older versions.

Signed-off-by: Jouni Malinen <j@w1.fi>
3 years agoOpenSSL: Implement crypto_ecdh routines without EC_KEY for OpenSSL 3.0
Jouni Malinen [Sat, 23 Apr 2022 09:28:18 +0000 (12:28 +0300)] 
OpenSSL: Implement crypto_ecdh routines without EC_KEY for OpenSSL 3.0

OpenSSL 3.0 has deprecated the low-level EC_KEY functionality, so use
the EVP API (EVP_EC_gen() and EV_PKEY_derive()) for the crypto_ecdh
wrappers.

Signed-off-by: Jouni Malinen <j@w1.fi>
3 years agoOpenSSL: Use new name for the EC_POINT set/get coordinate functions
Jouni Malinen [Sat, 23 Apr 2022 08:09:28 +0000 (11:09 +0300)] 
OpenSSL: Use new name for the EC_POINT set/get coordinate functions

OpenSSL 1.1.1 deprecated the function names with the _GFp postfix, so
move to the new function name. Add backwards compatibility wrappers for
older versions.

Signed-off-by: Jouni Malinen <j@w1.fi>
3 years agoctrl: Print the source address of the received commands
xinpeng wang [Wed, 5 Jan 2022 08:54:59 +0000 (16:54 +0800)] 
ctrl: Print the source address of the received commands

Sometimes there is a program error to send a large number of commands to
wpa_supplicant, and the source address can help quickly find the program
that sends commands.

Signed-off-by: xinpeng wang <wangxinpeng@uniontech.com>
3 years agowpa_ctrl: Wait for a total of 10 seconds, not 10 seconds per iteration
Alan T. DeKok [Fri, 23 Jul 2021 09:57:43 +0000 (05:57 -0400)] 
wpa_ctrl: Wait for a total of 10 seconds, not 10 seconds per iteration

EINTR will cause the loop to restart, which means that the total
time could be significantly longer than 10 seconds.

Signed-off-by: Alan DeKok <aland@deployingradius.com>
3 years agowolfSSL: Fix certificate commonName checking
Jouni Malinen [Mon, 18 Apr 2022 13:45:42 +0000 (16:45 +0300)] 
wolfSSL: Fix certificate commonName checking

wolfSSL_X509_NAME_get_index_by_NID() uses NID_* to identify the entry.

Signed-off-by: Jouni Malinen <j@w1.fi>
3 years agowolfSSL: Use wolfSSL_export_keying_material() when available
Jouni Malinen [Mon, 18 Apr 2022 13:27:47 +0000 (16:27 +0300)] 
wolfSSL: Use wolfSSL_export_keying_material() when available

This is needed to work with TLS 1.3 key derivation. It looks the needed
functionality was added in wolfSSL 4.7.0.

Signed-off-by: Jouni Malinen <j@w1.fi>
3 years agotests: Fix SAE-PK capability checks for sigma_dut test cases
Jouni Malinen [Mon, 18 Apr 2022 08:20:33 +0000 (11:20 +0300)] 
tests: Fix SAE-PK capability checks for sigma_dut test cases

These were testing only of SAE, not SAE-PK capability, and needs to be
skipped in SAE-PK is not included in the build.

Signed-off-by: Jouni Malinen <j@w1.fi>
3 years agotests: Check DPP in build for couple of missing cases
Jouni Malinen [Mon, 18 Apr 2022 08:11:29 +0000 (11:11 +0300)] 
tests: Check DPP in build for couple of missing cases

These test cases need to be skipped in DPP is not included in the build.

Signed-off-by: Jouni Malinen <j@w1.fi>
3 years agowolfSSL: Fix crypto_dh_init() and dh5_init()
Jouni Malinen [Mon, 18 Apr 2022 08:01:23 +0000 (11:01 +0300)] 
wolfSSL: Fix crypto_dh_init() and dh5_init()

priv_sz and pub_sz needs to be initialized to the buffer size before the
wc_DhGenerateKeyPair() call. The previous version happened to work in
some cases where a separate handled prime length was used, but not for
the generic case.

Signed-off-by: Jouni Malinen <j@w1.fi>
3 years agowolfSSL: Fix crypto_ecdh_* with ECC_TIMING_RESISTANT
Jouni Malinen [Sun, 17 Apr 2022 21:54:37 +0000 (00:54 +0300)] 
wolfSSL: Fix crypto_ecdh_* with ECC_TIMING_RESISTANT

It looks like crypto_ecdh_set_peerkey() had started failing at some
point with a wolfSSL update due to ECC_TIMING_RESISTANT from
--enable-harden requiring RNG to be set.

Signed-off-by: Jouni Malinen <j@w1.fi>
3 years agoEAP-EKE server: Fix a memory leak on an error path
Jouni Malinen [Sun, 17 Apr 2022 20:37:50 +0000 (23:37 +0300)] 
EAP-EKE server: Fix a memory leak on an error path

The allocated Response/Commit message was not freed if DH initialization
failed.

Signed-off-by: Jouni Malinen <j@w1.fi>
3 years agotests: Include additional tests for wolfSSL builds
Juliusz Sosinowicz [Thu, 26 Aug 2021 09:25:34 +0000 (11:25 +0200)] 
tests: Include additional tests for wolfSSL builds

Signed-off-by: Juliusz Sosinowicz <juliusz@wolfssl.com>