mbed TLS v2.16.1
ssl_cache.h
Go to the documentation of this file.
1 
6 /*
7  * Copyright (C) 2006-2015, ARM Limited, All Rights Reserved
8  * SPDX-License-Identifier: GPL-2.0
9  *
10  * This program is free software; you can redistribute it and/or modify
11  * it under the terms of the GNU General Public License as published by
12  * the Free Software Foundation; either version 2 of the License, or
13  * (at your option) any later version.
14  *
15  * This program is distributed in the hope that it will be useful,
16  * but WITHOUT ANY WARRANTY; without even the implied warranty of
17  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
18  * GNU General Public License for more details.
19  *
20  * You should have received a copy of the GNU General Public License along
21  * with this program; if not, write to the Free Software Foundation, Inc.,
22  * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
23  *
24  * This file is part of mbed TLS (https://tls.mbed.org)
25  */
26 #ifndef MBEDTLS_SSL_CACHE_H
27 #define MBEDTLS_SSL_CACHE_H
28 
29 #if !defined(MBEDTLS_CONFIG_FILE)
30 #include "config.h"
31 #else
32 #include MBEDTLS_CONFIG_FILE
33 #endif
34 
35 #include "ssl.h"
36 
37 #if defined(MBEDTLS_THREADING_C)
38 #include "threading.h"
39 #endif
40 
49 #if !defined(MBEDTLS_SSL_CACHE_DEFAULT_TIMEOUT)
50 #define MBEDTLS_SSL_CACHE_DEFAULT_TIMEOUT 86400
51 #endif
52 
53 #if !defined(MBEDTLS_SSL_CACHE_DEFAULT_MAX_ENTRIES)
54 #define MBEDTLS_SSL_CACHE_DEFAULT_MAX_ENTRIES 50
55 #endif
56 
57 /* \} name SECTION: Module settings */
58 
59 #ifdef __cplusplus
60 extern "C" {
61 #endif
62 
65 
70 {
71 #if defined(MBEDTLS_HAVE_TIME)
73 #endif
75 #if defined(MBEDTLS_X509_CRT_PARSE_C)
77 #endif
79 };
80 
85 {
87  int timeout;
89 #if defined(MBEDTLS_THREADING_C)
90  mbedtls_threading_mutex_t mutex;
91 #endif
92 };
93 
100 
108 int mbedtls_ssl_cache_get( void *data, mbedtls_ssl_session *session );
109 
117 int mbedtls_ssl_cache_set( void *data, const mbedtls_ssl_session *session );
118 
119 #if defined(MBEDTLS_HAVE_TIME)
120 
129 void mbedtls_ssl_cache_set_timeout( mbedtls_ssl_cache_context *cache, int timeout );
130 #endif /* MBEDTLS_HAVE_TIME */
131 
140 
147 
148 #ifdef __cplusplus
149 }
150 #endif
151 
152 #endif /* ssl_cache.h */
mbedtls_x509_buf peer_cert
Definition: ssl_cache.h:76
Configuration options (set of defines)
void mbedtls_ssl_cache_set_timeout(mbedtls_ssl_cache_context *cache, int timeout)
Set the cache timeout (Default: MBEDTLS_SSL_CACHE_DEFAULT_TIMEOUT (1 day))
time_t mbedtls_time_t
Definition: platform_time.h:55
mbedtls_ssl_cache_entry * chain
Definition: ssl_cache.h:86
Threading abstraction layer.
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)) ...
void mbedtls_ssl_cache_init(mbedtls_ssl_cache_context *cache)
Initialize an SSL cache context.
int mbedtls_ssl_cache_get(void *data, mbedtls_ssl_session *session)
Cache get callback implementation (Thread-safe if MBEDTLS_THREADING_C is enabled) ...
mbedtls_time_t timestamp
Definition: ssl_cache.h:72
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_free(mbedtls_ssl_cache_context *cache)
Free referenced items in a cache context and clear memory.
This structure is used for storing cache entries.
Definition: ssl_cache.h:69
Cache context.
Definition: ssl_cache.h:84
SSL/TLS functions.
mbedtls_ssl_cache_entry * next
Definition: ssl_cache.h:78
mbedtls_ssl_session session
Definition: ssl_cache.h:74