Go to main content

man pages section 3: Extended Library Functions, Volume 1

Exit Print View

Updated: Wednesday, July 27, 2022
 
 

ssl_session_cache_api (3erl)

Name

ssl_session_cache_api - TLS session cache API

Synopsis

Please see following description for synopsis

Description

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)