
#use wml::openssl-macros area=docs page=SSL_SESSION_get_ex_new_index

<title>Documents, SSL_SESSION_get_ex_new_index(3)</title>

<h1>SSL_SESSION_get_ex_new_index(3)</h1>

#use wml::imp::generic

{:
## What's this? [[s|(<STRONG>[^<].+?)</A>(</STRONG><DD>)|$1$2|sg]]
[[s|<P>\s+<P>|<P>|sg]]
[[s|<P>\s+</|</|sg]]
[[s|<DD>\s*<DT>|<DD>&nbsp;<DT>|sg]]
[[s|<DD>\s*</DL>|<DD>&nbsp;</DL>|sg]]
[[s|\[|&#91;|sg]]
[[s|\]|&#93;|sg]]

<!-- INDEX BEGIN -->

<UL>

	<LI><A HREF="#NAME">NAME</A>
	<LI><A HREF="#SYNOPSIS">SYNOPSIS</A>
	<LI><A HREF="#DESCRIPTION">DESCRIPTION</A>
	<LI><A HREF="#WARNINGS">WARNINGS</A>
	<LI><A HREF="#SEE_ALSO">SEE ALSO</A>
</UL>
<!-- INDEX END -->

<HR>
<P>
<HR>
<H1><A NAME="NAME">NAME</A></H1>
<P>
SSL_SESSION_get_ex_new_index, SSL_SESSION_set_ex_data,
SSL_SESSION_get_ex_data - internal application specific data functions

</P>
<P>
<HR>
<H1><A NAME="SYNOPSIS">SYNOPSIS</A></H1>
<PRE> #include &lt;openssl/ssl.h&gt;
</PRE>
<PRE> int SSL_SESSION_get_ex_new_index(long argl, void *argp,
                CRYPTO_EX_new *new_func,
                CRYPTO_EX_dup *dup_func,
                CRYPTO_EX_free *free_func);
</PRE>
<PRE> int SSL_SESSION_set_ex_data(SSL_SESSION *session, int idx, void *arg);
</PRE>
<PRE> void *SSL_SESSION_get_ex_data(const SSL_SESSION *session, int idx);
</PRE>
<PRE> typedef int new_func(void *parent, void *ptr, CRYPTO_EX_DATA *ad,
                int idx, long argl, void *argp);
 typedef void free_func(void *parent, void *ptr, CRYPTO_EX_DATA *ad,
                int idx, long argl, void *argp);
 typedef int dup_func(CRYPTO_EX_DATA *to, CRYPTO_EX_DATA *from, void *from_d,
                int idx, long argl, void *argp);
</PRE>
<P>
<HR>
<H1><A NAME="DESCRIPTION">DESCRIPTION</A></H1>
<P>
Several OpenSSL structures can have application specific data attached to
them. These functions are used internally by OpenSSL to manipulate
application specific data attached to a specific structure.

</P>
<P>
<CODE>SSL_SESSION_get_ex_new_index()</CODE> is used to register a new index
for application specific data.

</P>
<P>
<CODE>SSL_SESSION_set_ex_data()</CODE> is used to store application data at <STRONG>arg</STRONG> for <STRONG>idx</STRONG>
into the <STRONG>session</STRONG> object.

</P>
<P>
<CODE>SSL_SESSION_get_ex_data()</CODE> is used to retrieve the information
for <STRONG>idx</STRONG> from
<STRONG>session</STRONG>.

</P>
<P>
A detailed description for the <STRONG>*_get_ex_new_index()</STRONG> functionality can be found in <A HREF="../crypto/RSA_get_ex_new_index.html#">RSA_get_ex_new_index(3)</A>. The <STRONG>*_get_ex_data()</STRONG> and <STRONG>*_set_ex_data()</STRONG> functionality is described in
<A HREF="../crypto/CRYPTO_set_ex_data.html#">CRYPTO_set_ex_data(3)</A>.

</P>
<P>
<HR>
<H1><A NAME="WARNINGS">WARNINGS</A></H1>
<P>
The application data is only maintained for sessions held in memory. The
application data is not included when dumping the session with
<CODE>i2d_SSL_SESSION()</CODE> (and all functions indirectly calling the
dump functions like <CODE>PEM_write_SSL_SESSION()</CODE> and
<CODE>PEM_write_bio_SSL_SESSION())</CODE> and can therefore not be
restored.

</P>
<P>
<HR>
<H1><A NAME="SEE_ALSO">SEE ALSO</A></H1>
<P>
<A HREF="../ssl/ssl.html#">ssl(3)</A>,
<A HREF="../crypto/RSA_get_ex_new_index.html#">RSA_get_ex_new_index(3)</A>,
<A HREF="../crypto/CRYPTO_set_ex_data.html#">CRYPTO_set_ex_data(3)</A>



</P>
:}

