Commit Graph

624 Commits

Author SHA1 Message Date
Jouni Malinen
9cb8c0545f EAP-TLS: Update specification references to RFC 5216 and 9190
The previously used references were pointing to an obsoleted RFC and
draft versions. Replace these with current versions.

Signed-off-by: Jouni Malinen <quic_jouni@quicinc.com>
2024-03-20 09:33:52 +05:30
Alexander Clouter
b17d6a1b3a EAP-TTLS peer: Handle Commitment Message for TLS 1.3
Recognize the explicitly defined Commitment Message per
draft-ietf-emu-eap-tls13-13 at the conclusion of the EAP-TTLS with TLS
1.3.

Signed-off-by: Alexander Clouter <alex@digriz.org.uk>
2024-03-20 09:33:52 +05:30
Alexander Clouter
65248148f0 EAP-TLS peer: Handle Commitment Message for TLS 1.3
Recognize the explicitly defined Commitment Message per
draft-ietf-emu-eap-tls13-13 at the conclusion of the EAP-TLS with TLS
1.3.

Signed-off-by: Alexander Clouter <alex@digriz.org.uk>
2024-03-20 09:33:52 +05:30
Alexander Clouter
a5ee253d62 EAP: Extend Session-Id derivation with TLS 1.3 to PEAP and EAP-TTLS
This newer Session-Id/Method-Id derivation is used with PEAP and
EAP-TTLS when using TLS 1.3 per draft-ietf-emu-tls-eap-types-00, so do
not limit this to only EAP-TLS.

Signed-off-by: Alexander Clouter <alex@digriz.org.uk>
2024-03-20 09:33:52 +05:30
Alexander Clouter
42e37285e5 EAP-TTLS: Key derivation per draft-ietf-emu-tls-eap-types-00
Use the TLS-Exporter with the label and context as defined in
draft-ietf-emu-tls-eap-types-00 when deriving keys for EAP-TTLS with TLS
1.3.

Signed-off-by: Alexander Clouter <alex@digriz.org.uk>
2024-03-20 09:33:52 +05:30
Alexander Clouter
0d90484018 EAP-PEAP: Key derivation per draft-ietf-emu-tls-eap-types-00
Use the TLS-Exporter with the label and context as defined in
draft-ietf-emu-tls-eap-types-00 when deriving keys for PEAP with TLS
1.3.

Signed-off-by: Alexander Clouter <alex@digriz.org.uk>
2024-03-20 09:33:52 +05:30
Alexander Clouter
252dd1b976 EAP-TTLS/PEAP peer: Fix failure when using session tickets under TLS 1.3
EAP peer does not expect data present when beginning the Phase 2 in
EAP-{TTLS,PEAP} but in TLS 1.3 session tickets are sent after the
handshake completes.

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

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

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

Signed-off-by: Alexander Clouter <alex@digriz.org.uk>
2024-03-20 09:33:52 +05:30
Jouni Malinen
a5b01a93ff EAP-TTLS peer: Support vendor EAP method in Phase 2
The implementation was previously hardcoded to use only the non-expanded
IETF EAP methods in Phase 2. Extend that to allow vendor EAP methods
with expanded header to be used.

Signed-off-by: Jouni Malinen <j@w1.fi>
2024-03-20 09:33:52 +05:30
Jouni Malinen
a9170c6a20 EAP-TLS peer: Handle possible application data at the end
EAP-TLS with TLS 1.3 uses an empty application data record from the
server to indicate end of the exchange, so EAP-TLS peer will need to
check for this special case and finish the exchange with an empty
EAP-TLS (ACK) so that the server can send out EAP-Success.

Signed-off-by: Jouni Malinen <j@w1.fi>
2024-03-20 09:33:52 +05:30
Ervin Oro
caf49e8c10 Add Type-Code context to EAP-TLS 1.3 exported Key_Material and Method-Id
Change to require the Type-Code in context for Key_Material and
Method-Id has now been published as draft-ietf-emu-eap-tls13-04.
https://tools.ietf.org/html/draft-ietf-emu-eap-tls13-04#section-2.3

Signed-off-by: Ervin Oro <ervin.oro@aalto.fi>
2024-03-20 09:33:52 +05:30
Sarvesh Bodakhe
886bf9e82f feat(wpa_supplicant): Add support for RFC 5705 TLS exporter context with mbedTLS 2024-03-20 09:33:52 +05:30
Ervin Oro
562bc59576 Add support for an optional context parameter to TLS exporter
Allow an additional context value to be passed to TLS exporter as
specified in RFC 5705 section 4.

This does not yet implement it for the internal TLS implementation.
However, as currently nothing uses context yet, this will not break
anything right now. WolfSSL maintainers also stated that they are not
going to add context support yet, but would look into it if/when this is
required by a published draft or a standard.

Signed-off-by: Ervin Oro <ervin.oro@aalto.fi>
2024-03-20 09:33:52 +05:30
Jouni Malinen
1e38fa2c12 EAP peer: Clear temporary message buffers before freeing
These buffers in TLS-based EAP methods might contain keys or password
(e.g., when using TTLS-PAP or PEAP-GTC), so clear them explicitly to
avoid leaving such material into heap memory unnecessarily.

Signed-off-by: Jouni Malinen <jouni@codeaurora.org>
2024-03-20 09:33:52 +05:30
Jouni Malinen
aa987d418e EAP-PEAP: Derive EMSK and use 128-octet derivation for MSK
Derive EMSK when using EAP-PEAP to enable ERP. In addition, change the
MSK derivation for EAP-PEAP to always derive 128 octets of key material
instead of the 64 octets to cover just the MSK. This is needed with the
PRF used in TLS 1.3 since the output length is mixed into the PRF
context.

Signed-off-by: Jouni Malinen <j@w1.fi>
2024-03-20 09:33:52 +05:30
Jouni Malinen
f4d7329ae6 EAP peer: Clear keying material on deinit
Reduce the amount of time keying material (MSK, EMSK, temporary private
data) remains in memory in EAP methods. This provides additional
protection should there be any issues that could expose process memory
to external observers.

Signed-off-by: Jouni Malinen <j@w1.fi>
2024-03-20 09:33:52 +05:30
Jouni Malinen
bb16734aa9 EAP-TLS: Update Session-Id derivation with TLS v1.3
Move to the version used in draft-ietf-emu-eap-tls13-03.txt, i.e.,
include the 0x0D prefix and use a different TLS-Exporter() label string.

Signed-off-by: Jouni Malinen <j@w1.fi>
2024-03-20 09:33:52 +05:30
Jouni Malinen
ed8452d53f EAP-TLS: Derive Session-Id using TLS-Exporter when TLS v1.3 is used
This updates Session-Id derivation with TLS v1.3 per
draft-ietf-emu-eap-tls13-00.

Signed-off-by: Jouni Malinen <j@w1.fi>
2024-03-20 09:33:51 +05:30
Jouni Malinen
a2336b74f9 EAP-TLS: Update key derivation label per draft-ietf-emu-eap-tls13-00
The label strings used for deriving Key_Material with TLS v1.3 were
changed, so update the implementation to match the new values.

Signed-off-by: Jouni Malinen <j@w1.fi>
2024-03-20 09:33:51 +05:30
Jouni Malinen
e9f6949d7e EAP-TLS peer: MSK/EMSK derivation with TLS v1.3
Use new MSK/EMSK derivation mechanism if TLS v1.3 or newer is used per
draft-mattsson-eap-tls13-02.txt.

Signed-off-by: Jouni Malinen <j@w1.fi>
2024-03-20 09:33:51 +05:30
Jouni Malinen
34a8628d4e EAP-TLS peer: Allow NewSessionTicket after Client Finished with TLS v1.3
The EAP session cannot be marked fully completed on sending Client
Finished with TLS v1.3 since the server may still send NewSessionTicket
before EAP-Success.

Signed-off-by: Jouni Malinen <j@w1.fi>
2024-03-20 09:33:51 +05:30
Jouni Malinen
6a83540ae0 EAP-TLS peer: Support fragmentation of last message
With TLS v1.3, the Finished message from the client can require
fragmentation. Postpone key derivation and marking of the EAP session
fully completed until all the fragments of that last message are sent to
avoid losing all the subsequent fragments.

Signed-off-by: Jouni Malinen <j@w1.fi>
2024-03-20 09:33:51 +05:30
Jouni Malinen
77d87edbb2 EAP-TLS peer: Determine whether TLS v1.3 or newer is used
This is needed to be able to handle different key derivation and message
handshakes in EAP implementation.

Signed-off-by: Jouni Malinen <j@w1.fi>
2024-03-20 09:33:48 +05:30
Ilan Peer
a539c63d68 EAP-TTLS: Fix possible memory leak in eap_ttls_phase2_request_mschap()
The msg buffer needs to be freed on these two error paths.

Signed-off-by: Ilan Peer <ilan.peer@intel.com>
2024-03-20 09:32:32 +05:30
Jouni Malinen
5c0fb10902 EAP peer: External server certificate chain validation
This adds support for optional functionality to validate server
certificate chain in TLS-based EAP methods in an external program.
wpa_supplicant control interface is used to indicate when such
validation is needed and what the result of the external validation is.

This external validation can extend or replace the internal validation.
When ca_cert or ca_path parameter is set, the internal validation is
used. If these parameters are omitted, only the external validation is
used. It needs to be understood that leaving those parameters out will
disable most of the validation steps done with the TLS library and that
configuration is not really recommend.

By default, the external validation is not used. It can be enabled by
addingtls_ext_cert_check=1 into the network profile phase1 parameter.
When enabled, external validation is required through the CTRL-REQ/RSP
mechanism similarly to other EAP authentication parameters through the
control interface.

The request to perform external validation is indicated by the following
event:
CTRL-REQ-EXT_CERT_CHECK-<id>:External server certificate validation needed for SSID <ssid>

Before that event, the server certificate chain is provided with the
CTRL-EVENT-EAP-PEER-CERT events that include the cert=<hexdump>
parameter. depth=# indicates which certificate is in question (0 for the
server certificate, 1 for its issues, and so on).

The result of the external validation is provided with the following
command:
CTRL-RSP-EXT_CERT_CHECK-<id>:<good|bad>

It should be noted that this is currently enabled only for OpenSSL (and
BoringSSL/LibreSSL). Due to the constraints in the library API, the
validation result from external processing cannot be reported cleanly
with TLS alert. In other words, if the external validation reject the
server certificate chain, the pending TLS handshake is terminated
without sending more messages to the server.

Signed-off-by: Jouni Malinen <j@w1.fi>
2024-03-20 09:32:32 +05:30
Jiang Jiang Jian
5f969c71be Merge branch 'bugfix/dpp_auth_deinit_crash' into 'master'
Fix issues with DPP stop listen and DPP auth data deinit

Closes WIFIBUG-443, WIFIBUG-442, WIFIBUG-421, and WIFIBUG-423

See merge request espressif/esp-idf!29404
2024-03-19 17:36:28 +08:00
jgujarathi
40ccd1525f fix(wpa_supplicant): Cancel offchannel listen operations before sending dpp fail
- Ensure that offchannel listening operations are cancelled before sending dpp
  fail event
2024-03-18 14:33:57 +05:30
jgujarathi
537cf9bfc0 fix(wpa_supplicant): Ensure dpp auth structure is deinited in dpp task context
- Ensure that the dpp auth data gets deinited only in DPP task context to ensure
  that there are no concurrency issues in usage of DPP auth data.
2024-03-18 14:33:57 +05:30
Sarvesh Bodakhe
fe35466cdd fix(wpa_supplicant): Improve execution flow for WPS registrar public APIs
Make sure that WPS registrar public APIs do not modify supplicant
data in application task context. Execute API functionlity in eloop
context to prevent protential race conditions.
2024-03-18 12:43:39 +05:30
Sarvesh Bodakhe
aad6f44c25 fix(wifi): Avoid dereferencing a dangling function pointer in WPS supplicant
Avoid dereferencing a dangling function pointer in 'eap_server_sm_deinit()'.
This issue arises when hostap unregisteres EAP methods before it removes
the server state machine for station.
2024-03-18 12:43:38 +05:30
Jiang Jiang Jian
b05b19abc7 Merge branch 'feature/sae_pk_transition_disable' into 'master'
Add support for SAE-PK, WPA3-Enterprise and OWE transition disable indication

Closes WIFIBUG-287

See merge request espressif/esp-idf!27783
2024-03-18 11:38:50 +08:00
Kapil Gupta
59a62f2af6 fix(wpa_supplicant): (PEAP client) Update Phase 2 auth requirements
The previous PEAP client behavior allowed the server to skip Phase 2
authentication with the expectation that the server was authenticated
during Phase 1 through TLS server certificate validation. Various PEAP
specifications are not exactly clear on what the behavior on this front
is supposed to be and as such, this ended up being more flexible than
the TTLS/FAST/TEAP cases. However, this is not really ideal when
unfortunately common misconfiguration of PEAP is used in deployed
devices where the server trust root (ca_cert) is not configured or the
user has an easy option for allowing this validation step to be skipped.

Change the default PEAP client behavior to be to require Phase 2
authentication to be successfully completed for cases where TLS session
resumption is not used and the client certificate has not been
configured. Those two exceptions are the main cases where a deployed
authentication server might skip Phase 2 and as such, where a more
strict default behavior could result in undesired interoperability
issues. Requiring Phase 2 authentication will end up disabling TLS
session resumption automatically to avoid interoperability issues.

Allow Phase 2 authentication behavior to be configured with a new phase1
configuration parameter option:
'phase2_auth' option can be used to control Phase 2 (i.e., within TLS
tunnel) behavior for PEAP:
 * 0 = do not require Phase 2 authentication
 * 1 = require Phase 2 authentication when client certificate
   (private_key/client_cert) is no used and TLS session resumption was
   not used (default)
 * 2 = require Phase 2 authentication in all cases
2024-03-15 16:57:26 +08:00
Shyamal Khachane
fd556dc785 feat(wifi): Add support to handle OWE transition disable indication from AP 2024-03-15 13:56:00 +05:30
Sarvesh Bodakhe
34725cdbfd feat(wifi): Add support SAE-PK and WPA3-Enterprise transition disable 2024-03-15 13:55:31 +05:30
Shreyas Sheth
9127a8fb25 fix(wifi): Fix wpa3 crash for station added without sta lock 2024-03-14 15:36:32 +05:30
Nachiket Kukade
ed704a22a8 fix(wpa_supplicant): Suppress RSN IE print to Verbose level 2024-03-13 20:10:20 +08:00
aditi_lonkar
90cc61588e feat(esp_wifi): Add support of Network Introduction Protocol in DPP 2024-02-21 12:47:32 +05:30
Kapil Gupta
3a2e0dcbfb Merge branch 'bugfix/mbo_api_flag' into 'master'
fix(wpa_supplicant):Add CONFIG_MBO flag for mbo apis.

Closes WIFIBUG-390

See merge request espressif/esp-idf!28560
2024-02-21 10:54:46 +08:00
Jiang Jiang Jian
b4fe434d2e Merge branch 'bugfix/fix_esp_wifi_scan_start_memory_leakage_issue' into 'master'
fix(wifi): fix esp_wifi_scan_start memory leakage issue

Closes IDFGH-9313

See merge request espressif/esp-idf!28869
2024-02-05 19:23:33 +08:00
muhaidong
d278ffc501 fix(wifi): fix esp_wifi_scan_start memory leakage issue
Closes https://github.com/espressif/esp-idf/issues/10693
2024-02-03 16:32:09 +08:00
David Cermak
344cb342b8 fix(esp_wifi): Support for esp_wifi_remote 2024-02-01 12:17:43 +01:00
David Cermak
9088655030 fix(esp_wifi): Separate public and native wifi interface types 2024-02-01 12:17:37 +01:00
Kapil Gupta
d033c3ebff fix(wifi): add low memory options for eap enterprise 2024-01-30 22:54:22 +08:00
aditi_lonkar
6006568c77 fix(wpa_supplicant):Add MBO config flag for mbo apis 2024-01-18 15:11:30 +05:30
Kapil Gupta
685fcf4278 Merge branch 'feature/supplicant_bss_extmem' into 'master'
WiFi: Add support to move supplicant BSS to external memory

See merge request espressif/esp-idf!27891
2024-01-11 15:55:14 +08:00
laokaiyao
11e19f40b9 feat(esp32c5): support to build hello world on esp32c5 beta3 2024-01-09 13:11:11 +08:00
Kapil Gupta
36c38943c8 fix(wifi): Add support to move supplicant BSS to external memory 2023-12-13 16:07:13 +00:00
igor.udot
6e258a879d fix: add count for wpa test 2023-12-06 15:58:05 +08:00
igor.udot
e0a40feb5c refactor: changed logic of unity_tester, replaced threads by generators 2023-12-06 15:58:05 +08:00
Jiang Jiang Jian
9f2578a0bd Merge branch 'bugfix/wps_disable_crash' into 'master'
Fix a crash in esp_wifi_wps_disable

Closes WIFIBUG-252 and WIFIBUG-266

See merge request espressif/esp-idf!27233
2023-12-05 11:21:09 +08:00
jgujarathi
322aa53d9d fix(wpa_supplicant): Add support for a dpp authentication timeout
- Adds support for a 1 second dpp authentication timeout.
2023-12-01 15:08:32 +05:30
jgujarathi
8508363ce5 fix(wpa_supplicant): Restructuring DPP init method to ensure cleanup
- Restructuring DPP init function to ensure cleanup of variables in case of
  init failure
2023-12-01 12:23:03 +05:30
jgujarathi
76da067bce fix(wpa_supplicant): Fix location of clearing up dpp global variables
- Fix location of cleaing up dpp global variables to ensure that there are
  no concurrency issues.
2023-12-01 12:23:03 +05:30
jgujarathi
30c510020f fix(wpa_supplicant): Fix a memory leak in dpp deinit path
- Ensures that the auth information of dpp gets freed when there is
  dpp gets deinited.
2023-12-01 12:23:00 +05:30
Jiang Jiang Jian
e6a490c2ae Merge branch 'bugfix/dpp_listen_bugs' into 'master'
fix(wpa_supplicant): Fix few bugs in dpp

See merge request espressif/esp-idf!26792
2023-12-01 11:07:18 +08:00
aditi_lonkar
bdeec024e8 fix(esp_wifi):Fix WDT when esp_supp_dpp_start_listen called multiple times 2023-11-30 15:37:17 +05:30
Ivan Grokhotkov
88fa79fcc7
feat(unity): upgrade to 2.6.0-RC1 2023-11-28 20:22:02 +01:00
jgujarathi
f73432f651 fix(wpa_supplicant): Move concurrent wps and dpp check to before creating task
- Move the check for checking concurrent wps and dpp check to before creating
  task rather than after.
2023-11-28 15:18:39 +05:30
jgujarathi
bb4b9d0687 fix(wpa_supplicant): Fix a crash in esp_wifi_wps_disable
- Fixes a crash observed in esp_wifi_wps_disable when wps process
  is ongoing, caused due to concurrency issues in cancelling timers.
2023-11-28 11:55:35 +05:30
muhaidong
147463a0ac fix(wifi): allow some special igtk keyindx to workaround faulty APs 2023-11-16 20:20:08 +08:00
Jiang Jiang Jian
b7c2e63bb4 Merge branch 'bugfix/supplicant_disconnect_process' into 'master'
esp_wifi:  Fix bug in esp_wifi_deauthenticate_internal() & wpa_supplicant: Add parameter to configure reason code of deauth frame

Closes WIFIBUG-13

See merge request espressif/esp-idf!23776
2023-11-15 23:52:32 +08:00
Sarvesh Bodakhe
b42e14c9b7 fix(wifi): fix bug in 'esp_wifi_deauthenticate_internal' and other improvements 2023-11-15 08:27:50 +05:30
Jiang Jiang Jian
65b8830d07 Merge branch 'bugfix/disallow_dpp_wps' into 'master'
fix(wifi): Disallow DPP and WPS concurrency

Closes WIFIBUG-205

See merge request espressif/esp-idf!26850
2023-11-15 10:41:59 +08:00
Sarvesh Bodakhe
2d83e3e7f4 fix(wpa_supplicant): Add some bugfixes in wpa_supplicant
1) Add parameter to configure reason code of deauth frame
2) Add logs to indicate MIC failure 4-Way-Handshake
3) Process RSNXE capabilities only if AP advertises them
2023-11-15 08:06:37 +05:30
Sudeep Mohanty
d507a86285 feat(freertos): Exposed Kconfig option for configUSE_LIST_DATA_INTEGRITY_CHECK_BYTES
This commit exposes the FreeRTOS List integrity check option
configUSE_LIST_DATA_INTEGRITY_CHECK_BYTES via menuconfig.
2023-11-09 14:54:13 +01:00
Kapil Gupta
c815fe67fa fix(wpa_supplicant): memzero wifi config before sending config event 2023-11-03 15:44:08 +05:30
Jiang Jiang Jian
b10580fb04 Merge branch 'bugfix/supplicant_tls_fix' into 'master'
fix(wpa_supplicant): Correct iv lenght passed in mbedtls_cipher_set_iv()

Closes WIFIBUG-212

See merge request espressif/esp-idf!26837
2023-11-02 13:59:05 +08:00
Kapil Gupta
69704efd5d fix(wifi): Disallow DPP and WPS concurrency 2023-11-01 19:09:58 +05:30
Kapil Gupta
442f802102 fix(wpa_supplicant): Correct iv lenght passed in mbedtls_cipher_set_iv() 2023-11-01 17:31:02 +05:30
Jiang Jiang Jian
15f62f87ed Merge branch 'bugfix/wpa3_softap_assoc_reject' into 'master'
fix(wifi): wpa3 softap fix deauth when assoc req recv before sae is finished

Closes WIFIBUG-95

See merge request espressif/esp-idf!25545
2023-11-01 10:37:12 +08:00
Jiang Jiang Jian
f89a879e80 Merge branch 'bugfix/fix_compilation_issue' into 'master'
fix(wpa_supplicant): Fix compilation issue in EAP disabled

Closes IDFGH-11304

See merge request espressif/esp-idf!26659
2023-10-31 14:29:15 +08:00
Jiang Jiang Jian
5f518dbdde Merge branch 'bugfix/disable_fastpbkdf2_hardwaredisable' into 'master'
fix(wpa_supplicant): implement sha1_finish for fastpbkdf2

Closes WIFIBUG-208

See merge request espressif/esp-idf!26682
2023-10-31 14:18:15 +08:00
Shreyas Sheth
8b8d4a0ffc fix(wifi): wpa3 softap fix deauth when assoc req recv before sae is finished 2023-10-31 06:13:49 +00:00
Sarvesh Bodakhe
0a95914839 fix(esp_wifi): Fix issue of station disconnecting immediately when AP RSSI is zero 2023-10-27 09:35:20 +05:30
Kapil Gupta
04d874d6a3 fix(wpa_supplicant): implement sha1_finish for fastpbkdf2 2023-10-26 13:27:39 +05:30
Kapil Gupta
53939de34e fix(wpa_supplicant): Fix compilation issue in EAP disabled 2023-10-25 09:55:12 +05:30
Jiang Jiang Jian
6db16c6e81 Merge branch 'feature/sta_sae_ext_key' into 'master'
feat(wifi): Add support for sae ext key for station

Closes WIFI-6170

See merge request espressif/esp-idf!24833
2023-10-19 18:49:15 +08:00
Zim Kalinowski
fa1a3ce0b5 Merge branch 'refactor/components_linux_compatible' into 'master'
Exclude all currently incompatible components from Linux build

Closes IDF-8318 and IDF-5996

See merge request espressif/esp-idf!25598
2023-10-18 20:17:49 +08:00
Shreyas Sheth
ee9ce51133 feat(wifi): Add SAE EXT key support for esp station 2023-10-18 17:10:31 +05:30
Jouni Malinen
98cc860e86 feat(wifi): Pull in wpa_supplicant upstream code for SAE EXT key
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>
2023-10-18 16:50:24 +05:30
Jouni Malinen
3ec105067c feat(wifi): Pull in wpa_supplicant upstream code for SAE EXT key
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>
2023-10-18 16:50:24 +05:30
Jouni Malinen
5719f7908d feat(wifi): Pull in wpa_supplicant upstream code for SAE EXT key
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>
2023-10-18 16:50:24 +05:30
Jouni Malinen
21ac680eac feat(wifi): Pull in wpa_supplicant upstream code for SAE EXT key
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>
2023-10-18 16:50:24 +05:30
Jouni Malinen
7dbfd8c6da feat(wifi): Pull in wpa_supplicant upstream code for SAE EXT key
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>
2023-10-18 16:50:24 +05:30
Jouni Malinen
b95ace06b8 feat(wifi): Pull in wpa_supplicant upstream code for SAE EXT key
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>
2023-10-18 16:50:24 +05:30
Shreyas Sheth
e746fc0deb feat(wifi): Refactor and update wpa_supplicant with upstream 2023-10-18 16:50:24 +05:30
Kapil Gupta
4dedd3e69d fix(wifi): Fix static analyzer warning for WPS code 2023-10-17 10:03:39 +05:30
Jakob Hasse
548022fbe6 refactor(linux): excluded all non-Linux components from build
* All components which won't build (yet) on Linux are excluded.
  This enables switching to Linux in an application without
  explicitly setting COMPONENTS to main in the main
  CMakeLists.txt.
* ESP Timer provides headers for Linux now
* automatically disabling LWIP in Kconfig if it is not available

doc(linux): brought section
  "Component Linux/Mock Support Overview" up to date
2023-10-16 17:06:54 +08:00
aditi_lonkar
236fa500c7 fix(wpa_supplicant): Fix few dpp bugs
1) Fix crash in dpp Listen without bootstrap
  2) Fix crash on receiving dpp auth_req from hostapd with dpp akm
2023-10-12 13:51:27 +00:00
Kapil Gupta
b73e46223b Merge branch 'bugfix/dpp_api_mode_check' into 'master'
Ensure dpp follows init->bootstrap->listen path

Closes WIFIBUG-165 and WIFIBUG-157

See merge request espressif/esp-idf!26302
2023-10-11 16:24:02 +08:00
Alexey Lapshin
a41e3d408f fix(wpa_supplicant): fix sys/types include 2023-10-09 12:13:02 +04:00
Ivan Grokhotkov
2b1e9af12f
change(wpa_supplicant): clean up test_sae, set leak thresholds
- fix relative includes
- remove ESP32-H2-related TODO — an ifdef is not needed now since the
  whole app is built only for SOC_WIFI_SUPPORTED=y
- set leak threshold in test case
2023-10-04 17:46:45 +02:00
Ivan Grokhotkov
1745baffae
change(wpa_supplicant): reformat test_sae with astyle 2023-10-04 17:46:45 +02:00
Ivan Grokhotkov
c07ee2d56b
change(wpa_supplicant): test_offchannel: cleanups and leak thresholds
- sort includes
- fix relative includes
- replace TEMPORARY_DISABLED_FOR_TARGETS with just IDF_TARGET_ESP32,
  to avoid having to change this file when bringing up new chips
- astyle formatting
- set leak threshold in test cases
- use the new 'wifi_two_dut' environment marker instead of UT_T2_1
2023-10-04 17:46:45 +02:00
Ivan Grokhotkov
098d28276e
change(wpa_supplicant): set leak threshold in test_fast_pbkdf2 2023-10-04 17:46:45 +02:00
Ivan Grokhotkov
6c27208ade
change(wpa_supplicant): reformat test_fast_pbkdf2 with astyle 2023-10-04 17:46:45 +02:00
Ivan Grokhotkov
191a9021c2
change(wpa_supplicant): clean up test_eloop, set leak threshold
- sort includes, fix relative includes
- make all globals static
- remove ifdef SOC_WIFI_SUPPORTED since the whole test app is only
  built when SOC_WIFI_SUPPORTED is set
2023-10-04 17:46:45 +02:00
Ivan Grokhotkov
6eec370532
change(wpa_supplicant): reformat test_eloop with astyle 2023-10-04 17:46:45 +02:00
Ivan Grokhotkov
955e2076b6
change(wpa_supplicant): clean up test_dpp, set leak threshold 2023-10-04 17:46:44 +02:00
Ivan Grokhotkov
b9952370b4
change(wpa_supplicant): reformat test_dpp with astyle 2023-10-04 17:46:44 +02:00
Ivan Grokhotkov
6e22dc2fe2
ci(wpa_supplicant): set leak thresholds in test_crypto 2023-10-04 17:46:44 +02:00