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

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

<h1>x509(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="#SEE_ALSO">SEE ALSO</A>
</UL>
<!-- INDEX END -->

<HR>
<P>
<HR>
<H1><A NAME="NAME">NAME</A></H1>
<P>
x509 - X.509 certificate handling

</P>
<P>
<HR>
<H1><A NAME="SYNOPSIS">SYNOPSIS</A></H1>
<PRE> #include &lt;openssl/x509.h&gt;
</PRE>
<P>
<HR>
<H1><A NAME="DESCRIPTION">DESCRIPTION</A></H1>
<P>
A X.509 certificate is a structured grouping of information about an
individual, a device, or anything one can imagine. A X.509 CRL (certificate
revocation list) is a tool to help determine if a certificate is still
valid. The exact definition of those can be found in the X.509 document
from ITU-T, or in RFC3280 from PKIX. In OpenSSL, the type X509 is used to
express such a certificate, and the type X509_CRL is used to express a CRL.

</P>
<P>
A related structure is a certificate request, defined in PKCS#10 from RSA
Security, Inc, also reflected in RFC2896. In OpenSSL, the type X509_REQ is
used to express such a certificate request.

</P>
<P>
To handle some complex parts of a certificate, there are the types
X509_NAME (to express a certificate name), X509_ATTRIBUTE (to express a
certificate attributes), X509_EXTENSION (to express a certificate
extension) and a few more.

</P>
<P>
Finally, there's the supertype X509_INFO, which can contain a CRL, a
certificate and a corresponding private key.

</P>
<P>
<STRONG>X509_</STRONG><EM>...</EM>, <STRONG>d2i_X509_</STRONG><EM>...</EM> and <STRONG>i2d_X509_</STRONG><EM>...</EM> handle X.509 certificates, with some exceptions, shown below.

</P>
<P>
<STRONG>X509_CRL_</STRONG><EM>...</EM>, <STRONG>d2i_X509_CRL_</STRONG><EM>...</EM> and <STRONG>i2d_X509_CRL_</STRONG><EM>...</EM>
handle X.509 CRLs.

</P>
<P>
<STRONG>X509_REQ_</STRONG><EM>...</EM>, <STRONG>d2i_X509_REQ_</STRONG><EM>...</EM> and <STRONG>i2d_X509_REQ_</STRONG><EM>...</EM>
handle PKCS#10 certificate requests.

</P>
<P>
<STRONG>X509_NAME_</STRONG><EM>...</EM> handle certificate names.

</P>
<P>
<STRONG>X509_ATTRIBUTE_</STRONG><EM>...</EM> handle certificate attributes.

</P>
<P>
<STRONG>X509_EXTENSION_</STRONG><EM>...</EM> handle certificate extensions.

</P>
<P>
<HR>
<H1><A NAME="SEE_ALSO">SEE ALSO</A></H1>
<P>
<A HREF="../crypto/X509_NAME_ENTRY_get_object.html#">X509_NAME_ENTRY_get_object(3)</A>,
<A HREF="../crypto/X509_NAME_add_entry_by_txt.html#">X509_NAME_add_entry_by_txt(3)</A>,
<A HREF="../crypto/X509_NAME_add_entry_by_txt.html#">X509_NAME_add_entry_by_NID(3)</A>,
<A HREF="../crypto/X509_NAME_print_ex.html#">X509_NAME_print_ex(3)</A>,
<EM>X509_NAME_new(3)</EM>,
<A HREF="../crypto/d2i_X509.html#">d2i_X509(3)</A>,
<A HREF="../crypto/d2i_X509_ALGOR.html#">d2i_X509_ALGOR(3)</A>,
<A HREF="../crypto/d2i_X509_CRL.html#">d2i_X509_CRL(3)</A>,
<A HREF="../crypto/d2i_X509_NAME.html#">d2i_X509_NAME(3)</A>,
<A HREF="../crypto/d2i_X509_REQ.html#">d2i_X509_REQ(3)</A>,
<A HREF="../crypto/d2i_X509_SIG.html#">d2i_X509_SIG(3)</A>,
<A HREF="../crypto/crypto.html#">crypto(3)</A>,
<EM>x509v3(3)</EM>



</P>
:}


