---
name: "x509"
section: "3ssl"
platform: "linux"
package: "libssl-doc"
version: "1.0.1t-1+deb8u8"
release: "Debian 8 (Jessie)"
platforms: ["linux"]
url: "https://new.carta.tech/x509/3ssl"
---

# x509(3ssl)

X.509 certificate handling

## NAME

x509 - X.509 certificate handling

## SYNOPSIS

```
 #include <openssl/x509.h>
```

## 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.

**X509\_***...*, **d2i\_X509\_***...* and **i2d\_X509\_***...* handle X.509 certificates, with some exceptions, shown below.

**X509\_CRL\_***...*, **d2i\_X509\_CRL\_***...* and **i2d\_X509\_CRL\_***...* handle X.509 CRLs.

**X509\_REQ\_***...*, **d2i\_X509\_REQ\_***...* and **i2d\_X509\_REQ\_***...* handle PKCS#10 certificate requests.

**X509\_NAME\_***...* handle certificate names.

**X509\_ATTRIBUTE\_***...* handle certificate attributes.

**X509\_EXTENSION\_***...* handle certificate extensions.

## SEE ALSO

*X509\_NAME\_ENTRY\_get\_object*(3), *X509\_NAME\_add\_entry\_by\_txt*(3), *X509\_NAME\_add\_entry\_by\_NID*(3), *X509\_NAME\_print\_ex*(3), *X509\_NAME\_new*(3), *d2i\_X509*(3), *d2i\_X509\_ALGOR*(3), *d2i\_X509\_CRL*(3), *d2i\_X509\_NAME*(3), *d2i\_X509\_REQ*(3), *d2i\_X509\_SIG*(3), [*crypto*(3)](/crypto/3.md), *x509v3*(3)
