]> git.ipfire.org Git - thirdparty/hostap.git/log
thirdparty/hostap.git
3 years agotests: Fix fuzzing/sae build
Jouni Malinen [Thu, 28 Jul 2022 14:08:11 +0000 (17:08 +0300)] 
tests: Fix fuzzing/sae build

sae.c depends on wpa_common.c now and as such, this test build needs to
pull in whatever is needed there and that happens to include sha1-prf.c.
Add that to the fuzzer to fix the build.

Signed-off-by: Jouni Malinen <quic_jouni@quicinc.com>
3 years agotests: Fix p2p_channel_avoid3
Jouni Malinen [Thu, 28 Jul 2022 13:56:21 +0000 (16:56 +0300)] 
tests: Fix p2p_channel_avoid3

This test case assumed that the p2p_pref_chan 128:44 parameter would
have resulted in channel 44 (5220 MHz) being selected. That does not
work anymore since that channel was marked to require DFS/radar
detection in regdb. Fix the text case by changing to use another country
with rules that match the test case expectations.

Signed-off-by: Jouni Malinen <quic_jouni@quicinc.com>
3 years agotests: Add more time for scan/connection
Jouni Malinen [Thu, 28 Jul 2022 13:41:23 +0000 (16:41 +0300)] 
tests: Add more time for scan/connection

It looks like some test cases could fail due to timeouts since the 10
second wait may not be sufficient to cover some cases where 6 GHz
channels get scanned. Increase the timeouts to avoid hitting such cases.

Signed-off-by: Jouni Malinen <quic_jouni@quicinc.com>
3 years agonl80211: Allow more time for the initial scan with 6 GHz
Jouni Malinen [Thu, 28 Jul 2022 13:40:05 +0000 (16:40 +0300)] 
nl80211: Allow more time for the initial scan with 6 GHz

The initial timeout of 10 seconds for the first scan before knowing
whether the driver reports scan completion events may not be sufficient
in cases where the driver ends up scanning a large number of channels.
In particular, this could be hit with 6 GHz support. Increase this
timeout when the driver indicates support for 6 GHz channels.

Signed-off-by: Jouni Malinen <quic_jouni@quicinc.com>
3 years agotests: Allow 6 GHz opclasses in MBO checks
Jouni Malinen [Thu, 28 Jul 2022 13:16:47 +0000 (16:16 +0300)] 
tests: Allow 6 GHz opclasses in MBO checks

It looks like the host update of regulatory information can still get
through somehow, so add alternative expected values for the supported
operating classes for cases where 6 GHz frequencies were added recently.

Signed-off-by: Jouni Malinen <quic_jouni@quicinc.com>
3 years agoRemove a host of unnecessary OPENSSL_IS_BORINGSSL ifdefs
David Benjamin [Mon, 13 Jun 2022 16:22:05 +0000 (12:22 -0400)] 
Remove a host of unnecessary OPENSSL_IS_BORINGSSL ifdefs

The <openssl/buf.h> include is relevant in both OpenSSL and BoringSSL
because the file uses BUF_MEM (include what you use). OpenSSL just
happened to include it via another file. OpenSSL also spells it
<openssl/buffer.h>, not matching the type, so use the compatible
spelling.

Additionally all the CHECKED_CAST and manual STACK_OF(T) definitions
call into BoringSSL internals. The correct, public APIs are simply to
just use the same code as OpenSSL and call the DEFINE_STACK_OF macros.

Signed-off-by: David Benjamin <davidben@google.com>
3 years agoAlways process pending QCA_NL80211_VENDOR_SUBCMD_KEY_MGMT_ROAM_AUTH data
Veerendranath Jakkam [Mon, 25 Jul 2022 11:20:12 +0000 (16:50 +0530)] 
Always process pending QCA_NL80211_VENDOR_SUBCMD_KEY_MGMT_ROAM_AUTH data

Commit 74818ca63f7e ("Process
QCA_NL80211_VENDOR_SUBCMD_KEY_MGMT_ROAM_AUTH after NL80211_CMD_ROAM")
added workaround to hold the pending
QCA_NL80211_VENDOR_SUBCMD_KEY_MGMT_ROAM_AUTH event data for up to 100 ms
in case NL80211_CMD_ROAM is not received first. The 100 ms wait period
was sufficient for most of the cases but it's observed that some times
kernel is taking more than 100 ms to process and send NL80211_CMD_ROAM
to userspace.

If NL80211_CMD_ROAM takes more than 100 ms
QCA_NL80211_VENDOR_SUBCMD_KEY_MGMT_ROAM_AUTH event data getting ignored
though wpa_supplicant has it. To avoid this remove timeout for
QCA_NL80211_VENDOR_SUBCMD_KEY_MGMT_ROAM_AUTH event data since driver
always indicates NL80211_CMD_ROAM along with
QCA_NL80211_VENDOR_SUBCMD_KEY_MGMT_ROAM_AUTH.

In addition, clear the pending event data when marking the interface
disconnected since the roaming information is supposed to be used only
when reassociating without a disconnection.

Signed-off-by: Veerendranath Jakkam <quic_vjakkam@quicinc.com>
3 years agoQoS: Use common classifier_mask for ipv4/ipv6
Purushottam Kushwaha [Fri, 1 Jul 2022 06:48:12 +0000 (12:18 +0530)] 
QoS: Use common classifier_mask for ipv4/ipv6

ipv4_params/ip6_params in type4_params maintains separate classifier
mask while type4_params already has a common classifier_mask. Lets
use the common classifier mask for both ipv4/ipv6 params and remove
the redundant params_mask in ipv4_params/ip6_params.

Signed-off-by: Purushottam Kushwaha <quic_pkushwah@quicinc.com>
3 years agoAdd fixed FDD mode to qca_btc_chain_mode QCA vendor attribute
Xiaoning Ma [Wed, 27 Jul 2022 14:07:22 +0000 (22:07 +0800)] 
Add fixed FDD mode to qca_btc_chain_mode QCA vendor attribute

Previously when chains of BT and WLAN 2.4 GHz are separated,
hybrid mode will be used for BTC. Now adding fixed FDD mode
to fulfill different BTC scenarios.

Signed-off-by: Jouni Malinen <quic_jouni@quicinc.com>
3 years agotests: sigma_dut and DPP Enrollee unsupported curves
Jouni Malinen [Thu, 28 Jul 2022 08:22:44 +0000 (11:22 +0300)] 
tests: sigma_dut and DPP Enrollee unsupported curves

Signed-off-by: Jouni Malinen <quic_jouni@quicinc.com>
3 years agoDPP: Check Enrollee supported curves when building Config Response
Jouni Malinen [Thu, 28 Jul 2022 08:19:55 +0000 (11:19 +0300)] 
DPP: Check Enrollee supported curves when building Config Response

The Enrollee may report its supported curves in the bootstrapping URI.
If it does that, the Configurator may stop generating the Config Object
that would depend on the Enrollee using a curve that it did not indicate
as being supported. Check for this case while proessing the Config
Request and stop Configurator from building a configuration that is
known not to work.

Signed-off-by: Jouni Malinen <quic_jouni@quicinc.com>
3 years agotests: sigma_dut and DPP MUDURL setting for hostapd
Jouni Malinen [Wed, 27 Jul 2022 10:43:58 +0000 (13:43 +0300)] 
tests: sigma_dut and DPP MUDURL setting for hostapd

Signed-off-by: Jouni Malinen <quic_jouni@quicinc.com>
3 years agoDPP: Allow dpp_controller_start without arguments in CLIs
Jouni Malinen [Wed, 27 Jul 2022 09:33:40 +0000 (12:33 +0300)] 
DPP: Allow dpp_controller_start without arguments in CLIs

The DPP_CONTROLLER_START control interface command can be used without
any arguments, so do not force at least a single argument to be included
in wpa_cli and hostapd_cli.

Signed-off-by: Jouni Malinen <quic_jouni@quicinc.com>
3 years agoFix ifdef condition for imsi_privacy_cert
Jouni Malinen [Sun, 24 Jul 2022 21:27:20 +0000 (00:27 +0300)] 
Fix ifdef condition for imsi_privacy_cert

CRYPTO_RSA_OAEP_SHA256 is not sufficient here since ssid->eap does not
exist without IEEE8021X_EAPOL.

Signed-off-by: Jouni Malinen <quic_jouni@quicinc.com>
3 years agotests: SAE with extended key AKM
Jouni Malinen [Sun, 24 Jul 2022 18:47:12 +0000 (21:47 +0300)] 
tests: SAE with extended key AKM

Signed-off-by: Jouni Malinen <quic_jouni@quicinc.com>
3 years agotests: More detailed report on SAE PMKSA caching error case
Jouni Malinen [Sun, 24 Jul 2022 15:40:30 +0000 (18:40 +0300)] 
tests: More detailed report on SAE PMKSA caching error case

Signed-off-by: Jouni Malinen <quic_jouni@quicinc.com>
3 years agoSAE: Derive a variable length PMK with the new AKM suites
Jouni Malinen [Sun, 24 Jul 2022 19:16:40 +0000 (22:16 +0300)] 
SAE: Derive a variable length PMK with the new AKM suites

Select the PMK length based on the used group (prime length) when using
the new AKM suites for SAE.

Signed-off-by: Jouni Malinen <quic_jouni@quicinc.com>
3 years agoSAE: Indicate AKM suite selector in commit for new AKM suites
Jouni Malinen [Sun, 24 Jul 2022 19:24:56 +0000 (22:24 +0300)] 
SAE: Indicate AKM suite selector in commit for new AKM suites

SAE authentication needs to known which AKM suite is being used to be
able to determine the correct PMK length for the new AKM suite selectors
that use variable length keys.

Signed-off-by: Jouni Malinen <quic_jouni@quicinc.com>
3 years agoSAE: Use H2E unconditionally with the new AKM suites
Jouni Malinen [Sun, 24 Jul 2022 19:20:58 +0000 (22:20 +0300)] 
SAE: Use H2E unconditionally with the new AKM suites

The new SAE AKM suites are defined to use H2E, so ignore the sae_pwe
value when these AKM suites are used similarly to the way H2E gets
enabled when SAE Password Identifiers are used.

Signed-off-by: Jouni Malinen <quic_jouni@quicinc.com>
3 years agoSAE: Store PMK length and AKM in SAE data
Jouni Malinen [Sun, 24 Jul 2022 19:15:52 +0000 (22:15 +0300)] 
SAE: Store PMK length and AKM in SAE data

These are needed to be able to support new AKM suites with variable
length PMK.

Signed-off-by: Jouni Malinen <quic_jouni@quicinc.com>
3 years agoSAE: EAPOL-Key and key/MIC length information for the new AKM suites
Jouni Malinen [Sun, 24 Jul 2022 19:09:51 +0000 (22:09 +0300)] 
SAE: EAPOL-Key and key/MIC length information for the new AKM suites

Update the AKM suite specific mapping of various EAPOL-Key key lengths
and algorithms to include the new SAE AKM suites with variable length
keys.

Signed-off-by: Jouni Malinen <quic_jouni@quicinc.com>
3 years agoSAE: Driver capability flags for the new SAE AKM suites
Jouni Malinen [Sun, 24 Jul 2022 19:09:07 +0000 (22:09 +0300)] 
SAE: Driver capability flags for the new SAE AKM suites

Signed-off-by: Jouni Malinen <quic_jouni@quicinc.com>
3 years agoSAE: Internal WPA_KEY_MGMT_* defines for extended key AKMs
Jouni Malinen [Sun, 24 Jul 2022 19:05:37 +0000 (22:05 +0300)] 
SAE: Internal WPA_KEY_MGMT_* defines for extended key AKMs

Define new WPA_KEY_MGMT_* values for the new SAE AKM suite selectors
with variable length keys. This includes updates to various mapping and
checking of the SAE key_mgmt values.

Signed-off-by: Jouni Malinen <quic_jouni@quicinc.com>
3 years agoSAE: Use wpa_key_mgmt_sae() helper
Jouni Malinen [Sun, 24 Jul 2022 15:43:21 +0000 (18:43 +0300)] 
SAE: Use wpa_key_mgmt_sae() helper

Use the existing helper function instead of maintaining multiple copies
of lists of SAE key management suites.

Signed-off-by: Jouni Malinen <quic_jouni@quicinc.com>
3 years agoDefine new RSN AKM suite selector values
Jouni Malinen [Sun, 24 Jul 2022 10:58:38 +0000 (13:58 +0300)] 
Define new RSN AKM suite selector values

Add the new AKM suite selectors defined in IEEE P802.11-REVme/D1.3.

Signed-off-by: Jouni Malinen <quic_jouni@quicinc.com>
3 years agoDPP: Clear push button announcement state on wpa_supplicant FLUSH
Jouni Malinen [Sat, 23 Jul 2022 20:31:46 +0000 (23:31 +0300)] 
DPP: Clear push button announcement state on wpa_supplicant FLUSH

This was already done in hostapd and same is needed for wpa_supplicant
to avoid testing issues due to session overlap detection from previous
test cases.

Signed-off-by: Jouni Malinen <quic_jouni@quicinc.com>
3 years agotests: DPP Controller/Relay with need to discover Controller
Jouni Malinen [Sat, 23 Jul 2022 19:44:11 +0000 (22:44 +0300)] 
tests: DPP Controller/Relay with need to discover Controller

Signed-off-by: Jouni Malinen <quic_jouni@quicinc.com>
3 years agoDPP: Event message for indicating when Relay would need a Controller
Jouni Malinen [Sat, 23 Jul 2022 19:42:24 +0000 (22:42 +0300)] 
DPP: Event message for indicating when Relay would need a Controller

The new DPP-RELAY-NEEDS-CONTROLLER control interface event can be used
to trigger mDNS discovery of a Controller to see if such a connection
can be established automatically at the time an Enrollee is trying to
initiate an operation.

Signed-off-by: Jouni Malinen <quic_jouni@quicinc.com>
3 years agotests: DPP Relay and adding/removing connection to a Controller
Jouni Malinen [Sat, 23 Jul 2022 14:40:36 +0000 (17:40 +0300)] 
tests: DPP Relay and adding/removing connection to a Controller

Signed-off-by: Jouni Malinen <quic_jouni@quicinc.com>
3 years agoDPP: Allow Relay connections to Controllers to be added and removed
Jouni Malinen [Sat, 23 Jul 2022 14:41:00 +0000 (17:41 +0300)] 
DPP: Allow Relay connections to Controllers to be added and removed

The new control interface commands "DPP_RELAY_ADD_CONTROLLER <IP addr>
<PK hash>" and "DPP_RELAY_REMOVE_CONTROLLER <IP addr>" can now be used
to dynamically add and remove connections to Controllers for the cases
where the connection is initialized through a DPP Public Action frame
(i.e., Controller as the Responder).

Signed-off-by: Jouni Malinen <quic_jouni@quicinc.com>
3 years agoAdd a comparison function for hostapd_ip_addr
Jouni Malinen [Sat, 23 Jul 2022 14:10:24 +0000 (17:10 +0300)] 
Add a comparison function for hostapd_ip_addr

Signed-off-by: Jouni Malinen <quic_jouni@quicinc.com>
3 years agoDPP: Advertise Configurator connectivity on Relay automatically
Jouni Malinen [Sat, 23 Jul 2022 13:54:47 +0000 (16:54 +0300)] 
DPP: Advertise Configurator connectivity on Relay automatically

Instead of requiring explicit configuration through
dpp_configurator_connectivity=1, advertise Configurator connectivity
automatically if a Relay is configured with a Controller that can
operate as a Responder.

Signed-off-by: Jouni Malinen <quic_jouni@quicinc.com>
3 years agotests: DPP Relay and dynamic Controller addition
Jouni Malinen [Sat, 23 Jul 2022 10:41:36 +0000 (13:41 +0300)] 
tests: DPP Relay and dynamic Controller addition

Signed-off-by: Jouni Malinen <quic_jouni@quicinc.com>
3 years agoDPP: Dynamic Controller initiated connection on Relay
Jouni Malinen [Sat, 23 Jul 2022 10:41:36 +0000 (13:41 +0300)] 
DPP: Dynamic Controller initiated connection on Relay

Accept an incoming TCP connection from a Controller in a Relay that is
configured with dpp_relay_port even if that Controller is not configured
with a dpp_controller parameter. This allows more dynamic Controller
initiated operations, e.g., when using mDNS to discover a Relay.

This type of a dynamic Controller entry will not be used for exchanges
that are initiated by an Enrollee (i.e., based on a DPP Public Action
frame received by the Relay).

Signed-off-by: Jouni Malinen <quic_jouni@quicinc.com>
3 years agoDPP: Strict validation of PKEX peer bootstrapping key during auth
Jouni Malinen [Fri, 22 Jul 2022 18:08:08 +0000 (21:08 +0300)] 
DPP: Strict validation of PKEX peer bootstrapping key during auth

Verify that the peer does not change its bootstrapping key between the
PKEX exchange and the authentication exchange.

Signed-off-by: Jouni Malinen <quic_jouni@quicinc.com>
3 years agoDPP3: Fix push button boostrapping key passing through PKEX
Jouni Malinen [Fri, 22 Jul 2022 18:06:04 +0000 (21:06 +0300)] 
DPP3: Fix push button boostrapping key passing through PKEX

When PKEX was started through the push button mechanism, the own
bootstrapping key was not bound correctly to the Authentication phase
information and that ended up in incorrectly generating a new
bootstrapping key for the Authentication exchange. Fix this by added the
needed own=<id> parameter into the cached parameters when using push
button.

Signed-off-by: Jouni Malinen <quic_jouni@quicinc.com>
3 years agoDPP: Add peer=id entry for PKEX-over-TCP case
Jouni Malinen [Fri, 22 Jul 2022 18:04:08 +0000 (21:04 +0300)] 
DPP: Add peer=id entry for PKEX-over-TCP case

The peer=<id> information about the specific boostrapping key provided
through PKEX was added for Public Action frame cases, but the TCP
variant did not do same. Add the same information there to maintain
knowledge of the specific peer bootstrapping key from PKEX to
Authentication exchange.

Signed-off-by: Jouni Malinen <quic_jouni@quicinc.com>
3 years agotests: sigma_dut and DPP PB Configurator in wpa_supplicant
Jouni Malinen [Fri, 22 Jul 2022 09:39:58 +0000 (12:39 +0300)] 
tests: sigma_dut and DPP PB Configurator in wpa_supplicant

Signed-off-by: Jouni Malinen <quic_jouni@quicinc.com>
3 years agoDPP3: Push button Configurator in wpa_supplicant
Jouni Malinen [Fri, 22 Jul 2022 09:28:18 +0000 (12:28 +0300)] 
DPP3: Push button Configurator in wpa_supplicant

Extend DPP push button support in wpa_supplicant to allow the role of
the Configurator to be used. This provides similar functionality to the
way the DPP_PUSH_BUTTON command in hostapd worked when providing the
configuration parameters with that command (instead of building the
config object based on current AP configuration).

Signed-off-by: Jouni Malinen <quic_jouni@quicinc.com>
3 years agotests: PB Configurator in wpa_supplicant
Jouni Malinen [Fri, 22 Jul 2022 09:27:24 +0000 (12:27 +0300)] 
tests: PB Configurator in wpa_supplicant

Signed-off-by: Jouni Malinen <quic_jouni@quicinc.com>
3 years agotests: sigma_dut DPP/PKEX initiator as Configurator over TCP and Wi-Fi
Jouni Malinen [Thu, 21 Jul 2022 17:32:32 +0000 (20:32 +0300)] 
tests: sigma_dut DPP/PKEX initiator as Configurator over TCP and Wi-Fi

Signed-off-by: Jouni Malinen <quic_jouni@quicinc.com>
3 years agoDPP: Recognize own PKEX Exchange Request if it ends up being received
Jouni Malinen [Thu, 21 Jul 2022 17:30:07 +0000 (20:30 +0300)] 
DPP: Recognize own PKEX Exchange Request if it ends up being received

It is possible for a Controller to receive a copy of its own PKEX
Exchange Request in the case where the Controller is initiating a PKEX
exchange through a Relay. The Configurator role in the device would have
a matching PKEX code in that case and the device might reply as a PKEX
responder which would result in going through the exchange with the
Controller device itself. That is clearly not desired, so recognize this
special case by checking whether the Encrypted Key attribute value
matches a pending locally generated one when processing a received PKEX
Exchange Request.

Signed-off-by: Jouni Malinen <quic_jouni@quicinc.com>
3 years agoDPP: Note PKEX code/identifier deletion in debug log
Jouni Malinen [Thu, 21 Jul 2022 14:48:54 +0000 (17:48 +0300)] 
DPP: Note PKEX code/identifier deletion in debug log

This was already done in hostapd, but not in wpa_supplicant.

Signed-off-by: Jouni Malinen <quic_jouni@quicinc.com>
3 years agotests: DPP reconfig after Controller-initiated operation through Relay
Jouni Malinen [Thu, 21 Jul 2022 10:16:26 +0000 (13:16 +0300)] 
tests: DPP reconfig after Controller-initiated operation through Relay

Signed-off-by: Jouni Malinen <quic_jouni@quicinc.com>
3 years agoDPP: Add DPP-CONF-REQ-RX event for Controller
Jouni Malinen [Thu, 21 Jul 2022 10:15:22 +0000 (13:15 +0300)] 
DPP: Add DPP-CONF-REQ-RX event for Controller

This gets the Controller (DPP-over-TCP) sequence closer to the one used
with Public Action frames and makes it easier for upper layer components
to share the same design for tracking operation status.

Signed-off-by: Jouni Malinen <quic_jouni@quicinc.com>
3 years agotests: sigma_dut DPP/PKEX initiator as Configurator (TCP) through Relay
Jouni Malinen [Tue, 19 Jul 2022 19:04:42 +0000 (22:04 +0300)] 
tests: sigma_dut DPP/PKEX initiator as Configurator (TCP) through Relay

Signed-off-by: Jouni Malinen <quic_jouni@quicinc.com>
3 years agoDPP: Allow Controller to initiate PKEX through Relay
Jouni Malinen [Tue, 19 Jul 2022 18:26:17 +0000 (21:26 +0300)] 
DPP: Allow Controller to initiate PKEX through Relay

Relay will need to allow the PKEX Exchange Response message to be
handled similarly to the Authentication Response message to allow this
sequence to be completed successfully.

Signed-off-by: Jouni Malinen <quic_jouni@quicinc.com>
3 years agoDPP: Delete PKEX code and identifier on success completion of PKEX
Jouni Malinen [Tue, 19 Jul 2022 18:23:04 +0000 (21:23 +0300)] 
DPP: Delete PKEX code and identifier on success completion of PKEX

We are not supposed to reuse these without being explicitly requested to
perform PKEX again. There is not a strong use case for being able to
provision an Enrollee multiple times with PKEX, so this should have no
issues on the Enrollee. For a Configurator, there might be some use
cases that would benefit from being able to use the same code with
multiple Enrollee devices, e.g., for guess access with a laptop and a
smart phone. That case will now require a new DPP_PKEX_ADD command on
the Configurator after each completion of the provisioning exchange.

Signed-off-by: Jouni Malinen <quic_jouni@quicinc.com>
3 years agotests: Allow DPP_PKEX_REMOVE success in dpp_pkex_hostapd_errors
Jouni Malinen [Tue, 19 Jul 2022 20:27:10 +0000 (23:27 +0300)] 
tests: Allow DPP_PKEX_REMOVE success in dpp_pkex_hostapd_errors

This is in preparation to allow the implementation in hostapd to be
changed to accept removal of PKEX information without indicating an
error after it have been automatically removed at the successful
completion of PKEX.

Signed-off-by: Jouni Malinen <quic_jouni@quicinc.com>
3 years agotests: sigma_dut and DPP Connector Privacy
Jouni Malinen [Mon, 18 Jul 2022 21:12:11 +0000 (00:12 +0300)] 
tests: sigma_dut and DPP Connector Privacy

Signed-off-by: Jouni Malinen <quic_jouni@quicinc.com>
3 years agoDPP3: Default value for dpp_connector_privacy
Jouni Malinen [Mon, 18 Jul 2022 20:57:22 +0000 (23:57 +0300)] 
DPP3: Default value for dpp_connector_privacy

The new global configuration parameter
dpp_connector_privacy_default=<0/1> can now be used to set the default
value for the dpp_connector_privacy parameter for all new networks
provisioned using DPP.

Signed-off-by: Jouni Malinen <quic_jouni@quicinc.com>
3 years agotest: DPP Private Peer Introduction protocol
Jouni Malinen [Mon, 18 Jul 2022 20:41:06 +0000 (23:41 +0300)] 
test: DPP Private Peer Introduction protocol

Signed-off-by: Jouni Malinen <quic_jouni@quicinc.com>
3 years agoDPP3: Private Peer Introduction protocol
Jouni Malinen [Mon, 18 Jul 2022 20:41:24 +0000 (23:41 +0300)] 
DPP3: Private Peer Introduction protocol

Add a privacy protecting variant of the peer introduction protocol to
allow the station device to hide its Connector from 3rd parties. The new
wpa_supplicant network profile parameter dpp_connector_privacy=1 can be
used to select this alternative mechanism to the peer introduction
protocol added in the initial release of DPP.

It should be noted that the new variant does not work with older DPP APs
(i.e., requires support for release 3). As such, this new variant is
disabled by default.

Signed-off-by: Jouni Malinen <quic_jouni@quicinc.com>
3 years agoHPKE base mode with single-shot API
Jouni Malinen [Sun, 17 Jul 2022 20:33:11 +0000 (23:33 +0300)] 
HPKE base mode with single-shot API

Add support for HPKE base mode with single-shot API (see RFC 9180) using
OpenSSL. This is needed for DPP private introduction protocol.

Signed-off-by: Jouni Malinen <quic_jouni@quicinc.com>
3 years agoOpenSSL: Remove a forgotten debug print
Jouni Malinen [Sun, 17 Jul 2022 09:07:22 +0000 (12:07 +0300)] 
OpenSSL: Remove a forgotten debug print

Signed-off-by: Jouni Malinen <quic_jouni@quicinc.com>
3 years agotest: DPP 3rd party config information
Jouni Malinen [Sat, 16 Jul 2022 10:34:50 +0000 (13:34 +0300)] 
test: DPP 3rd party config information

Signed-off-by: Jouni Malinen <quic_jouni@quicinc.com>
3 years agoDPP: Allow 3rd party information to be added into config object
Jouni Malinen [Sat, 16 Jul 2022 09:42:03 +0000 (12:42 +0300)] 
DPP: Allow 3rd party information to be added into config object

This allows the DPP Configuration Object from a Configurator to be
extended with 3rd party information. This information can be provided as
a part of the existing configuration specification mechanisms with the
new extra_name=<string> and extra_value=<hexdump encoded JSON>.

Signed-off-by: Jouni Malinen <quic_jouni@quicinc.com>
3 years agoDPP: Allow 3rd party information to be added into config request obj
Jouni Malinen [Sat, 16 Jul 2022 09:31:28 +0000 (12:31 +0300)] 
DPP: Allow 3rd party information to be added into config request obj

This allows the DPP Configuration Request Object from an Enrollee to be
extended with 3rd party information. The new dpp_extra_conf_req_name and
dpp_extra_conf_req_value configuration parameters specify the name of
the added JSON node and its contents. For example:
dpp_extra_conf_req_name=org.example
dpp_extra_conf_req_value={"a":1,"b":"test"}

Signed-off-by: Jouni Malinen <quic_jouni@quicinc.com>
3 years agoAdd QCA vendor subcommand and attributes for SCS rule configuration
Harsh Kumar Bijlani [Thu, 30 Jun 2022 07:54:13 +0000 (13:24 +0530)] 
Add QCA vendor subcommand and attributes for SCS rule configuration

Add a new vendor subcommand QCA_NL80211_VENDOR_SUBCMD_SCS_RULE_CONFIG
for configuration event of Stream Classification Service (SCS) rule.

Also define the attributes present in this subcommand.

Signed-off-by: Harsh Kumar Bijlani <quic_hbijlani@quicinc.com>
3 years agoQCA vendor attribute for DBAM configuration
Aditya Kodukula [Tue, 5 Jul 2022 21:13:49 +0000 (14:13 -0700)] 
QCA vendor attribute for DBAM configuration

Add a new vendor attribute QCA_WLAN_VENDOR_ATTR_CONFIG_DBAM to
configure Dedicated Bluetooth Antenna Mode (DBAM). It is used to
switch between dedicated antenna mode for BT and COEX shared
antenna mode for WLAN and BT.

Signed-off-by: Jouni Malinen <quic_jouni@quicinc.com>
3 years agotests: DPP Controller initiating through Relay
Jouni Malinen [Sat, 9 Jul 2022 09:36:11 +0000 (12:36 +0300)] 
tests: DPP Controller initiating through Relay

Signed-off-by: Jouni Malinen <quic_jouni@quicinc.com>
3 years agoDPP: Allow AP/Relay to be configured to listed for new TCP connections
Jouni Malinen [Sat, 9 Jul 2022 09:36:34 +0000 (12:36 +0300)] 
DPP: Allow AP/Relay to be configured to listed for new TCP connections

This extends Relay functionality to allow a Controller to intitiate a
new DPP exchange in addition to the previously supported case where the
exchange was initiated through a DPP Public Action frame.

Signed-off-by: Jouni Malinen <quic_jouni@quicinc.com>
3 years agotests: sigma_dut DPP PB test cases
Jouni Malinen [Fri, 8 Jul 2022 11:04:18 +0000 (14:04 +0300)] 
tests: sigma_dut DPP PB test cases

Signed-off-by: Jouni Malinen <quic_jouni@quicinc.com>
3 years agotests: DPP push button
Jouni Malinen [Wed, 6 Jul 2022 14:10:56 +0000 (17:10 +0300)] 
tests: DPP push button

Signed-off-by: Jouni Malinen <quic_jouni@quicinc.com>
3 years agoDPP3: Allow external configuration to be specified on AP for PB
Jouni Malinen [Thu, 7 Jul 2022 21:12:07 +0000 (00:12 +0300)] 
DPP3: Allow external configuration to be specified on AP for PB

While the most likely production use case for DPP push button is to
provision the AP's current configuration, there might be some use cases
for providing different configuration. Add possibility for doing this by
extending the DPP_PUSH_BUTTON command to accept an optional set of
parameters similarly to the other DPP commands for the Configurator.

Signed-off-by: Jouni Malinen <quic_jouni@quicinc.com>
3 years agoDPP3: Testing functionality for push button announcements
Jouni Malinen [Thu, 7 Jul 2022 09:58:02 +0000 (12:58 +0300)] 
DPP3: Testing functionality for push button announcements

Allow the Responder/Initiator hash values to be corrupted in Push Button
Presence Announcement messages for testing purposes.

Signed-off-by: Jouni Malinen <quic_jouni@quicinc.com>
3 years agoDPP3: Push button bootstrap mechanism
Jouni Malinen [Wed, 6 Jul 2022 14:11:12 +0000 (17:11 +0300)] 
DPP3: Push button bootstrap mechanism

Add support to use a push button -based bootstrap mechanism with DPP.
The new DPP_PUSH_BUTTON control interface command enables this mode on
the AP/hostapd and station/wpa_supplicant. This goes through the
following sequence of events: a suitable peer in active push button mode
is discovered with session overlap detection, PKEX is executed with
bootstrap key hash validation, DPP authentication and configuration
exchanges are performed.

Signed-off-by: Jouni Malinen <quic_jouni@quicinc.com>
3 years agoAdd AP and STA specific P802.11az security capabilities (vendor command)
Vinay Gannevaram [Fri, 1 Jul 2022 10:15:59 +0000 (15:45 +0530)] 
Add AP and STA specific P802.11az security capabilities (vendor command)

Add feature capability indication for P802.11az security for the drivers
to advertise capabilities such as secure LTF support, secure RTT
measurement exchange support, and protection of range negotiation and
measurement management frames for station and AP interfaces
independently. This allows a more fine-tuned capability indication as an
alternative to the upstream nl80211 mechanism that is not specific to
the operating mode.

Signed-off-by: Jouni Malinen <quic_jouni@quicinc.com>
3 years agoQCA vendor command for CoAP offload processing
Yu Wang [Tue, 24 May 2022 10:10:23 +0000 (18:10 +0800)] 
QCA vendor command for CoAP offload processing

Add vendor command QCA_NL80211_VENDOR_SUBCMD_COAP_OFFLOAD to
enable/disable offload processing in firmware for CoAP messages
(RFC7252: The Constrained Application Protocol) or fetch the
CoAP messages cached during offload processing.

Signed-off-by: Yu Wang <quic_yyuwang@quicinc.com>
3 years agoAdd QCA vendor attribute for TIM beacon statistics
Jingxiang Ge [Wed, 15 Jun 2022 03:22:18 +0000 (11:22 +0800)] 
Add QCA vendor attribute for TIM beacon statistics

Add the following two vendor attributes to send TIM beacon
statistics to userspace which can be used for power saving:
QCA_WLAN_VENDOR_ATTR_LL_STATS_TIM_BEACON
QCA_WLAN_VENDOR_ATTR_LL_STATS_TIM_BEACON_ERR

Signed-off-by: Jingxiang Ge <quic_jge@quicinc.com>
3 years agoAdd QCA vendor interface for PASN offload to userspace
Vinay Gannevaram [Mon, 13 Jun 2022 11:43:50 +0000 (17:13 +0530)] 
Add QCA vendor interface for PASN offload to userspace

Define QCA vendor interface for PASN offload to userspace from the driver.

The driver can send this command as an event to a userspace component to
perform PASN authentication with a list of peers with which the driver
needs to do ranging. The userspace component, if capable of performing
PASN handshake, can perform PASN handshake with all the peer devices and
set the relevant keys by sending the
QCA_NL80211_VENDOR_SUBCMD_SECURE_RANGING_CONTEXT command for each peer
to the driver.

Once PASN handshake is completed with all requested peers, the userspace
component sends consolidated status for all the peers to the driver. The
consolidated report is required for the driver to understand that the
PASN handshake process is complete and whether it succeeded/failed for
each of the peers it was requested for. The secure ranging context is
configured only for the peers with which the PASN handshake succeeded.

When the driver requests PASN keys, the userspace component can set the
keys from its cache if those keys have not already expired and were
derived with the same source MAC address that is requested by the driver
instead of doing the full PASN handshake again.

If the driver detects that current keys of a peer are not valid anymore,
it sends a notification to userspace using the
QCA_NL80211_VENDOR_SUBCMD_PASN command and setting the action to
QCA_WLAN_VENDOR_PASN_ACTION_DELETE_SECURE_RANGING_CONTEXT. The userspace
component should delete the corresponding keys from its cache.

Signed-off-by: Jouni Malinen <quic_jouni@quicinc.com>
3 years agoAdd a vendor attribute to configure concurrency policy for AP interface
Purushottam Kushwaha [Mon, 20 Jun 2022 13:08:17 +0000 (18:38 +0530)] 
Add a vendor attribute to configure concurrency policy for AP interface

Add a new QCA vendor attribute
QCA_WLAN_VENDOR_ATTR_CONCURRENT_POLICY_AP_CONFIG to
QCA_NL80211_VENDOR_SUBCMD_CONCURRENT_POLICY sub command to set the
concurrency policy for AP interface.
QCA_WLAN_VENDOR_ATTR_CONCURRENT_POLICY_AP_CONFIG uses the values
defined in enum qca_wlan_concurrent_ap_policy_config to specify
concurrency policy.

Signed-off-by: Purushottam Kushwaha <quic_pkushwah@quicinc.com>
3 years agoRename QCA_NL80211_VENDOR_SUBCMD_CONCURRENT_MULTI_STA_POLICY
Purushottam Kushwaha [Tue, 24 May 2022 10:52:20 +0000 (16:22 +0530)] 
Rename QCA_NL80211_VENDOR_SUBCMD_CONCURRENT_MULTI_STA_POLICY

Rename QCA_NL80211_VENDOR_SUBCMD_CONCURRENT_MULTI_STA_POLICY to
QCA_NL80211_VENDOR_SUBCMD_CONCURRENT_POLICY to allow extension for other
interface type(s). A subsequent commit will extend the renamed
definitions in a manner that is inconsistent with the current naming.

This is a precursor for AP/P2P concurrency policy configuration support
via updated vendor command QCA_NL80211_VENDOR_SUBCMD_CONCURRENT_POLICY.

Signed-off-by: Purushottam Kushwaha <quic_pkushwah@quicinc.com>
3 years agoEHT: Add 320 channel width support
Veerendranath Jakkam [Fri, 13 May 2022 16:17:41 +0000 (21:47 +0530)] 
EHT: Add 320 channel width support

Add initial changes to support 320 MHz channel width.

Signed-off-by: Veerendranath Jakkam <quic_vjakkam@quicinc.com>
Signed-off-by: Karthikeyan Periyasamy <quic_periyasa@quicinc.com>
3 years agoMove CHANWIDTH_* definitions from ieee80211_defs.h to defs.h
Aleti Nageshwar Reddy [Fri, 13 May 2022 16:17:40 +0000 (21:47 +0530)] 
Move CHANWIDTH_* definitions from ieee80211_defs.h to defs.h

Move most of CHANWIDTH_* definitions from ieee80211_defs.h to defs.h as
the definitions are getting used mostly for internal purpose only. Also
change prefix of the definitions to CONF_OPER_CHWIDTH_* and update in
all the files accordingly.

Leave the couple of VHT-specific exceptions to use the old defines (the
reason why they were originally added as VHT values), to avoid use of
clearly marked configuration values in information elements. In
addition, use the defines instead of magic values where appropriate.

Signed-off-by: Aleti Nageshwar Reddy <quic_anageshw@quicinc.com>
3 years agotests: Remove the 80+80 vs. 160 part from wpa2_ocv_ap_vht160_mismatch
Jouni Malinen [Thu, 16 Jun 2022 17:31:45 +0000 (20:31 +0300)] 
tests: Remove the 80+80 vs. 160 part from wpa2_ocv_ap_vht160_mismatch

This started failing with the OCV implementation change to ignore the
second segment when using a 160 MHz channel.

Signed-off-by: Jouni Malinen <quic_jouni@quicinc.com>
3 years agotests: Make OCV negative test error cases more robust
Jouni Malinen [Thu, 16 Jun 2022 17:26:11 +0000 (20:26 +0300)] 
tests: Make OCV negative test error cases more robust

Try to avoid an exception while processing an exception that indicates
the test case failed. Explicit DISCONNECT command here can avoid the
undesired FAIL-BUSY from cleanup SCAN.

Signed-off-by: Jouni Malinen <quic_jouni@quicinc.com>
3 years agoAdd QCA vendor event to indicate driver recovery after internal failures
Veerendranath Jakkam [Wed, 15 Jun 2022 14:10:21 +0000 (19:40 +0530)] 
Add QCA vendor event to indicate driver recovery after internal failures

Add QCA vendor event to indicate user space that the driver recovery is
completed after the internal failure reported with
QCA_NL80211_VENDOR_SUBCMD_HANG.

Signed-off-by: Veerendranath Jakkam <quic_vjakkam@quicinc.com>
3 years agoSet current_ssid before changing state to ASSOCIATING
Xinyue Ling [Mon, 13 Jun 2022 06:29:56 +0000 (14:29 +0800)] 
Set current_ssid before changing state to ASSOCIATING

For hidden GBK encoding of a Chinese SSID, both the UTF-8 and GBK
encoding profiles are added into wpa_supplicant to make sure the
connection succeeds. In this situation, wpa_supplicant_select_network()
will not be called so current_ssid is NULL when association begins.

Android monitors the WPA_EVENT_STATE_CHANGE event to get the SSID and
BSSID. When connecting to a Chinese SSID, in case of association
rejection happens, Android will report null SSID to OEM APP because
current_ssid is updated after wpa_supplicant_set_state(wpa_s,
WPA_ASSOCIATING), which may cause confusion.

Fix this by setting the current_ssid before changing state to
ASSOCIATING.

Signed-off-by: Jouni Malinen <quic_jouni@quicinc.com>
3 years agoQCA vendor attribute to configure direct data path for audio traffic
Purushottam Kushwaha [Fri, 3 Jun 2022 09:44:24 +0000 (15:14 +0530)] 
QCA vendor attribute to configure direct data path for audio traffic

Add a new QCA vendor attribute
QCA_WLAN_VENDOR_ATTR_CONFIG_AUDIO_DATA_PATH to
QCA_NL80211_VENDOR_SUBCMD_SET_WIFI_CONFIGURATION to configure audio data
path.

Possible audio data paths are defined in enum qca_wlan_audio_data_path.

Signed-off-by: Purushottam Kushwaha <quic_pkushwah@quicinc.com>
3 years agoQCA vendor command support to get WLAN radio combinations
Kiran Kumar Lokere [Thu, 21 Apr 2022 17:50:00 +0000 (10:50 -0700)] 
QCA vendor command support to get WLAN radio combinations

Vendor command to get the WLAN radio combinations matrix supported by
the device which provides the device simultaneous radio configurations
such as standalone, dual band simultaneous, and single band
simultaneous.

Signed-off-by: Jouni Malinen <quic_jouni@quicinc.com>
3 years agoOCV: Check the Frequency Segment 1 Channel Number only on 80+80 MHz
Jouni Malinen [Tue, 14 Jun 2022 14:19:27 +0000 (17:19 +0300)] 
OCV: Check the Frequency Segment 1 Channel Number only on 80+80 MHz

The initial OCV implementation validating this field in the OCI element
for both the 80+80 MHz and 160 MHz cases. However, IEEE Std 802.11-2020,
12.2.9 ("Requirements for Operating Channel Validation") limitis that
verification step for the 80+80 MHz case: "Verifying that, if operating
an 80+80 MHz operating class, the frequency segment 1 channel number ...
is equal to the Frequency Segment 1 Channel Number field of the OCI."

Remove this check for the 160 MHz case since there has been incorrect
interpretation on how the Frequency Segment 1 Channel Number field of
the OCI element is set in this case (using VHT rules for CCFS2). The
modified validation step is meets the real need here, is compliant with
the standard, and avoids potential interoperability issues when using
contiguous 160 MHz channels.

Signed-off-by: Jouni Malinen <quic_jouni@quicinc.com>
3 years agoP2P: Use weighted preferred channel list for channel selection
Sreeramya Soratkal [Thu, 5 Nov 2020 16:25:55 +0000 (21:55 +0530)] 
P2P: Use weighted preferred channel list for channel selection

Previously, the driver could optionally (using QCA vendor command)
provide a preferred channel list to wpa_supplicant for channel selection
during the GO negotiation. Channel selection process can be more
efficient with the information of weights and flags of the preferred
channel list that can be provided by the driver. Use a weighted
preferred channel list provided by the driver for channel selection
during GO negotiation if such a list is available.

Signed-off-by: Sreeramya Soratkal <quic_ssramya@quicinc.com>
3 years agoQCA vendor attribute to configure RX link speed threshold for roaming
Jianmin Zhu [Wed, 18 May 2022 14:32:26 +0000 (22:32 +0800)] 
QCA vendor attribute to configure RX link speed threshold for roaming

Add QCA_ATTR_ROAM_CONTROL_RX_LINKSPEED_THRESHOLD value as the RX link
speed threshold to disable roaming. If the current link speed is above
the threshold, there is no need to roam.

Signed-off-by: Jianmin Zhu <quic_jianminz@quicinc.com>
3 years agoAdd QCA vendor attribute for DO_ACS to allow using existing scan entries
Purushottam Kushwaha [Thu, 12 May 2022 07:34:54 +0000 (13:04 +0530)] 
Add QCA vendor attribute for DO_ACS to allow using existing scan entries

Add a new QCA vendor attribute
QCA_WLAN_VENDOR_ATTR_ACS_LAST_SCAN_AGEOUT_TIME to
QCA_NL80211_VENDOR_SUBCMD_DO_ACS and opportunistically optimize time
taken for ACS scan. Avoid scanning the channels which were scanned
within last QCA_WLAN_VENDOR_ATTR_ACS_LAST_SCAN_AGEOUT_TIME milliseconds
and use scan results from the scan results cache for ACS scoring. For
other channels, perform ACS scan and use the received scan results.

Signed-off-by: Jouni Malinen <quic_jouni@quicinc.com>
3 years agoP2P: Filter 6 GHz channels if peer doesn't support them
Qiwei Cai [Mon, 9 May 2022 05:16:37 +0000 (13:16 +0800)] 
P2P: Filter 6 GHz channels if peer doesn't support them

When 6 GHz channels are included in channel list of P2P Action frames
but some peer devices don't support the 6 GHz feature and cannot parse
P2P IE data correctly, P2P handshake will fail.

Remove 6 GHz channels from the P2P Action frames if the peer doesn't
support 6 GHz feature to avoid such failures.

Signed-off-by: Jouni Malinen <quic_jouni@quicinc.com>
3 years agoReserve QCA vendor sub command id 206..212
Vikram Kandukuri [Mon, 16 May 2022 09:26:27 +0000 (14:56 +0530)] 
Reserve QCA vendor sub command id 206..212

This is reserved for QCA use.

Signed-off-by: Jouni Malinen <quic_jouni@quicinc.com>
3 years agoRemove space before tab in QCA vendor commands
Jeff Johnson (QUIC) [Fri, 8 Apr 2022 20:19:53 +0000 (13:19 -0700)] 
Remove space before tab in QCA vendor commands

A few of the comments in the QCA vendor commands have a space
character before a tab. That is pointless, and some code style
checkers may complain about it, so remove the spaces.

Signed-off-by: Jeff Johnson <quic_jjohnson@quicinc.com>
3 years agoProxyARP: Clear bridge parameters on deinit only if hostapd set them
Jouni Malinen [Tue, 31 May 2022 08:53:05 +0000 (11:53 +0300)] 
ProxyARP: Clear bridge parameters on deinit only if hostapd set them

Skip the x_snoop_deinit() operations if hostapd did not actually
configure the parameters in the first place. While clearing these
specific parameters is unlikely to change how they were set outside the
scope of hostapd, it is better to leave them as-is to avoid surprises if
hostapd was not configured to use ProxyARP.

Signed-off-by: Jouni Malinen <quic_jouni@quicinc.com>
3 years agohs20-osu-client: Explicit checks for snprintf() result
Jouni Malinen [Thu, 26 May 2022 21:23:25 +0000 (00:23 +0300)] 
hs20-osu-client: Explicit checks for snprintf() result

Get rid of the gcc warnings on potentially truncating the output buffer
by explicitly checking that there was enough room to write the full
string.

Signed-off-by: Jouni Malinen <j@w1.fi>
3 years agoFIPS PRF: Avoid duplicate SHA1Init() functionality
Jouni Malinen [Thu, 26 May 2022 20:40:09 +0000 (23:40 +0300)] 
FIPS PRF: Avoid duplicate SHA1Init() functionality

The initialization values used for the FIPS 186-2 PRF are identical to
the ones used in SHA1Init(), so use that internal function instead of
maintaining a duplicate set of values here. fips186_2_prf() was already
using an internal SHA1Transform() function so using another internal
function does not make this any worse.

Signed-off-by: Jouni Malinen <j@w1.fi>
3 years agoOpenSSL: Use internal FIPS 186-2 PRF with OpenSSL 3.0
Jouni Malinen [Thu, 26 May 2022 20:35:16 +0000 (23:35 +0300)] 
OpenSSL: Use internal FIPS 186-2 PRF with OpenSSL 3.0

OpenSSL 3.0 has deprecated the low-level SHA1 functions and does not
include an upper layer interface that could be used to use the
SHA1_Transform() function. Use the internal SHA-1 implementation instead
as a workaround.

While this type of duplicate implementation of SHA-1 is not really
ideal, this PRF is needed only for EAP-SIM/AKA and there does not seem
to be sufficient justification to try to get this working more cleanly
with OpenSSL 3.0.

Signed-off-by: Jouni Malinen <j@w1.fi>
3 years agoSAE-PK: Fix build without AES-SIV
Jouni Malinen [Thu, 26 May 2022 17:45:37 +0000 (20:45 +0300)] 
SAE-PK: Fix build without AES-SIV

CONFIG_SAE_PK=y was not pulling in AES-SIV implementation even though it
needs this.

Signed-off-by: Jouni Malinen <j@w1.fi>
3 years agoOpenSSL: Convert more crypto_ec_key routines to new EVP API
Jouni Malinen [Thu, 26 May 2022 15:54:51 +0000 (18:54 +0300)] 
OpenSSL: Convert more crypto_ec_key routines to new EVP API

This avoids some more uses of the deprecated EC_KEY API when using
OpenSSL 3.0.

Signed-off-by: Jouni Malinen <j@w1.fi>
3 years agoOpenSSL: crypto_ec_key_get_public_key() using new EVP_PKEY API
Jouni Malinen [Thu, 26 May 2022 14:07:00 +0000 (17:07 +0300)] 
OpenSSL: crypto_ec_key_get_public_key() using new EVP_PKEY API

Implement crypto_ec_key_get_public_key() without the deprecated EC_KEY
API when using OpenSSL 3.0.

Signed-off-by: Jouni Malinen <j@w1.fi>
3 years agoOpenSSL: crypto_ec_key_get_private_key() using new EVP_PKEY API
Jouni Malinen [Thu, 26 May 2022 13:40:18 +0000 (16:40 +0300)] 
OpenSSL: crypto_ec_key_get_private_key() using new EVP_PKEY API

Implement crypto_ec_key_get_private_key() without the deprecated EC_KEY
API when using OpenSSL 3.0.

Signed-off-by: Jouni Malinen <j@w1.fi>
3 years agocrypto: Convert crypto_ec_key_get_public_key() to return new ec_point
Jouni Malinen [Thu, 26 May 2022 13:34:36 +0000 (16:34 +0300)] 
crypto: Convert crypto_ec_key_get_public_key() to return new ec_point

This makes it easier for the crypto library/wrapper to avoid direct
references to internal EC key parameters.

Signed-off-by: Jouni Malinen <j@w1.fi>
3 years agocrypto: Convert crypto_ec_key_get_private_key() to return new bignum
Jouni Malinen [Thu, 26 May 2022 11:23:46 +0000 (14:23 +0300)] 
crypto: Convert crypto_ec_key_get_private_key() to return new bignum

This makes it easier for the crypto library/wrapper to avoid direct
references to internal EC key parameters.

Signed-off-by: Jouni Malinen <j@w1.fi>
3 years agoOpenSSL: Fix a memory leak on crypto_hash_init() error path
Jouni Malinen [Thu, 26 May 2022 13:04:24 +0000 (16:04 +0300)] 
OpenSSL: Fix a memory leak on crypto_hash_init() error path

The EVP_MAC context data needs to be freed on error paths.

Fixes: e31500adea72 ("OpenSSL: Implement HMAC using the EVP_MAC API")
Signed-off-by: Jouni Malinen <j@w1.fi>
3 years agoOpenSSL: Free OSSL_DECODER_CTX in tls_global_dh()
Jouni Malinen [Thu, 26 May 2022 11:01:28 +0000 (14:01 +0300)] 
OpenSSL: Free OSSL_DECODER_CTX in tls_global_dh()

The conversion to the new OpenSSL 3.0 API had forgotten to free the
context structure.

Fixes: bcd299b326d8 ("OpenSSL: Convert DH/DSA parameter loading to new API")
Signed-off-by: Jouni Malinen <j@w1.fi>