SSL session cache implementation. More...
#include "ssl.h"
Go to the source code of this file.
Data Structures | |
struct | _ssl_cache_entry |
This structure is used for storing cache entries. More... | |
struct | _ssl_cache_context |
Cache context. More... | |
Defines | |
#define | SSL_CACHE_DEFAULT_TIMEOUT 86400 |
#define | SSL_CACHE_DEFAULT_MAX_ENTRIES 50 |
Typedefs | |
typedef struct _ssl_cache_context | ssl_cache_context |
typedef struct _ssl_cache_entry | ssl_cache_entry |
Functions | |
void | ssl_cache_init (ssl_cache_context *cache) |
Initialize an SSL cache context. | |
int | ssl_cache_get (void *data, ssl_session *session) |
Cache get callback implementation (Thread-safe if POLARSSL_THREADING_C is enabled). | |
int | ssl_cache_set (void *data, const ssl_session *session) |
Cache set callback implementation (Thread-safe if POLARSSL_THREADING_C is enabled). | |
void | ssl_cache_set_timeout (ssl_cache_context *cache, int timeout) |
Set the cache timeout (Default: SSL_CACHE_DEFAULT_TIMEOUT (1 day)). | |
void | ssl_cache_set_max_entries (ssl_cache_context *cache, int max) |
Set the cache timeout (Default: SSL_CACHE_DEFAULT_MAX_ENTRIES (50)). | |
void | ssl_cache_free (ssl_cache_context *cache) |
Free referenced items in a cache context and clear memory. |
SSL session cache implementation.
Copyright (C) 2006-2013, Brainspark B.V.
This file is part of PolarSSL (http://www.polarssl.org) Lead Maintainer: Paul Bakker <polarssl_maintainer at polarssl.org>
All rights reserved.
This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
Definition in file ssl_cache.h.
#define SSL_CACHE_DEFAULT_MAX_ENTRIES 50 |
#define SSL_CACHE_DEFAULT_TIMEOUT 86400 |
typedef struct _ssl_cache_context ssl_cache_context |
Definition at line 45 of file ssl_cache.h.
typedef struct _ssl_cache_entry ssl_cache_entry |
Definition at line 46 of file ssl_cache.h.
void ssl_cache_free | ( | ssl_cache_context * | cache | ) |
Free referenced items in a cache context and clear memory.
cache | SSL cache context |
Definition at line 301 of file ssl_cache.c.
References _ssl_cache_context::chain, _ssl_cache_entry::next, _asn1_buf::p, _ssl_cache_entry::peer_cert, polarssl_free, polarssl_mutex_free, _ssl_cache_entry::session, and ssl_session_free().
int ssl_cache_get | ( | void * | data, | |
ssl_session * | session | |||
) |
Cache get callback implementation (Thread-safe if POLARSSL_THREADING_C is enabled).
data | SSL cache context | |
session | session to retrieve entry for |
Definition at line 57 of file ssl_cache.c.
References _ssl_cache_context::chain, _ssl_session::ciphersuite, _ssl_session::compression, _ssl_session::id, _asn1_buf::len, _ssl_session::length, _ssl_session::master, _ssl_cache_entry::next, _asn1_buf::p, _ssl_session::peer_cert, _ssl_cache_entry::peer_cert, polarssl_free, polarssl_malloc, polarssl_mutex_lock, polarssl_mutex_unlock, _ssl_cache_entry::session, _ssl_cache_context::timeout, _ssl_cache_entry::timestamp, _ssl_session::verify_result, x509_crt_init(), and x509_crt_parse().
void ssl_cache_init | ( | ssl_cache_context * | cache | ) |
Initialize an SSL cache context.
cache | SSL cache context |
Definition at line 45 of file ssl_cache.c.
References _ssl_cache_context::max_entries, polarssl_mutex_init, SSL_CACHE_DEFAULT_MAX_ENTRIES, SSL_CACHE_DEFAULT_TIMEOUT, and _ssl_cache_context::timeout.
int ssl_cache_set | ( | void * | data, | |
const ssl_session * | session | |||
) |
Cache set callback implementation (Thread-safe if POLARSSL_THREADING_C is enabled).
data | SSL cache context | |
session | session to store entry for |
Definition at line 136 of file ssl_cache.c.
References _ssl_cache_context::chain, _ssl_session::id, _asn1_buf::len, _ssl_session::length, _ssl_cache_context::max_entries, _ssl_cache_entry::next, _asn1_buf::p, _ssl_session::peer_cert, _ssl_cache_entry::peer_cert, polarssl_free, polarssl_malloc, polarssl_mutex_lock, polarssl_mutex_unlock, _x509_crt::raw, _ssl_cache_entry::session, _ssl_cache_context::timeout, and _ssl_cache_entry::timestamp.
void ssl_cache_set_max_entries | ( | ssl_cache_context * | cache, | |
int | max | |||
) |
Set the cache timeout (Default: SSL_CACHE_DEFAULT_MAX_ENTRIES (50)).
cache | SSL cache context | |
max | cache entry maximum |
Definition at line 294 of file ssl_cache.c.
References _ssl_cache_context::max_entries.
void ssl_cache_set_timeout | ( | ssl_cache_context * | cache, | |
int | timeout | |||
) |
Set the cache timeout (Default: SSL_CACHE_DEFAULT_TIMEOUT (1 day)).
A timeout of 0 indicates no timeout.
cache | SSL cache context | |
timeout | cache entry timeout |
Definition at line 286 of file ssl_cache.c.
References _ssl_cache_context::timeout.