ssl_session_cache_api - TLS session cache API
Please see following description for synopsis
ssl_session_cache_api(3) Erlang Module Definition ssl_session_cache_api(3)
NAME
ssl_session_cache_api - TLS session cache API
DESCRIPTION
Defines the API for the TLS session cache (pre TLS-1.3) so that the
data storage scheme can be replaced by defining a new callback module
implementing this API.
DATA TYPES
session_cache_ref() = any()
session_cache_key() = {partial_key(), ssl:session_id()}
A key to an entry in the session cache.
partial_key()
The opaque part of the key. Does not need to be handled by the
callback.
session()
The session data that is stored for each session.
EXPORTS
Module:delete(Cache, Key) -> _
Types:
Cache = session_cache_ref()
Key = session_cache_key()
Deletes a cache entry. Is only called from the cache handling
process.
Module:foldl(Fun, Acc0, Cache) -> Acc
Types:
Fun = fun()
Acc0 = Acc = term()
Cache = session_cache_ref()
Calls Fun(Elem, AccIn) on successive elements of the cache,
starting with AccIn == Acc0. Fun/2 must return a new accumula-
tor, which is passed to the next call. The function returns the
final value of the accumulator. Acc0 is returned if the cache is
empty.
Note:
Since OTP-23.3 this functions is only used on the client side
and does not need to implemented for a server cache.
Module:init(Args) -> Cache
Types:
Cache = session_cache_ref()
Args = proplists:proplist()
Includes property {role, client | server}. Currently this is the
only predefined property, there can also be user-defined proper-
ties. See also application environment variable ses-
sion_cb_init_args.
Performs possible initializations of the cache and returns a
reference to it that is used as parameter to the other API func-
tions. Is called by the cache handling processes init function,
hence putting the same requirements on it as a normal process
init function. This function is called twice when starting the
SSL application, once with the role client and once with the
role server, as the SSL application must be prepared to take on
both roles.
Module:lookup(Cache, Key) -> Entry
Types:
Cache = session_cache_ref()
Key = session_cache_key()
Session = session() | undefined
Looks up a cache entry. Is to be callable from any process.
Module:select_session(Cache, PartialKey) -> [Session]
Types:
Cache = session_cache_ref()
PartialKey = partial_key()
Session = session()
Selects sessions that can be reused, that is sessions that
include PartialKey in its key. Is to be callable from any
process.
Note:
Since OTP-23.3 This functions is only used on the client side
and does not need to implemented for a server cache.
Module:size(Cache) -> integer()
Types:
Cache = session_cache_ref()
Returns the number of sessions in the cache. If size exceeds the
maximum number of sessions, the current cache entries will be
invalidated regardless of their remaining lifetime. Is to be
callable from any process.
Module:terminate(Cache) -> _
Types:
Cache = session_cache_ref()
As returned by init/0
Takes care of possible cleanup that is needed when the cache
handling process terminates.
Module:update(Cache, Key, Session) -> _
Types:
Cache = session_cache_ref()
Key = session_cache_key()
Session = session()
Caches a new session or updates an already cached one. Is only
called from the cache handling process.
Ericsson AB ssl 10.6 ssl_session_cache_api(3)