=pod

=head1 NAME

x509 - X.509 certificate handling

=head1 SYNOPSIS

 #include <openssl/x509.h>

=head1 DESCRIPTION

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.

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.

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.

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

B<X509_>I<...>, B<d2i_X509_>I<...> and B<i2d_X509_>I<...> handle X.509
certificates, with some exceptions, shown below.

B<X509_CRL_>I<...>, B<d2i_X509_CRL_>I<...> and B<i2d_X509_CRL_>I<...>
handle X.509 CRLs.

B<X509_REQ_>I<...>, B<d2i_X509_REQ_>I<...> and B<i2d_X509_REQ_>I<...>
handle PKCS#10 certificate requests.

B<X509_NAME_>I<...> handle certificate names.

B<X509_ATTRIBUTE_>I<...> handle certificate attributes.

B<X509_EXTENSION_>I<...> handle certificate extensions.

=head1 SEE ALSO

L<X509_NAME_ENTRY_get_object(3)|X509_NAME_ENTRY_get_object(3)>,
L<X509_NAME_add_entry_by_txt(3)|X509_NAME_add_entry_by_txt(3)>,
L<X509_NAME_add_entry_by_NID(3)|X509_NAME_add_entry_by_NID(3)>,
L<X509_NAME_print_ex(3)|X509_NAME_print_ex(3)>,
L<X509_NAME_new(3)|X509_NAME_new(3)>,
L<d2i_X509(3)|d2i_X509(3)>,
L<d2i_X509_ALGOR(3)|d2i_X509_ALGOR(3)>,
L<d2i_X509_CRL(3)|d2i_X509_CRL(3)>,
L<d2i_X509_NAME(3)|d2i_X509_NAME(3)>,
L<d2i_X509_REQ(3)|d2i_X509_REQ(3)>,
L<d2i_X509_SIG(3)|d2i_X509_SIG(3)>,
L<crypto(3)|crypto(3)>,
L<x509v3(3)|x509v3(3)>

=cut
