2021-10-29 00:39:53 -04:00
|
|
|
/*
|
2022-03-02 23:04:39 -05:00
|
|
|
* SPDX-FileCopyrightText: 2015-2022 Espressif Systems (Shanghai) CO LTD
|
2021-10-29 00:39:53 -04:00
|
|
|
*
|
|
|
|
* SPDX-License-Identifier: Apache-2.0
|
|
|
|
*/
|
2016-11-25 19:58:50 -05:00
|
|
|
|
|
|
|
#include <strings.h>
|
|
|
|
|
|
|
|
#include "esp_log.h"
|
|
|
|
#include "mbedtls/platform.h"
|
|
|
|
#include "mbedtls/debug.h"
|
|
|
|
#include "mbedtls/ssl.h"
|
|
|
|
#include "mbedtls/esp_debug.h"
|
|
|
|
|
2018-11-11 02:44:54 -05:00
|
|
|
#ifdef CONFIG_MBEDTLS_DEBUG
|
2016-11-25 19:58:50 -05:00
|
|
|
static const char *TAG = "mbedtls";
|
|
|
|
|
|
|
|
static void mbedtls_esp_debug(void *ctx, int level,
|
|
|
|
const char *file, int line,
|
|
|
|
const char *str);
|
|
|
|
|
|
|
|
void mbedtls_esp_enable_debug_log(mbedtls_ssl_config *conf, int threshold)
|
|
|
|
{
|
2018-11-11 02:44:54 -05:00
|
|
|
esp_log_level_t level = ESP_LOG_NONE;
|
2016-11-25 19:58:50 -05:00
|
|
|
mbedtls_debug_set_threshold(threshold);
|
|
|
|
mbedtls_ssl_conf_dbg(conf, mbedtls_esp_debug, NULL);
|
|
|
|
switch(threshold) {
|
|
|
|
case 1:
|
|
|
|
level = ESP_LOG_WARN;
|
2018-06-14 12:11:21 -04:00
|
|
|
break;
|
2016-11-25 19:58:50 -05:00
|
|
|
case 2:
|
|
|
|
level = ESP_LOG_INFO;
|
2018-06-14 12:11:21 -04:00
|
|
|
break;
|
2016-11-25 19:58:50 -05:00
|
|
|
case 3:
|
|
|
|
level = ESP_LOG_DEBUG;
|
2018-06-14 12:11:21 -04:00
|
|
|
break;
|
2016-11-25 19:58:50 -05:00
|
|
|
case 4:
|
|
|
|
level = ESP_LOG_VERBOSE;
|
2018-06-14 12:11:21 -04:00
|
|
|
break;
|
2016-11-25 19:58:50 -05:00
|
|
|
}
|
|
|
|
esp_log_level_set(TAG, level);
|
|
|
|
}
|
|
|
|
|
|
|
|
void mbedtls_esp_disable_debug_log(mbedtls_ssl_config *conf)
|
|
|
|
{
|
|
|
|
mbedtls_ssl_conf_dbg(conf, NULL, NULL);
|
|
|
|
}
|
|
|
|
|
2018-11-11 02:44:54 -05:00
|
|
|
|
2016-11-25 19:58:50 -05:00
|
|
|
/* Default mbedtls debug function that translates mbedTLS debug output
|
|
|
|
to ESP_LOGx debug output.
|
|
|
|
*/
|
|
|
|
static void mbedtls_esp_debug(void *ctx, int level,
|
|
|
|
const char *file, int line,
|
|
|
|
const char *str)
|
|
|
|
{
|
|
|
|
char *file_sep;
|
|
|
|
|
|
|
|
/* Shorten 'file' from the whole file path to just the filename
|
|
|
|
|
|
|
|
This is a bit wasteful because the macros are compiled in with
|
|
|
|
the full _FILE_ path in each case.
|
|
|
|
*/
|
|
|
|
file_sep = rindex(file, '/');
|
|
|
|
if(file_sep)
|
|
|
|
file = file_sep+1;
|
|
|
|
|
|
|
|
switch(level) {
|
|
|
|
case 1:
|
|
|
|
ESP_LOGW(TAG, "%s:%d %s", file, line, str);
|
|
|
|
break;
|
|
|
|
case 2:
|
|
|
|
ESP_LOGI(TAG, "%s:%d %s", file, line, str);
|
|
|
|
break;
|
|
|
|
case 3:
|
|
|
|
ESP_LOGD(TAG, "%s:%d %s", file, line, str);
|
2018-06-14 12:11:21 -04:00
|
|
|
break;
|
2016-11-25 19:58:50 -05:00
|
|
|
case 4:
|
|
|
|
ESP_LOGV(TAG, "%s:%d %s", file, line, str);
|
|
|
|
break;
|
|
|
|
default:
|
|
|
|
ESP_LOGE(TAG, "Unexpected log level %d: %s", level, str);
|
|
|
|
break;
|
|
|
|
}
|
|
|
|
}
|
2020-11-10 02:40:01 -05:00
|
|
|
#endif
|