forked from espressif/esp-idf
fix(esp_wifi): Removal of task posting code and use pptask instead
This commit is contained in:
@@ -474,6 +474,9 @@ static const esp_err_msg_t esp_err_msg_table[] = {
|
|||||||
ERR_TBL_IT(ESP_ERR_DPP_INVALID_LIST), /* 12443 0x309b Channel list given in
|
ERR_TBL_IT(ESP_ERR_DPP_INVALID_LIST), /* 12443 0x309b Channel list given in
|
||||||
esp_supp_dpp_bootstrap_gen() is not
|
esp_supp_dpp_bootstrap_gen() is not
|
||||||
valid or too big */
|
valid or too big */
|
||||||
|
# endif
|
||||||
|
# ifdef ESP_ERR_DPP_CONF_TIMEOUT
|
||||||
|
ERR_TBL_IT(ESP_ERR_DPP_CONF_TIMEOUT), /* 12444 0x309c DPP Configuration was not received in time */
|
||||||
# endif
|
# endif
|
||||||
// components/esp_common/include/esp_err.h
|
// components/esp_common/include/esp_err.h
|
||||||
# ifdef ESP_ERR_MESH_BASE
|
# ifdef ESP_ERR_MESH_BASE
|
||||||
|
@@ -16,7 +16,6 @@
|
|||||||
extern "C" {
|
extern "C" {
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#define ESP_DPP_AUTH_TIMEOUT_SECS 2
|
|
||||||
#define ESP_DPP_MAX_CHAN_COUNT 5
|
#define ESP_DPP_MAX_CHAN_COUNT 5
|
||||||
|
|
||||||
#define ESP_ERR_DPP_FAILURE (ESP_ERR_WIFI_BASE + 151) /*!< Generic failure during DPP Operation */
|
#define ESP_ERR_DPP_FAILURE (ESP_ERR_WIFI_BASE + 151) /*!< Generic failure during DPP Operation */
|
||||||
@@ -24,7 +23,7 @@ extern "C" {
|
|||||||
#define ESP_ERR_DPP_INVALID_ATTR (ESP_ERR_WIFI_BASE + 153) /*!< Encountered invalid DPP Attribute */
|
#define ESP_ERR_DPP_INVALID_ATTR (ESP_ERR_WIFI_BASE + 153) /*!< Encountered invalid DPP Attribute */
|
||||||
#define ESP_ERR_DPP_AUTH_TIMEOUT (ESP_ERR_WIFI_BASE + 154) /*!< DPP Auth response was not received in time */
|
#define ESP_ERR_DPP_AUTH_TIMEOUT (ESP_ERR_WIFI_BASE + 154) /*!< DPP Auth response was not received in time */
|
||||||
#define ESP_ERR_DPP_INVALID_LIST (ESP_ERR_WIFI_BASE + 155) /*!< Channel list given in esp_supp_dpp_bootstrap_gen() is not valid or too big */
|
#define ESP_ERR_DPP_INVALID_LIST (ESP_ERR_WIFI_BASE + 155) /*!< Channel list given in esp_supp_dpp_bootstrap_gen() is not valid or too big */
|
||||||
#define ESP_ERR_DPP_CONF_TIMEOUT (ESP_ERR_WIFI_BASE + 155) /*!< DPP Configuration was not recieved in time */
|
#define ESP_ERR_DPP_CONF_TIMEOUT (ESP_ERR_WIFI_BASE + 156) /*!< DPP Configuration was not received in time */
|
||||||
|
|
||||||
/** @brief Types of Bootstrap Methods for DPP. */
|
/** @brief Types of Bootstrap Methods for DPP. */
|
||||||
typedef enum dpp_bootstrap_type {
|
typedef enum dpp_bootstrap_type {
|
||||||
|
@@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* SPDX-FileCopyrightText: 2015-2024 Espressif Systems (Shanghai) CO LTD
|
* SPDX-FileCopyrightText: 2015-2025 Espressif Systems (Shanghai) CO LTD
|
||||||
*
|
*
|
||||||
* SPDX-License-Identifier: Apache-2.0
|
* SPDX-License-Identifier: Apache-2.0
|
||||||
*/
|
*/
|
||||||
@@ -844,21 +844,23 @@ int crypto_ec_key_verify_signature_r_s(struct crypto_ec_key *csign,
|
|||||||
|
|
||||||
void crypto_ec_key_debug_print(struct crypto_ec_key *key, const char *title)
|
void crypto_ec_key_debug_print(struct crypto_ec_key *key, const char *title)
|
||||||
{
|
{
|
||||||
#ifdef DEBUG_PRINT
|
#if defined(CONFIG_LOG_DEFAULT_LEVEL_DEBUG) || defined(CONFIG_LOG_DEFAULT_LEVEL_VERBOSE)
|
||||||
|
#if defined(DEBUG_PRINT)
|
||||||
mbedtls_pk_context *pkey = (mbedtls_pk_context *)key;
|
mbedtls_pk_context *pkey = (mbedtls_pk_context *)key;
|
||||||
mbedtls_ecp_keypair *ecp = mbedtls_pk_ec(*pkey);
|
mbedtls_ecp_keypair *ecp = mbedtls_pk_ec(*pkey);
|
||||||
u8 x[32], y[32], d[32];
|
u8 x[32], y[32], d[32];
|
||||||
wpa_printf(MSG_DEBUG, "curve: %s",
|
wpa_printf(MSG_EXCESSIVE, "curve: %s",
|
||||||
mbedtls_ecp_curve_info_from_grp_id(ecp->MBEDTLS_PRIVATE(grp).id)->name);
|
mbedtls_ecp_curve_info_from_grp_id(ecp->MBEDTLS_PRIVATE(grp).id)->name);
|
||||||
int len = mbedtls_mpi_size((mbedtls_mpi *)crypto_ec_get_prime((struct crypto_ec *)crypto_ec_get_group_from_key(key)));
|
int len = mbedtls_mpi_size((mbedtls_mpi *)crypto_ec_get_prime((struct crypto_ec *)crypto_ec_get_group_from_key(key)));
|
||||||
|
|
||||||
wpa_printf(MSG_DEBUG, "prime len is %d", len);
|
wpa_printf(MSG_EXCESSIVE, "prime len is %d", len);
|
||||||
crypto_ec_point_to_bin((struct crypto_ec *)crypto_ec_get_group_from_key(key), crypto_ec_key_get_public_key(key), x, y);
|
crypto_ec_point_to_bin((struct crypto_ec *)crypto_ec_get_group_from_key(key), crypto_ec_key_get_public_key(key), x, y);
|
||||||
crypto_bignum_to_bin(crypto_ec_key_get_private_key(key),
|
crypto_bignum_to_bin(crypto_ec_key_get_private_key(key),
|
||||||
d, len, len);
|
d, len, len);
|
||||||
wpa_hexdump(MSG_DEBUG, "Q_x:", x, 32);
|
wpa_hexdump(MSG_EXCESSIVE, "Q_x:", x, 32);
|
||||||
wpa_hexdump(MSG_DEBUG, "Q_y:", y, 32);
|
wpa_hexdump(MSG_EXCESSIVE, "Q_y:", y, 32);
|
||||||
wpa_hexdump(MSG_DEBUG, "d: ", d, 32);
|
wpa_hexdump(MSG_EXCESSIVE, "d: ", d, 32);
|
||||||
|
#endif
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
|
File diff suppressed because it is too large
Load Diff
@@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* SPDX-FileCopyrightText: 2020-2024 Espressif Systems (Shanghai) CO LTD
|
* SPDX-FileCopyrightText: 2020-2025 Espressif Systems (Shanghai) CO LTD
|
||||||
*
|
*
|
||||||
* SPDX-License-Identifier: Apache-2.0
|
* SPDX-License-Identifier: Apache-2.0
|
||||||
*/
|
*/
|
||||||
@@ -14,25 +14,10 @@
|
|||||||
#include "esp_dpp.h"
|
#include "esp_dpp.h"
|
||||||
#include "esp_wifi_driver.h"
|
#include "esp_wifi_driver.h"
|
||||||
|
|
||||||
#define DPP_TASK_STACK_SIZE (6144 + TASK_STACK_SIZE_ADD)
|
#define ESP_DPP_AUTH_TIMEOUT_SECS 2
|
||||||
|
#define ESP_GAS_TIMEOUT_SECS 2
|
||||||
#define ESP_DPP_PMK_CACHE_DEFAULT_TIMEOUT 86400 * 7 /*!< 7 days */
|
#define ESP_DPP_PMK_CACHE_DEFAULT_TIMEOUT 86400 * 7 /*!< 7 days */
|
||||||
|
|
||||||
enum SIG_DPP {
|
|
||||||
SIG_DPP_RESET = 0,
|
|
||||||
SIG_DPP_BOOTSTRAP_GEN,
|
|
||||||
SIG_DPP_RX_ACTION,
|
|
||||||
SIG_DPP_LISTEN_NEXT_CHANNEL,
|
|
||||||
SIG_DPP_DEL_TASK,
|
|
||||||
SIG_DPP_START_NET_INTRO,
|
|
||||||
SIG_DPP_DEINIT_AUTH,
|
|
||||||
SIG_DPP_MAX,
|
|
||||||
};
|
|
||||||
|
|
||||||
typedef struct {
|
|
||||||
uint32_t id;
|
|
||||||
uint32_t data;
|
|
||||||
} dpp_event_t;
|
|
||||||
|
|
||||||
#define BOOTSTRAP_ROC_WAIT_TIME 500
|
#define BOOTSTRAP_ROC_WAIT_TIME 500
|
||||||
#define OFFCHAN_TX_WAIT_TIME 600
|
#define OFFCHAN_TX_WAIT_TIME 600
|
||||||
|
|
||||||
@@ -53,11 +38,10 @@ struct esp_dpp_context_t {
|
|||||||
struct dpp_global *dpp_global;
|
struct dpp_global *dpp_global;
|
||||||
wifi_config_t wifi_cfg;
|
wifi_config_t wifi_cfg;
|
||||||
int id;
|
int id;
|
||||||
|
bool dpp_init_done;
|
||||||
|
bool bootstrap_done;
|
||||||
};
|
};
|
||||||
|
|
||||||
int esp_supp_rx_action(uint8_t *hdr, uint8_t *payload, size_t len, uint8_t channel);
|
|
||||||
esp_err_t esp_dpp_post_evt(uint32_t evt_id, uint32_t data);
|
|
||||||
|
|
||||||
#ifdef CONFIG_TESTING_OPTIONS
|
#ifdef CONFIG_TESTING_OPTIONS
|
||||||
int dpp_test_gen_invalid_key(struct wpabuf *msg, const struct dpp_curve_params *curve);
|
int dpp_test_gen_invalid_key(struct wpabuf *msg, const struct dpp_curve_params *curve);
|
||||||
char * dpp_corrupt_connector_signature(const char *connector);
|
char * dpp_corrupt_connector_signature(const char *connector);
|
||||||
|
@@ -213,7 +213,7 @@ int dpp_connect(uint8_t *bssid, bool pdr_done)
|
|||||||
int res = 0;
|
int res = 0;
|
||||||
if (!pdr_done) {
|
if (!pdr_done) {
|
||||||
if (esp_wifi_sta_get_prof_authmode_internal() == WPA3_AUTH_DPP) {
|
if (esp_wifi_sta_get_prof_authmode_internal() == WPA3_AUTH_DPP) {
|
||||||
esp_dpp_post_evt(SIG_DPP_START_NET_INTRO, (u32)bssid);
|
esp_dpp_start_net_intro_protocol(bssid);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
res = wpa_config_bss(bssid);
|
res = wpa_config_bss(bssid);
|
||||||
|
@@ -84,7 +84,7 @@ void dpp_debug_print_point(const char *title, struct crypto_ec *e,
|
|||||||
|
|
||||||
static void dpp_auth_fail(struct dpp_authentication *auth, const char *txt)
|
static void dpp_auth_fail(struct dpp_authentication *auth, const char *txt)
|
||||||
{
|
{
|
||||||
wpa_msg(auth->msg_ctx, MSG_INFO, DPP_EVENT_FAIL "%s", txt);
|
wpa_printf(MSG_INFO, "%s", txt);
|
||||||
}
|
}
|
||||||
|
|
||||||
struct wpabuf * dpp_alloc_msg(enum dpp_public_action_frame_type type,
|
struct wpabuf * dpp_alloc_msg(enum dpp_public_action_frame_type type,
|
||||||
|
Reference in New Issue
Block a user