Session Cache API Change ----------------------------------------------------------------- This affects users who use `mbedtls_ssl_conf_session_cache()` to configure a custom session cache implementation different from the one Mbed TLS implements in `library/ssl_cache.c`. Those users will need to modify the API of their session cache implementation to that of a key-value store with keys being session IDs and values being instances of `mbedtls_ssl_session`: ``` typedef int mbedtls_ssl_cache_get_t( void *data, unsigned char const *session_id, size_t session_id_len, mbedtls_ssl_session *session ); typedef int mbedtls_ssl_cache_set_t( void *data, unsigned char const *session_id, size_t session_id_len, const mbedtls_ssl_session *session ); ``` Since the structure of `mbedtls_ssl_session` is no longer public from 3.0 onwards, portable session cache implementations must not access fields of `mbedtls_ssl_session`. See the corresponding migration guide. Users that find themselves unable to migrate their session cache functionality without accessing fields of `mbedtls_ssl_session` should describe their usecase on the Mbed TLS mailing list.