Added support for client session tickets in esp-tls (with mbedtls)

* client session tickets for individual tls connections are supported
* reorganize the esp-tls error codes.
* Update esp_err_to_name.c
* Fix styling
This commit is contained in:
Aditya Patwardhan
2021-07-23 17:00:32 +05:30
parent 7e886ca9ed
commit b4e4b9f20d
7 changed files with 235 additions and 119 deletions

View File

@@ -38,11 +38,12 @@ static const char *TAG = "esp-tls";
#define _esp_tls_write esp_mbedtls_write
#define _esp_tls_conn_delete esp_mbedtls_conn_delete
#define _esp_tls_net_init esp_mbedtls_net_init
#define _esp_tls_get_client_session esp_mbedtls_get_client_session
#ifdef CONFIG_ESP_TLS_SERVER
#define _esp_tls_server_session_create esp_mbedtls_server_session_create
#define _esp_tls_server_session_delete esp_mbedtls_server_session_delete
#define _esp_tls_session_ticket_ctx_init esp_mbedtls_session_ticket_ctx_init
#define _esp_tls_session_ticket_ctx_free esp_mbedtls_session_ticket_ctx_free
#define _esp_tls_server_session_ticket_ctx_init esp_mbedtls_server_session_ticket_ctx_init
#define _esp_tls_server_session_ticket_ctx_free esp_mbedtls_server_session_ticket_ctx_free
#endif /* CONFIG_ESP_TLS_SERVER */
#define _esp_tls_get_bytes_avail esp_mbedtls_get_bytes_avail
#define _esp_tls_init_global_ca_store esp_mbedtls_init_global_ca_store
@@ -570,19 +571,31 @@ mbedtls_x509_crt *esp_tls_get_global_ca_store(void)
}
#endif /* CONFIG_ESP_TLS_USING_MBEDTLS */
#ifdef CONFIG_ESP_TLS_SERVER
#ifdef CONFIG_ESP_TLS_CLIENT_SESSION_TICKETS
esp_tls_client_session_t *esp_tls_get_client_session(esp_tls_t *tls)
{
return _esp_tls_get_client_session(tls);
}
#endif /* CONFIG_ESP_TLS_CLIENT_SESSION_TICKETS */
#ifdef CONFIG_ESP_TLS_SERVER
esp_err_t esp_tls_cfg_server_session_tickets_init(esp_tls_cfg_server_t *cfg)
{
#if defined(CONFIG_ESP_TLS_USING_MBEDTLS) && defined(CONFIG_ESP_TLS_SERVER_SESSION_TICKETS)
#if defined(CONFIG_ESP_TLS_SERVER_SESSION_TICKETS)
if (!cfg || cfg->ticket_ctx) {
return ESP_ERR_INVALID_ARG;
}
cfg->ticket_ctx = calloc(1, sizeof(esp_tls_session_ticket_ctx_t));
cfg->ticket_ctx = calloc(1, sizeof(esp_tls_server_session_ticket_ctx_t));
if (!cfg->ticket_ctx) {
return ESP_ERR_NO_MEM;
}
return _esp_tls_session_ticket_ctx_init(cfg->ticket_ctx);
esp_err_t ret = _esp_tls_server_session_ticket_ctx_init(cfg->ticket_ctx);
if (ret != ESP_OK) {
free(cfg->ticket_ctx);
}
return ret;
#else
return ESP_ERR_NOT_SUPPORTED;
#endif
@@ -590,9 +603,9 @@ esp_err_t esp_tls_cfg_server_session_tickets_init(esp_tls_cfg_server_t *cfg)
void esp_tls_cfg_server_session_tickets_free(esp_tls_cfg_server_t *cfg)
{
#if defined(CONFIG_ESP_TLS_USING_MBEDTLS) && defined(CONFIG_ESP_TLS_SERVER_SESSION_TICKETS)
#if defined(CONFIG_ESP_TLS_SERVER_SESSION_TICKETS)
if (cfg && cfg->ticket_ctx) {
_esp_tls_session_ticket_ctx_free(cfg->ticket_ctx);
_esp_tls_server_session_ticket_ctx_free(cfg->ticket_ctx);
}
#endif
}