Summary: altcp_mbedtls: multiple fixes and session
Project: lwIP - A Lightweight TCP/IP stack
Submitted by: dgirault
Submitted on: mar. 15 oct. 2019 13:01:04 UTC
Priority: 5 - Normal
Assigned to: None
Discussion Lock: Any
Planned Release: None
- Ensure no memory leaks and entropy counter is protected
- Use ERR_CLSD only for handshake error.
This allow better handling of handshake error in application.
- Call the application sent() callback with usefull len
First calculate and sum TLS overhead when altcp_mbedtls_write() is
Then take care of it when calling application sent callback. Give
len from inner_conn, minus calculated overhead.
- Support for saving/restoring session information
According to mbedTLS source code and documentation, calls to
are only available if mbedTLS is configured for server mode (ie.
is defined). This cannot be used on client mode to resume a previous
To allow session reuse in client mode, application must save session
(including tickets provided by the server if any) after successfull
and restore them before attemting to reconnect. Since `alctp_close()` free
structure, it cannot be used to store the required information.
So, two new API were added, directly wrapped to mbedTLS functions, allow
to do that by itself.
Also added full declaration of `struct altcp_tls_session` in altcp_tls.h
easier usage in application when using mbedTLS port.