Merge branch 'bugfix/eapol_log_verbosity' into 'master'

wpa_supplicant: Add wpa_supllicant debug logging as a configurable option

Closes WIFI-976

See merge request espressif/esp-idf!7289
This commit is contained in:
Jiang Jiang Jian 2020-02-11 16:10:07 +08:00
commit 7647b5c668
6 changed files with 50 additions and 26 deletions

View File

@ -6,4 +6,15 @@ menu "Supplicant"
help
Select this option to use MbedTLS crypto API's which utilize hardware acceleration.
config WPA_DEBUG_PRINT
bool "Print debug messages from WPA Supplicant"
default n
help
Select this option to print logging information from WPA supplicant,
this includes handshake information and key hex dumps depending
on the project logging level.
Enabling this could increase the build size ~60kb
depending on the project logging level.
endmenu

View File

@ -47,6 +47,7 @@ void wpa_debug_close_file(void);
*/
void wpa_debug_print_timestamp(void);
#ifdef DEBUG_PRINT
/**
* wpa_printf - conditional printf
* @level: priority level (MSG_*) of the message
@ -58,21 +59,6 @@ void wpa_debug_print_timestamp(void);
*
* Note: New line '\n' is added to the end of the text when printing to stdout.
*/
#define DEBUG_PRINT
#define MSG_PRINT
/**
* wpa_hexdump - conditional hex dump
* @level: priority level (MSG_*) of the message
* @title: title of for the message
* @buf: data buffer to be dumped
* @len: length of the buf
*
* This function is used to print conditional debugging and error messages. The
* output may be directed to stdout, stderr, and/or syslog based on
* configuration. The contents of buf is printed out has hex dump.
*/
#ifdef DEBUG_PRINT
#define wpa_printf(level,fmt, args...) ESP_LOG_LEVEL_LOCAL(level, TAG, fmt, ##args)
void wpa_dump_mem(char* desc, uint8_t *addr, uint16_t len);
@ -85,7 +71,17 @@ static inline void wpa_hexdump_ascii_key(int level, const char *title, const u8
{
}
/**
* wpa_hexdump - conditional hex dump
* @level: priority level (MSG_*) of the message
* @title: title of for the message
* @buf: data buffer to be dumped
* @len: length of the buf
*
* This function is used to print conditional debugging and error messages. The
* output may be directed to stdout, stderr, and/or syslog based on
* configuration. The contents of buf is printed out has hex dump.
*/
void wpa_hexdump(int level, const char *title, const u8 *buf, size_t len);
static inline void wpa_hexdump_buf(int level, const char *title,
@ -149,13 +145,14 @@ void wpa_hexdump_ascii(int level, const char *title, const u8 *buf,
void wpa_hexdump_ascii_key(int level, const char *title, const u8 *buf,
size_t len);
#else
#define wpa_printf(level,fmt, args...)
#define wpa_hexdump(...)
#define wpa_hexdump_buf(...)
#define wpa_hexdump_key(...)
#define wpa_hexdump_buf_key(...)
#define wpa_hexdump_ascii(...)
#define wpa_hexdump_ascii_key(...)
#define wpa_printf(level,fmt, args...) do {} while(0)
#define wpa_hexdump(...) do {} while(0)
#define wpa_dump_mem(...) do {} while(0)
#define wpa_hexdump_buf(...) do {} while(0)
#define wpa_hexdump_key(...) do {} while(0)
#define wpa_hexdump_buf_key(...) do {} while(0)
#define wpa_hexdump_ascii(...) do {} while(0)
#define wpa_hexdump_ascii_key(...) do {} while(0)
#endif
#define wpa_auth_logger

View File

@ -21,4 +21,8 @@
#define USE_MBEDTLS_CRYPTO 1
#endif
#if CONFIG_WPA_DEBUG_PRINT
#define DEBUG_PRINT
#endif
#endif /* _SUPPLICANT_OPT_H */

View File

@ -1038,7 +1038,9 @@ get_defaults:
int eap_peer_tls_phase2_nak(struct eap_method_type *types, size_t num_types,
struct eap_hdr *hdr, struct wpabuf **resp)
{
#ifdef DEBUG_PRINT
u8 *pos = (u8 *) (hdr + 1);
#endif
size_t i;
/* TODO: add support for expanded Nak */

View File

@ -187,7 +187,6 @@ void wpa2_task(void *pvParameters )
ETSEvent *e;
struct eap_sm *sm = gEapSm;
bool task_del = false;
uint32_t sig = 0;
if (!sm) {
return;
@ -195,7 +194,10 @@ void wpa2_task(void *pvParameters )
for (;;) {
if ( pdPASS == xQueueReceive(s_wpa2_queue, &e, portMAX_DELAY) ) {
#ifdef DEBUG_PRINT
uint32_t sig = 0;
sig = e->sig;
#endif
if (e->sig < SIG_WPA2_MAX) {
DATA_MUTEX_TAKE();
if(sm->wpa2_sig_cnt[e->sig]) {

View File

@ -2422,14 +2422,18 @@ static int wps_process_wps_state(struct wps_data *wps, const u8 *state)
static int wps_process_assoc_state(struct wps_data *wps, const u8 *assoc)
{
u16 a;
#ifdef DEBUG_PRINT
u16 a;
#endif
if (assoc == NULL) {
wpa_printf(MSG_DEBUG, "WPS: No Association State received");
return -1;
}
#ifdef DEBUG_PRINT
a = WPA_GET_BE16(assoc);
#endif
wpa_printf(MSG_DEBUG, "WPS: Enrollee Association State %d", a);
return 0;
@ -2438,14 +2442,18 @@ static int wps_process_assoc_state(struct wps_data *wps, const u8 *assoc)
static int wps_process_config_error(struct wps_data *wps, const u8 *err)
{
u16 e;
#ifdef DEBUG_PRINT
u16 e;
#endif
if (err == NULL) {
wpa_printf(MSG_DEBUG, "WPS: No Configuration Error received");
return -1;
}
#ifdef DEBUG_PRINT
e = WPA_GET_BE16(err);
#endif
wpa_printf(MSG_DEBUG, "WPS: Enrollee Configuration Error %d", e);
return 0;