26 #if defined(MBEDTLS_SSL_CACHE_C)
42 #if defined(MBEDTLS_THREADING_C)
50 #if defined(MBEDTLS_HAVE_TIME)
56 #if defined(MBEDTLS_THREADING_C)
69 #if defined(MBEDTLS_HAVE_TIME)
71 (
int) (
t - entry->timestamp) > cache->
timeout) {
88 #if defined(MBEDTLS_X509_CRT_PARSE_C) && \
89 defined(MBEDTLS_SSL_KEEP_PEER_CERTIFICATE)
93 if (entry->peer_cert.p !=
NULL) {
106 entry->peer_cert.len) != 0) {
108 session->peer_cert =
NULL;
120 #if defined(MBEDTLS_THREADING_C)
132 #if defined(MBEDTLS_HAVE_TIME)
140 #if defined(MBEDTLS_THREADING_C)
149 while (cur !=
NULL) {
152 #if defined(MBEDTLS_HAVE_TIME)
154 (
int) (
t - cur->timestamp) > cache->
timeout) {
164 #if defined(MBEDTLS_HAVE_TIME)
165 if (oldest == 0 || cur->timestamp < oldest) {
166 oldest = cur->timestamp;
176 #if defined(MBEDTLS_HAVE_TIME)
222 #if defined(MBEDTLS_HAVE_TIME)
227 #if defined(MBEDTLS_X509_CRT_PARSE_C) && \
228 defined(MBEDTLS_SSL_KEEP_PEER_CERTIFICATE)
232 if (cur->peer_cert.p !=
NULL) {
249 #if defined(MBEDTLS_X509_CRT_PARSE_C) && \
250 defined(MBEDTLS_SSL_KEEP_PEER_CERTIFICATE)
255 if (cur->peer_cert.p ==
NULL) {
260 memcpy(cur->peer_cert.p,
262 cur->
session.peer_cert->raw.len);
263 cur->peer_cert.len = session->peer_cert->raw.len;
274 #if defined(MBEDTLS_THREADING_C)
283 #if defined(MBEDTLS_HAVE_TIME)
309 while (cur !=
NULL) {
315 #if defined(MBEDTLS_X509_CRT_PARSE_C) && \
316 defined(MBEDTLS_SSL_KEEP_PEER_CERTIFICATE)
323 #if defined(MBEDTLS_THREADING_C)
#define mbedtls_mutex_init
#define mbedtls_x509_crt_init
#define mbedtls_mutex_free
#define mbedtls_x509_crt_free
#define mbedtls_x509_crt_parse
#define mbedtls_ssl_cache_set_timeout
#define mbedtls_mutex_lock
#define mbedtls_mutex_unlock
void mbedtls_ssl_session_free(mbedtls_ssl_session *session)
Free referenced items in an SSL session including the peer certificate and clear memory.
SSL session cache implementation.
#define MBEDTLS_SSL_CACHE_DEFAULT_TIMEOUT
#define MBEDTLS_SSL_CACHE_DEFAULT_MAX_ENTRIES
int mbedtls_ssl_cache_set(void *data, const mbedtls_ssl_session *session)
Cache set callback implementation (Thread-safe if MBEDTLS_THREADING_C is enabled)
void mbedtls_ssl_cache_init(mbedtls_ssl_cache_context *cache)
Initialize an SSL cache context.
void mbedtls_ssl_cache_free(mbedtls_ssl_cache_context *cache)
Free referenced items in a cache context and clear memory.
void mbedtls_ssl_cache_set_max_entries(mbedtls_ssl_cache_context *cache, int max)
Set the maximum number of cache entries (Default: MBEDTLS_SSL_CACHE_DEFAULT_MAX_ENTRIES (50))
int mbedtls_ssl_cache_get(void *data, mbedtls_ssl_session *session)
Cache get callback implementation (Thread-safe if MBEDTLS_THREADING_C is enabled)
Internal functions shared by the SSL modules.
MBEDTLS_CHECK_RETURN_CRITICAL int mbedtls_ssl_session_copy(mbedtls_ssl_session *dst, const mbedtls_ssl_session *src)
Type-length-value structure that allows for ASN1 using DER.
mbedtls_ssl_cache_entry * chain
This structure is used for storing cache entries.
mbedtls_ssl_cache_entry * next
mbedtls_ssl_session session
Container for an X.509 certificate.