1*2175Sjp161948=pod 2*2175Sjp161948 3*2175Sjp161948=head1 NAME 4*2175Sjp161948 5*2175Sjp161948x509 - X.509 certificate handling 6*2175Sjp161948 7*2175Sjp161948=head1 SYNOPSIS 8*2175Sjp161948 9*2175Sjp161948 #include <openssl/x509.h> 10*2175Sjp161948 11*2175Sjp161948=head1 DESCRIPTION 12*2175Sjp161948 13*2175Sjp161948A X.509 certificate is a structured grouping of information about 14*2175Sjp161948an individual, a device, or anything one can imagine. A X.509 CRL 15*2175Sjp161948(certificate revocation list) is a tool to help determine if a 16*2175Sjp161948certificate is still valid. The exact definition of those can be 17*2175Sjp161948found in the X.509 document from ITU-T, or in RFC3280 from PKIX. 18*2175Sjp161948In OpenSSL, the type X509 is used to express such a certificate, and 19*2175Sjp161948the type X509_CRL is used to express a CRL. 20*2175Sjp161948 21*2175Sjp161948A related structure is a certificate request, defined in PKCS#10 from 22*2175Sjp161948RSA Security, Inc, also reflected in RFC2896. In OpenSSL, the type 23*2175Sjp161948X509_REQ is used to express such a certificate request. 24*2175Sjp161948 25*2175Sjp161948To handle some complex parts of a certificate, there are the types 26*2175Sjp161948X509_NAME (to express a certificate name), X509_ATTRIBUTE (to express 27*2175Sjp161948a certificate attributes), X509_EXTENSION (to express a certificate 28*2175Sjp161948extension) and a few more. 29*2175Sjp161948 30*2175Sjp161948Finally, there's the supertype X509_INFO, which can contain a CRL, a 31*2175Sjp161948certificate and a corresponding private key. 32*2175Sjp161948 33*2175Sjp161948B<X509_>I<...>, B<d2i_X509_>I<...> and B<i2d_X509_>I<...> handle X.509 34*2175Sjp161948certificates, with some exceptions, shown below. 35*2175Sjp161948 36*2175Sjp161948B<X509_CRL_>I<...>, B<d2i_X509_CRL_>I<...> and B<i2d_X509_CRL_>I<...> 37*2175Sjp161948handle X.509 CRLs. 38*2175Sjp161948 39*2175Sjp161948B<X509_REQ_>I<...>, B<d2i_X509_REQ_>I<...> and B<i2d_X509_REQ_>I<...> 40*2175Sjp161948handle PKCS#10 certificate requests. 41*2175Sjp161948 42*2175Sjp161948B<X509_NAME_>I<...> handle certificate names. 43*2175Sjp161948 44*2175Sjp161948B<X509_ATTRIBUTE_>I<...> handle certificate attributes. 45*2175Sjp161948 46*2175Sjp161948B<X509_EXTENSION_>I<...> handle certificate extensions. 47*2175Sjp161948 48*2175Sjp161948=head1 SEE ALSO 49*2175Sjp161948 50*2175Sjp161948L<X509_NAME_ENTRY_get_object(3)|X509_NAME_ENTRY_get_object(3)>, 51*2175Sjp161948L<X509_NAME_add_entry_by_txt(3)|X509_NAME_add_entry_by_txt(3)>, 52*2175Sjp161948L<X509_NAME_add_entry_by_NID(3)|X509_NAME_add_entry_by_NID(3)>, 53*2175Sjp161948L<X509_NAME_print_ex(3)|X509_NAME_print_ex(3)>, 54*2175Sjp161948L<X509_NAME_new(3)|X509_NAME_new(3)>, 55*2175Sjp161948L<d2i_X509(3)|d2i_X509(3)>, 56*2175Sjp161948L<d2i_X509_ALGOR(3)|d2i_X509_ALGOR(3)>, 57*2175Sjp161948L<d2i_X509_CRL(3)|d2i_X509_CRL(3)>, 58*2175Sjp161948L<d2i_X509_NAME(3)|d2i_X509_NAME(3)>, 59*2175Sjp161948L<d2i_X509_REQ(3)|d2i_X509_REQ(3)>, 60*2175Sjp161948L<d2i_X509_SIG(3)|d2i_X509_SIG(3)>, 61*2175Sjp161948L<crypto(3)|crypto(3)>, 62*2175Sjp161948L<x509v3(3)|x509v3(3)> 63*2175Sjp161948 64*2175Sjp161948=cut 65