(linenum→info "unix/slp.c:2238")

openssl/0.9.8g/doc/ssl/d2i_SSL_SESSION.pod

    1: =pod
    2: 
    3: =head1 NAME
    4: 
    5: d2i_SSL_SESSION, i2d_SSL_SESSION - convert SSL_SESSION object from/to ASN1 representation
    6: 
    7: =head1 SYNOPSIS
    8: 
    9:  #include <openssl/ssl.h>
   10: 
   11:  SSL_SESSION *d2i_SSL_SESSION(SSL_SESSION **a, const unsigned char **pp, long length);
   12:  int i2d_SSL_SESSION(SSL_SESSION *in, unsigned char **pp);
   13: 
   14: =head1 DESCRIPTION
   15: 
   16: d2i_SSL_SESSION() transforms the external ASN1 representation of an SSL/TLS
   17: session, stored as binary data at location B<pp> with length B<length>, into
   18: an SSL_SESSION object.
   19: 
   20: i2d_SSL_SESSION() transforms the SSL_SESSION object B<in> into the ASN1
   21: representation and stores it into the memory location pointed to by B<pp>.
   22: The length of the resulting ASN1 representation is returned. If B<pp> is
   23: the NULL pointer, only the length is calculated and returned.
   24: 
   25: =head1 NOTES
   26: 
   27: The SSL_SESSION object is built from several malloc()ed parts, it can
   28: therefore not be moved, copied or stored directly. In order to store
   29: session data on disk or into a database, it must be transformed into
   30: a binary ASN1 representation.
   31: 
   32: When using d2i_SSL_SESSION(), the SSL_SESSION object is automatically
   33: allocated. The reference count is 1, so that the session must be
   34: explicitly removed using L<SSL_SESSION_free(3)|SSL_SESSION_free(3)>,
   35: unless the SSL_SESSION object is completely taken over, when being called
   36: inside the get_session_cb() (see
   37: L<SSL_CTX_sess_set_get_cb(3)|SSL_CTX_sess_set_get_cb(3)>).
   38: 
   39: SSL_SESSION objects keep internal link information about the session cache
   40: list, when being inserted into one SSL_CTX object's session cache.
   41: One SSL_SESSION object, regardless of its reference count, must therefore
   42: only be used with one SSL_CTX object (and the SSL objects created
   43: from this SSL_CTX object).
   44: 
   45: When using i2d_SSL_SESSION(), the memory location pointed to by B<pp> must be
   46: large enough to hold the binary representation of the session. There is no
   47: known limit on the size of the created ASN1 representation, so the necessary
   48: amount of space should be obtained by first calling i2d_SSL_SESSION() with
   49: B<pp=NULL>, and obtain the size needed, then allocate the memory and
   50: call i2d_SSL_SESSION() again.
   51: 
   52: =head1 RETURN VALUES
   53: 
   54: d2i_SSL_SESSION() returns a pointer to the newly allocated SSL_SESSION
   55: object. In case of failure the NULL-pointer is returned and the error message
   56: can be retrieved from the error stack.
   57: 
   58: i2d_SSL_SESSION() returns the size of the ASN1 representation in bytes.
   59: When the session is not valid, B<0> is returned and no operation is performed.
   60: 
   61: =head1 SEE ALSO
   62: 
   63: L<ssl(3)|ssl(3)>, L<SSL_SESSION_free(3)|SSL_SESSION_free(3)>,
   64: L<SSL_CTX_sess_set_get_cb(3)|SSL_CTX_sess_set_get_cb(3)>
   65: 
   66: =cut
Syntax (Markdown)