SSL_CTX_get_session_cache_mode

TriggerTek Logo
abcdefghijklmnopqrstuvwxyz_
SSL_CTX_set_session_cache_mode(3)  OpenSSL  SSL_CTX_set_session_cache_mode(3)



NAME
       SSL_CTX_set_session_cache_mode, SSL_CTX_get_session_cache_mode -
       enable/disable session caching

SYNOPSIS
	#include <openssl/ssl.h>

	long SSL_CTX_set_session_cache_mode(SSL_CTX ctx, long mode);
	long SSL_CTX_get_session_cache_mode(SSL_CTX ctx);

DESCRIPTION
       SSL_CTX_set_session_cache_mode() enables/disables session caching by
       setting the operational mode for ctx to <mode>.

       SSL_CTX_get_session_cache_mode() returns the currently used cache
       mode.

NOTES
       The OpenSSL library can store/retrieve SSL/TLS sessions for later
       reuse.  The sessions can be held in memory for each ctx, if more than
       one SSL_CTX object is being maintained, the sessions are unique for
       each SSL_CTX object.

       In order to reuse a session, a client must send the session’s id to
       the server. It can only send exactly one id.  The server then either
       agrees to reuse the session or it starts a full handshake (to create a
       new session).

       A server will lookup up the session in its internal session storage.
       If the session is not found in internal storage or lookups for the
       internal storage have been deactivated (SSL_SESS_CACHE_NO_INTER-
       NAL_LOOKUP), the server will try the external storage if available.

       Since a client may try to reuse a session intended for use in a dif-
       ferent context, the session id context must be set by the server (see
       SSL_CTX_set_session_id_context(3)).

       The following session cache modes and modifiers are available:

       SSL_SESS_CACHE_OFF
	   No session caching for client or server takes place.

       SSL_SESS_CACHE_CLIENT
	   Client sessions are added to the session cache. As there is no
	   reliable way for the OpenSSL library to know whether a session
	   should be reused or which session to choose (due to the abstract
	   BIO layer the SSL engine does not have details about the connec-
	   tion), the application must select the session to be reused by
	   using the SSL_set_session(3) function. This option is not acti-
	   vated by default.

       SSL_SESS_CACHE_SERVER
	   Server sessions are added to the session cache. When a client pro-
	   poses a session to be reused, the server looks for the correspond-
	   ing session in (first) the internal session cache (unless
	   SSL_SESS_CACHE_NO_INTERNAL_LOOKUP is set), then (second) in the
	   external cache if available. If the session is found, the server
	   will try to reuse the session.  This is the default.

       SSL_SESS_CACHE_BOTH
	   Enable both SSL_SESS_CACHE_CLIENT and SSL_SESS_CACHE_SERVER at the
	   same time.

       SSL_SESS_CACHE_NO_AUTO_CLEAR
	   Normally the session cache is checked for expired sessions every
	   255 connections using the SSL_CTX_flush_sessions(3) function.
	   Since this may lead to a delay which cannot be controlled, the
	   automatic flushing may be disabled and SSL_CTX_flush_sessions(3)
	   can be called explicitly by the application.

       SSL_SESS_CACHE_NO_INTERNAL_LOOKUP
	   By setting this flag, session-resume operations in an SSL/TLS
	   server will not automatically look up sessions in the internal
	   cache, even if sessions are automatically stored there. If exter-
	   nal session caching callbacks are in use, this flag guarantees
	   that all lookups are directed to the external cache.	 As automatic
	   lookup only applies for SSL/TLS servers, the flag has no effect on
	   clients.

       SSL_SESS_CACHE_NO_INTERNAL_STORE
	   Depending on the presence of SSL_SESS_CACHE_CLIENT and/or
	   SSL_SESS_CACHE_SERVER, sessions negotiated in an SSL/TLS handshake
	   may be cached for possible reuse.  Normally a new session is added
	   to the internal cache as well as any external session caching
	   (callback) that is configured for the SSL_CTX. This flag will pre-
	   vent sessions being stored in the internal cache (though the
	   application can add them manually using SSL_CTX_add_session(3)).
	   Note: in any SSL/TLS servers where external caching is configured,
	   any successful session lookups in the external cache (ie. for ses-
	   sion-resume requests) would normally be copied into the local
	   cache before processing continues - this flag prevents these addi-
	   tions to the internal cache as well.

       SSL_SESS_CACHE_NO_INTERNAL
	   Enable both SSL_SESS_CACHE_NO_INTERNAL_LOOKUP and
	   SSL_SESS_CACHE_NO_INTERNAL_STORE at the same time.

       The default mode is SSL_SESS_CACHE_SERVER.

RETURN VALUES
       SSL_CTX_set_session_cache_mode() returns the previously set cache
       mode.

       SSL_CTX_get_session_cache_mode() returns the currently set cache mode.

SEE ALSO
       ssl(3), SSL_set_session(3), SSL_session_reused(3), SSL_CTX_add_ses-
       sion(3), SSL_CTX_sess_number(3), SSL_CTX_sess_set_cache_size(3),
       SSL_CTX_sess_set_get_cb(3), SSL_CTX_set_session_id_context(3),
       SSL_CTX_set_timeout(3), SSL_CTX_flush_sessions(3)

HISTORY
       SSL_SESS_CACHE_NO_INTERNAL_STORE and SSL_SESS_CACHE_NO_INTERNAL were
       introduced in OpenSSL 0.9.6h.



0.9.7a				  2002-10-29SSL_CTX_set_session_cache_mode(3)