84 Commits

Author SHA1 Message Date
Alexey Lapshin
f328e06ed4 fix(wpa_supplicant): fix warnings found by GNU static analyzer 2024-06-18 14:25:37 +08:00
jgujarathi
b23e29d5ae fix(wpa_supplicant): Add current bss channel as hint to scanning
- Add current bss channel as hint to scanning during supplicant connect
  making the process faster.
2024-04-01 23:00:01 +08:00
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
Sarvesh Bodakhe
34725cdbfd feat(wifi): Add support SAE-PK and WPA3-Enterprise transition disable 2024-03-15 13:55:31 +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
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
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
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
jgujarathi
906685898d fix(esp_wifi): Fix issues with extended caps IE, scan and HT40 mode
-Merges the addition of extended caps IE for assoc req, probe resp
 and beacons in a single place. This ensures that there are no
 duplicate Extended Caps IE in the frame. Moves the capability
 indication for BTM and HT20/40 from supplicant to wifi libs.

-Fix issue with frequent disconections when scanning for only a single
 channel.

-Prints error message and returns ESP_ERR_NOT_SUPPORTED in case
 esp32c2 tries to set bandwidth to HT40.
2023-09-14 10:19:27 +05:30
Jiang Jiang Jian
5933779f2d Merge branch 'feature/configurable_wpa2_ent' into 'master'
esp_wifi: Make enterprise support configurable to save binary size.

Closes WIFI-3597

See merge request espressif/esp-idf!24345
2023-09-13 10:17:44 +08:00
aditi_lonkar
c88e7106ec esp_wifi: Make enterprise support configurable to save binary size. 2023-08-25 11:00:54 +05:30
Kapil Gupta
42ac4614e6 change(wifi): Reduce BSS logging in wpa_supplicant 2023-08-22 14:31:02 +00:00
jgujarathi
c610594abb fix(rrm) : Fix crash in RRM neighbour report requests.
Fix crash in sending new RRM neighbour report requests by removing
the call to neighbour report request timeout callback in case of
already ongoing neighbour report request timer.
2023-07-25 16:38:59 +05:30
Shyamal Khachane
032305a74f wpa_supplicant: Reduce logging for SAE 2023-05-04 11:21:57 +05:30
Shreyas Sheth
38e9c8b474 wpa_supplicant: Bugfix sending invalid PMKID by softAP in EAPOL message 1 of 4 2023-04-03 12:00:23 +05:30
Shreyas Sheth
c797146f43 wpa_supplicant: Resolve WPA3 SAE softAP coverity issues
1) Resolve wpa_suppliant coverity issues caused by SAE softAP
2) Fix crash occured while deinitialization of softAP
   when authmode is changed
3) Fix issue related to anti clogging token and send_confirm
4) Put some AP specific functions under ESP_WIFI_SOFTAP_SUPPORT
   compilation flags
2023-03-12 17:33:17 +05:30
Shreyas Sheth
2b8e40e760 esp_wifi: WPA3-SAE support for softAP 2023-02-28 12:25:05 +08:00
Alexey Lapshin
adcdfa641c wpa_supplicant: fix gcc-12 compile errors 2023-02-22 05:33:03 +00:00
Sarvesh Bodakhe
d2f6a3dacc esp-wifi: add SAE-PK (Public Key) authentication support for station 2023-02-16 13:49:11 +05:30
Kapil Gupta
30a2558450 esp_wifi: Merge wpa_supplicant and esp_wifi Kconfig 2023-02-11 07:38:45 +08:00
jgujarathi
417fc6d404 wpa_supplicant : Correct scan results for GCMP RSN
Fixed a typo which was causing scan results for GCMP not showing correctly
2023-02-01 12:12:29 +05:30
Jiang Jiang Jian
3636495d33 Merge branch 'bugfix/remove_redundant_debug_print' into 'master'
Remove redundant DEBUG_PRINT in supplicant

Closes IDFGH-9037

See merge request espressif/esp-idf!21857
2023-01-18 16:45:44 +08:00
Shyamal Khachane
9603d1d903 Fix SAE open auth and PMK issues 2023-01-10 14:03:00 +08:00
gauri patankar
68fb038f43 wpa_supplicant:Remove redundant DEBUG_PRINT in supplicant 2023-01-03 12:52:54 +05:30
gauri patankar
9a1e4e3b7b wpa_supplicant:Remove stray \n in supplicant logging 2022-12-23 15:55:06 +05:30
Shreyas Sheth
bd55b8b72e esp_wifi:BDSA related patch updates 2022-12-12 15:04:04 +05:30
Shreyas Sheth
377eeedfef esp_wifi:Mandate stations to have minimum security wpa3 2022-11-30 13:01:40 +08:00
gauri patankar
84252e4eb8 wpa_supplicant: Update security patches from upstream
1. Adding security patch for SAE side channel attacks
2. Adding confirm message validation in error cases
3. Adding y coordinate for PWE in SAE
2022-10-11 11:33:33 +05:30
gauri patankar
c286b0192b wpa_supplicant: Move SAE modules into dragonfly files 2022-10-11 11:26:39 +05:30
Shreyas Sheth
341a92aaa5 esp_wifi: WPA3 SAE keep default value as h2e and hunting and pecking for sae pwe 2022-07-22 12:23:13 +05:30
Shreyas Sheth
591c7a496c esp_wifi: WPA3 SAE H2E support for station 2022-06-20 18:51:11 +05:30
Shyamal Khachane
6d55761f60 OWE support for station 2022-06-15 17:20:24 +05:30
Kapil Gupta
916a4d6524 Fix coverity reported issues 2022-06-06 11:03:35 +05:30
Kapil Gupta
777b2caa1c wpa_supplicant: Move ETS/ESP timers to eloop 2022-05-29 09:32:16 +05:30
Kapil Gupta
a6811adac7 wpa_supplicant: Add WPS registrar support for softAP mode 2022-05-24 12:11:53 +05:30
Kapil Gupta
ee33c6ae05 esp_wifi: Add APIs to check BTM and RRM support of connected AP 2022-05-16 15:57:59 +05:30
Kapil Gupta
36321fda82 Merge branch 'feature/eloop_timer' into 'master'
wpa_supplicant: Add timer based eloop implementation

See merge request espressif/esp-idf!17430
2022-05-12 12:30:44 +08:00
Kapil Gupta
ecc87cfc8d wpa_supplicant: wps code updation
Update WPS code with upstream. Also moved ESP specific code
in another esp code folder.
2022-05-11 12:18:52 +00:00
Kapil Gupta
d06daee350 wpa_supplicant: Add timer based eloop implementation 2022-05-11 17:45:23 +05:30
Kapil Gupta
cb222740bd Merge branch 'bugfix/coverity_fixes' into 'master'
wpa_supplicant: Fix issues reported by coverity

Closes WIFI-4390

See merge request espressif/esp-idf!17915
2022-05-05 18:17:27 +08:00
kapil.gupta
3d5ca7ee6e wpa_supplicant: Add support for FT psk 2022-05-01 16:16:51 +05:30
Kapil Gupta
f070e2db6d wpa_supplicant: Fix issues reported by coverity 2022-04-26 21:40:27 +05:30
Ivan Grokhotkov
708e99497b
global: add dependency on esp_timer component and include esp_timer.h
Some components were including esp_timer.h without declaring a
dependency on esp_timer component. This used to work due to a
transitive public dependency on esp_timer from freertos component.
Add explicit dependencies where needed.
Also some source files were using esp_timer functions without
including the header file. This used to work because esp_timer.h was
included from freertos port header file. This commit adds esp_timer.h
includes where needed.
2022-04-25 18:39:23 +02:00
Anton Maklakov
6200d2328d Merge branch 'bugfix/printf-placeholder-for-time_t' into 'master'
components: correct printf() placeholder for time_t

See merge request espressif/esp-idf!17439
2022-03-17 16:08:08 +08:00