X.509 module#

The X.509 module provides X.509 support for reading, writing and verification of certificates.

In summary:

  • X.509 certificate (CRT) reading (see mbedtls_x509_crt_parse(), mbedtls_x509_crt_parse_der(), mbedtls_x509_crt_parse_file()).

  • X.509 certificate revocation list (CRL) reading (see mbedtls_x509_crl_parse(), mbedtls_x509_crl_parse_der(), and mbedtls_x509_crl_parse_file()).

  • X.509 certificate signature verification (see mbedtls_x509_crt_verify() and mbedtls_x509_crt_verify_with_profile().

  • X.509 certificate writing and certificate request writing (see mbedtls_x509write_crt_der() and mbedtls_x509write_csr_der()).

This module can be used to build a certificate authority (CA) chain and verify its signature. It is also used to generate Certificate Signing Requests and X.509 certificates just as a CA would do.

Modules#

mbedtls_x509_csr

mbedtls_x509write_csr

mbedtls_x509_crl_entry

mbedtls_x509_crl

mbedtls_x509_time

mbedtls_x509_crt

mbedtls_x509_san_other_name

mbedtls_x509_subject_alternative_name

mbedtls_x509_crt_profile

mbedtls_x509write_cert

mbedtls_x509_crt_verify_chain_item

mbedtls_x509_crt_verify_chain

Structures for parsing X.509 certificates, CRLs and CSRs#

Type-length-value structure that allows for ASN1 using DER.

Container for ASN1 bit strings.

Container for ASN1 named information objects.

Container for a sequence of ASN.1 items.

Structures and functions for parsing and writing X.509 certificates#

int
mbedtls_x509_crt_has_ext_type(const mbedtls_x509_crt *ctx, int ext_type)

Query certificate for given extension type.

#define

Build flag from an algorithm/curve identifier (pk, md, ecp) Since 0 is always XXX_NONE, ignore it.

#define
MBEDTLS_X509_MAX_VERIFY_CHAIN_SIZE ( MBEDTLS_X509_MAX_INTERMEDIATE_CA + 2 )

Max size of verification chain: end-entity + intermediates + trusted root.

Structures and functions for parsing CRLs#

int
mbedtls_x509_crl_parse_der(mbedtls_x509_crl *chain, const unsigned char *buf, size_t buflen)

Parse a DER-encoded CRL and append it to the chained list.

int
mbedtls_x509_crl_parse(mbedtls_x509_crl *chain, const unsigned char *buf, size_t buflen)

Parse one or more CRLs and append them to the chained list.

int
mbedtls_x509_crl_info(char *buf, size_t size, const char *prefix, const mbedtls_x509_crl *crl)

Returns an informational string about the CRL.

void
mbedtls_x509_crl_init(mbedtls_x509_crl *crl)

Initialize a CRL (chain)

void
mbedtls_x509_crl_free(mbedtls_x509_crl *crl)

Unallocate all CRL data.

X509 Error codes#

#define

Unavailable feature, e.g.

#define

Requested OID is unknown.

#define

The CRT/CRL/CSR format is invalid, e.g.

#define

The CRT/CRL/CSR version element is invalid.

#define

The serial tag or value is invalid.

#define

The algorithm tag or value is invalid.

#define

The name tag or value is invalid.

#define

The date tag or value is invalid.

#define

The signature tag or value invalid.

#define

The extension tag or value is invalid.

#define

CRT/CRL/CSR has an unsupported version number.

#define

Signature algorithm (oid) is unsupported.

#define

Signature algorithms do not match.

#define

Certificate verification failed, e.g.

#define

Format not recognized as DER or PEM.

#define

Input invalid.

#define

Allocation of memory failed.

#define

Read/write of file failed.

#define

Destination buffer is too small.

#define

A fatal error occurred, eg the chain is too long or the vrfy callback failed.

X509 Verify codes#

#define

The certificate validity has expired.

#define

The certificate has been revoked (is on a CRL).

#define

The certificate Common Name (CN) does not match with the expected CN.

#define

The certificate is not correctly signed by the trusted CA.

#define

The CRL is not correctly signed by the trusted CA.

#define

The CRL is expired.

#define

Certificate was missing.

#define

Certificate verification was skipped.

#define

Other reason (can be used by verify callback)

#define

The certificate validity starts in the future.

#define

The CRL is from the future.

#define

Usage does not match the keyUsage extension.

#define

Usage does not match the extendedKeyUsage extension.

#define

Usage does not match the nsCertType extension.

#define

The certificate is signed with an unacceptable hash.

#define

The certificate is signed with an unacceptable PK alg (eg RSA vs ECDSA).

#define

The certificate is signed with an unacceptable key (eg bad curve, RSA too short).

#define

The CRL is signed with an unacceptable hash.

#define

The CRL is signed with an unacceptable PK alg (eg RSA vs ECDSA).

#define

The CRL is signed with an unacceptable key (eg bad curve, RSA too short).

Functions#

int
mbedtls_x509_dn_gets(char *buf, size_t size, const mbedtls_x509_name *dn)

Store the certificate DN in printable form into buf; no more than size characters will be written.

mbedtls_x509_dn_get_next(mbedtls_x509_name *dn)

Return the next relative DN in an X509 name.

int
mbedtls_x509_serial_gets(char *buf, size_t size, const mbedtls_x509_buf *serial)

Store the certificate serial in printable form into buf; no more than size characters will be written.

int
mbedtls_x509_time_is_past(const mbedtls_x509_time *to)

Check a given mbedtls_x509_time against the system time and tell if it's in the past.

int
mbedtls_x509_time_is_future(const mbedtls_x509_time *from)

Check a given mbedtls_x509_time against the system time and tell if it's in the future.

Macros#

#define

Maximum number of intermediate CAs in a verification chain.

Structures for parsing X.509 certificates, CRLs and CSRs Documentation#

mbedtls_x509_buf#

typedef mbedtls_asn1_buf mbedtls_x509_buf

Type-length-value structure that allows for ASN1 using DER.


Definition at line 228 of file util/third_party/mbedtls/include/mbedtls/x509.h

mbedtls_x509_bitstring#

typedef mbedtls_asn1_bitstring mbedtls_x509_bitstring

Container for ASN1 bit strings.


Definition at line 233 of file util/third_party/mbedtls/include/mbedtls/x509.h

mbedtls_x509_name#

typedef mbedtls_asn1_named_data mbedtls_x509_name

Container for ASN1 named information objects.

It allows for Relative Distinguished Names (e.g. cn=localhost,ou=code,etc.).


Definition at line 239 of file util/third_party/mbedtls/include/mbedtls/x509.h

mbedtls_x509_sequence#

typedef mbedtls_asn1_sequence mbedtls_x509_sequence

Container for a sequence of ASN.1 items.


Definition at line 244 of file util/third_party/mbedtls/include/mbedtls/x509.h

Structures and functions for parsing and writing X.509 certificates Documentation#

mbedtls_x509_crt_restart_ctx#

typedef void mbedtls_x509_crt_restart_ctx

Definition at line 359 of file util/third_party/mbedtls/include/mbedtls/x509_crt.h

mbedtls_x509_crt_has_ext_type#

static int mbedtls_x509_crt_has_ext_type (const mbedtls_x509_crt * ctx, int ext_type)

Query certificate for given extension type.

Parameters
[in]ctx

Certificate context to be queried, must not be NULL

N/Aext_type

Extension type being queried for, must be a valid extension type. Must be one of the MBEDTLS_X509_EXT_XXX values

Returns

  • 0 if the given extension type is not present, non-zero otherwise


Definition at line 971 of file util/third_party/mbedtls/include/mbedtls/x509_crt.h

MBEDTLS_X509_ID_FLAG#

#define MBEDTLS_X509_ID_FLAG
Value:
(id)

Build flag from an algorithm/curve identifier (pk, md, ecp) Since 0 is always XXX_NONE, ignore it.


Definition at line 163 of file util/third_party/mbedtls/include/mbedtls/x509_crt.h

MBEDTLS_X509_CRT_VERSION_1#

#define MBEDTLS_X509_CRT_VERSION_1
Value:
0

Definition at line 201 of file util/third_party/mbedtls/include/mbedtls/x509_crt.h

MBEDTLS_X509_CRT_VERSION_2#

#define MBEDTLS_X509_CRT_VERSION_2
Value:
1

Definition at line 202 of file util/third_party/mbedtls/include/mbedtls/x509_crt.h

MBEDTLS_X509_CRT_VERSION_3#

#define MBEDTLS_X509_CRT_VERSION_3
Value:
2

Definition at line 203 of file util/third_party/mbedtls/include/mbedtls/x509_crt.h

MBEDTLS_X509_RFC5280_MAX_SERIAL_LEN#

#define MBEDTLS_X509_RFC5280_MAX_SERIAL_LEN
Value:
32

Definition at line 205 of file util/third_party/mbedtls/include/mbedtls/x509_crt.h

MBEDTLS_X509_RFC5280_UTC_TIME_LEN#

#define MBEDTLS_X509_RFC5280_UTC_TIME_LEN
Value:
15

Definition at line 206 of file util/third_party/mbedtls/include/mbedtls/x509_crt.h

MBEDTLS_X509_MAX_FILE_PATH_LEN#

#define MBEDTLS_X509_MAX_FILE_PATH_LEN
Value:
512

Definition at line 209 of file util/third_party/mbedtls/include/mbedtls/x509_crt.h

MBEDTLS_X509_CRT_ERROR_INFO_LIST#

#define MBEDTLS_X509_CRT_ERROR_INFO_LIST

Definition at line 218 of file util/third_party/mbedtls/include/mbedtls/x509_crt.h

MBEDTLS_X509_MAX_VERIFY_CHAIN_SIZE#

#define MBEDTLS_X509_MAX_VERIFY_CHAIN_SIZE
Value:
( MBEDTLS_X509_MAX_INTERMEDIATE_CA + 2 )

Max size of verification chain: end-entity + intermediates + trusted root.


Definition at line 309 of file util/third_party/mbedtls/include/mbedtls/x509_crt.h

Structures and functions for parsing CRLs Documentation#

mbedtls_x509_crl_parse_der#

int mbedtls_x509_crl_parse_der (mbedtls_x509_crl * chain, const unsigned char * buf, size_t buflen)

Parse a DER-encoded CRL and append it to the chained list.

Parameters
N/Achain

points to the start of the chain

N/Abuf

buffer holding the CRL data in DER format

N/Abuflen

size of the buffer (including the terminating null byte for PEM data)

Returns

  • 0 if successful, or a specific X509 or PEM error code


Definition at line 119 of file util/third_party/mbedtls/include/mbedtls/x509_crl.h

mbedtls_x509_crl_parse#

int mbedtls_x509_crl_parse (mbedtls_x509_crl * chain, const unsigned char * buf, size_t buflen)

Parse one or more CRLs and append them to the chained list.

Parameters
N/Achain

points to the start of the chain

N/Abuf

buffer holding the CRL data in PEM or DER format

N/Abuflen

size of the buffer (including the terminating null byte for PEM data)

Note

  • Multiple CRLs are accepted only if using PEM format

Returns

  • 0 if successful, or a specific X509 or PEM error code


Definition at line 133 of file util/third_party/mbedtls/include/mbedtls/x509_crl.h

mbedtls_x509_crl_info#

int mbedtls_x509_crl_info (char * buf, size_t size, const char * prefix, const mbedtls_x509_crl * crl)

Returns an informational string about the CRL.

Parameters
N/Abuf

Buffer to write to

N/Asize

Maximum size of buffer

N/Aprefix

A line prefix

N/Acrl

The X509 CRL to represent

Returns

  • The length of the string written (not including the terminated nul byte), or a negative error code.


Definition at line 161 of file util/third_party/mbedtls/include/mbedtls/x509_crl.h

mbedtls_x509_crl_init#

void mbedtls_x509_crl_init (mbedtls_x509_crl * crl)

Initialize a CRL (chain)

Parameters
N/Acrl

CRL chain to initialize


Definition at line 170 of file util/third_party/mbedtls/include/mbedtls/x509_crl.h

mbedtls_x509_crl_free#

void mbedtls_x509_crl_free (mbedtls_x509_crl * crl)

Unallocate all CRL data.

Parameters
N/Acrl

CRL chain to free


Definition at line 177 of file util/third_party/mbedtls/include/mbedtls/x509_crl.h

X509 Error codes Documentation#

MBEDTLS_ERR_X509_FEATURE_UNAVAILABLE#

#define MBEDTLS_ERR_X509_FEATURE_UNAVAILABLE
Value:
-0x2080

Unavailable feature, e.g.

RSA hashing/encryption combination.


Definition at line 57 of file util/third_party/mbedtls/include/mbedtls/x509.h

MBEDTLS_ERR_X509_UNKNOWN_OID#

#define MBEDTLS_ERR_X509_UNKNOWN_OID
Value:
-0x2100

Requested OID is unknown.


Definition at line 59 of file util/third_party/mbedtls/include/mbedtls/x509.h

MBEDTLS_ERR_X509_INVALID_FORMAT#

#define MBEDTLS_ERR_X509_INVALID_FORMAT
Value:
-0x2180

The CRT/CRL/CSR format is invalid, e.g.

different type expected.


Definition at line 61 of file util/third_party/mbedtls/include/mbedtls/x509.h

MBEDTLS_ERR_X509_INVALID_VERSION#

#define MBEDTLS_ERR_X509_INVALID_VERSION
Value:
-0x2200

The CRT/CRL/CSR version element is invalid.


Definition at line 63 of file util/third_party/mbedtls/include/mbedtls/x509.h

MBEDTLS_ERR_X509_INVALID_SERIAL#

#define MBEDTLS_ERR_X509_INVALID_SERIAL
Value:
-0x2280

The serial tag or value is invalid.


Definition at line 65 of file util/third_party/mbedtls/include/mbedtls/x509.h

MBEDTLS_ERR_X509_INVALID_ALG#

#define MBEDTLS_ERR_X509_INVALID_ALG
Value:
-0x2300

The algorithm tag or value is invalid.


Definition at line 67 of file util/third_party/mbedtls/include/mbedtls/x509.h

MBEDTLS_ERR_X509_INVALID_NAME#

#define MBEDTLS_ERR_X509_INVALID_NAME
Value:
-0x2380

The name tag or value is invalid.


Definition at line 69 of file util/third_party/mbedtls/include/mbedtls/x509.h

MBEDTLS_ERR_X509_INVALID_DATE#

#define MBEDTLS_ERR_X509_INVALID_DATE
Value:
-0x2400

The date tag or value is invalid.


Definition at line 71 of file util/third_party/mbedtls/include/mbedtls/x509.h

MBEDTLS_ERR_X509_INVALID_SIGNATURE#

#define MBEDTLS_ERR_X509_INVALID_SIGNATURE
Value:
-0x2480

The signature tag or value invalid.


Definition at line 73 of file util/third_party/mbedtls/include/mbedtls/x509.h

MBEDTLS_ERR_X509_INVALID_EXTENSIONS#

#define MBEDTLS_ERR_X509_INVALID_EXTENSIONS
Value:
-0x2500

The extension tag or value is invalid.


Definition at line 75 of file util/third_party/mbedtls/include/mbedtls/x509.h

MBEDTLS_ERR_X509_UNKNOWN_VERSION#

#define MBEDTLS_ERR_X509_UNKNOWN_VERSION
Value:
-0x2580

CRT/CRL/CSR has an unsupported version number.


Definition at line 77 of file util/third_party/mbedtls/include/mbedtls/x509.h

MBEDTLS_ERR_X509_UNKNOWN_SIG_ALG#

#define MBEDTLS_ERR_X509_UNKNOWN_SIG_ALG
Value:
-0x2600

Signature algorithm (oid) is unsupported.


Definition at line 79 of file util/third_party/mbedtls/include/mbedtls/x509.h

MBEDTLS_ERR_X509_SIG_MISMATCH#

#define MBEDTLS_ERR_X509_SIG_MISMATCH
Value:
-0x2680

Signature algorithms do not match.

(see mbedtls_x509_crt sig_oid)


Definition at line 81 of file util/third_party/mbedtls/include/mbedtls/x509.h

MBEDTLS_ERR_X509_CERT_VERIFY_FAILED#

#define MBEDTLS_ERR_X509_CERT_VERIFY_FAILED
Value:
-0x2700

Certificate verification failed, e.g.

CRL, CA or signature check failed.


Definition at line 83 of file util/third_party/mbedtls/include/mbedtls/x509.h

MBEDTLS_ERR_X509_CERT_UNKNOWN_FORMAT#

#define MBEDTLS_ERR_X509_CERT_UNKNOWN_FORMAT
Value:
-0x2780

Format not recognized as DER or PEM.


Definition at line 85 of file util/third_party/mbedtls/include/mbedtls/x509.h

MBEDTLS_ERR_X509_BAD_INPUT_DATA#

#define MBEDTLS_ERR_X509_BAD_INPUT_DATA
Value:
-0x2800

Input invalid.


Definition at line 87 of file util/third_party/mbedtls/include/mbedtls/x509.h

MBEDTLS_ERR_X509_ALLOC_FAILED#

#define MBEDTLS_ERR_X509_ALLOC_FAILED
Value:
-0x2880

Allocation of memory failed.


Definition at line 89 of file util/third_party/mbedtls/include/mbedtls/x509.h

MBEDTLS_ERR_X509_FILE_IO_ERROR#

#define MBEDTLS_ERR_X509_FILE_IO_ERROR
Value:
-0x2900

Read/write of file failed.


Definition at line 91 of file util/third_party/mbedtls/include/mbedtls/x509.h

MBEDTLS_ERR_X509_BUFFER_TOO_SMALL#

#define MBEDTLS_ERR_X509_BUFFER_TOO_SMALL
Value:
-0x2980

Destination buffer is too small.


Definition at line 93 of file util/third_party/mbedtls/include/mbedtls/x509.h

MBEDTLS_ERR_X509_FATAL_ERROR#

#define MBEDTLS_ERR_X509_FATAL_ERROR
Value:
-0x3000

A fatal error occurred, eg the chain is too long or the vrfy callback failed.


Definition at line 95 of file util/third_party/mbedtls/include/mbedtls/x509.h

X509 Verify codes Documentation#

MBEDTLS_X509_BADCERT_EXPIRED#

#define MBEDTLS_X509_BADCERT_EXPIRED
Value:
0x01

The certificate validity has expired.


Definition at line 103 of file util/third_party/mbedtls/include/mbedtls/x509.h

MBEDTLS_X509_BADCERT_REVOKED#

#define MBEDTLS_X509_BADCERT_REVOKED
Value:
0x02

The certificate has been revoked (is on a CRL).


Definition at line 104 of file util/third_party/mbedtls/include/mbedtls/x509.h

MBEDTLS_X509_BADCERT_CN_MISMATCH#

#define MBEDTLS_X509_BADCERT_CN_MISMATCH
Value:
0x04

The certificate Common Name (CN) does not match with the expected CN.


Definition at line 105 of file util/third_party/mbedtls/include/mbedtls/x509.h

MBEDTLS_X509_BADCERT_NOT_TRUSTED#

#define MBEDTLS_X509_BADCERT_NOT_TRUSTED
Value:
0x08

The certificate is not correctly signed by the trusted CA.


Definition at line 106 of file util/third_party/mbedtls/include/mbedtls/x509.h

MBEDTLS_X509_BADCRL_NOT_TRUSTED#

#define MBEDTLS_X509_BADCRL_NOT_TRUSTED
Value:
0x10

The CRL is not correctly signed by the trusted CA.


Definition at line 107 of file util/third_party/mbedtls/include/mbedtls/x509.h

MBEDTLS_X509_BADCRL_EXPIRED#

#define MBEDTLS_X509_BADCRL_EXPIRED
Value:
0x20

The CRL is expired.


Definition at line 108 of file util/third_party/mbedtls/include/mbedtls/x509.h

MBEDTLS_X509_BADCERT_MISSING#

#define MBEDTLS_X509_BADCERT_MISSING
Value:
0x40

Certificate was missing.


Definition at line 109 of file util/third_party/mbedtls/include/mbedtls/x509.h

MBEDTLS_X509_BADCERT_SKIP_VERIFY#

#define MBEDTLS_X509_BADCERT_SKIP_VERIFY
Value:
0x80

Certificate verification was skipped.


Definition at line 110 of file util/third_party/mbedtls/include/mbedtls/x509.h

MBEDTLS_X509_BADCERT_OTHER#

#define MBEDTLS_X509_BADCERT_OTHER
Value:
0x0100

Other reason (can be used by verify callback)


Definition at line 111 of file util/third_party/mbedtls/include/mbedtls/x509.h

MBEDTLS_X509_BADCERT_FUTURE#

#define MBEDTLS_X509_BADCERT_FUTURE
Value:
0x0200

The certificate validity starts in the future.


Definition at line 112 of file util/third_party/mbedtls/include/mbedtls/x509.h

MBEDTLS_X509_BADCRL_FUTURE#

#define MBEDTLS_X509_BADCRL_FUTURE
Value:
0x0400

The CRL is from the future.


Definition at line 113 of file util/third_party/mbedtls/include/mbedtls/x509.h

MBEDTLS_X509_BADCERT_KEY_USAGE#

#define MBEDTLS_X509_BADCERT_KEY_USAGE
Value:
0x0800

Usage does not match the keyUsage extension.


Definition at line 114 of file util/third_party/mbedtls/include/mbedtls/x509.h

MBEDTLS_X509_BADCERT_EXT_KEY_USAGE#

#define MBEDTLS_X509_BADCERT_EXT_KEY_USAGE
Value:
0x1000

Usage does not match the extendedKeyUsage extension.


Definition at line 115 of file util/third_party/mbedtls/include/mbedtls/x509.h

MBEDTLS_X509_BADCERT_NS_CERT_TYPE#

#define MBEDTLS_X509_BADCERT_NS_CERT_TYPE
Value:
0x2000

Usage does not match the nsCertType extension.


Definition at line 116 of file util/third_party/mbedtls/include/mbedtls/x509.h

MBEDTLS_X509_BADCERT_BAD_MD#

#define MBEDTLS_X509_BADCERT_BAD_MD
Value:
0x4000

The certificate is signed with an unacceptable hash.


Definition at line 117 of file util/third_party/mbedtls/include/mbedtls/x509.h

MBEDTLS_X509_BADCERT_BAD_PK#

#define MBEDTLS_X509_BADCERT_BAD_PK
Value:
0x8000

The certificate is signed with an unacceptable PK alg (eg RSA vs ECDSA).


Definition at line 118 of file util/third_party/mbedtls/include/mbedtls/x509.h

MBEDTLS_X509_BADCERT_BAD_KEY#

#define MBEDTLS_X509_BADCERT_BAD_KEY
Value:
0x010000

The certificate is signed with an unacceptable key (eg bad curve, RSA too short).


Definition at line 119 of file util/third_party/mbedtls/include/mbedtls/x509.h

MBEDTLS_X509_BADCRL_BAD_MD#

#define MBEDTLS_X509_BADCRL_BAD_MD
Value:
0x020000

The CRL is signed with an unacceptable hash.


Definition at line 120 of file util/third_party/mbedtls/include/mbedtls/x509.h

MBEDTLS_X509_BADCRL_BAD_PK#

#define MBEDTLS_X509_BADCRL_BAD_PK
Value:
0x040000

The CRL is signed with an unacceptable PK alg (eg RSA vs ECDSA).


Definition at line 121 of file util/third_party/mbedtls/include/mbedtls/x509.h

MBEDTLS_X509_BADCRL_BAD_KEY#

#define MBEDTLS_X509_BADCRL_BAD_KEY
Value:
0x080000

The CRL is signed with an unacceptable key (eg bad curve, RSA too short).


Definition at line 122 of file util/third_party/mbedtls/include/mbedtls/x509.h

Function Documentation#

mbedtls_x509_dn_gets#

int mbedtls_x509_dn_gets (char * buf, size_t size, const mbedtls_x509_name * dn)

Store the certificate DN in printable form into buf; no more than size characters will be written.

Parameters
N/Abuf

Buffer to write to

N/Asize

Maximum size of buffer

N/Adn

The X509 name to represent

Returns

  • The length of the string written (not including the terminated nul byte), or a negative error code.


Definition at line 267 of file util/third_party/mbedtls/include/mbedtls/x509.h

mbedtls_x509_dn_get_next#

static mbedtls_x509_name * mbedtls_x509_dn_get_next (mbedtls_x509_name * dn)

Return the next relative DN in an X509 name.

Parameters
N/Adn

Current node in the X509 name

Note

  • Intended use is to compare function result to dn->next in order to detect boundaries of multi-valued RDNs.

Returns

  • Pointer to the first attribute-value pair of the next RDN in sequence, or NULL if end is reached.


Definition at line 280 of file util/third_party/mbedtls/include/mbedtls/x509.h

mbedtls_x509_serial_gets#

int mbedtls_x509_serial_gets (char * buf, size_t size, const mbedtls_x509_buf * serial)

Store the certificate serial in printable form into buf; no more than size characters will be written.

Parameters
N/Abuf

Buffer to write to

N/Asize

Maximum size of buffer

N/Aserial

The X509 serial to represent

Returns

  • The length of the string written (not including the terminated nul byte), or a negative error code.


Definition at line 299 of file util/third_party/mbedtls/include/mbedtls/x509.h

mbedtls_x509_time_is_past#

int mbedtls_x509_time_is_past (const mbedtls_x509_time * to)

Check a given mbedtls_x509_time against the system time and tell if it's in the past.

Parameters
N/Ato

mbedtls_x509_time to check

Note

  • Intended usage is "if( is_past( valid_to ) ) ERROR". Hence the return value of 1 if on internal errors.

Returns

  • 1 if the given time is in the past or an error occurred, 0 otherwise.


Definition at line 313 of file util/third_party/mbedtls/include/mbedtls/x509.h

mbedtls_x509_time_is_future#

int mbedtls_x509_time_is_future (const mbedtls_x509_time * from)

Check a given mbedtls_x509_time against the system time and tell if it's in the future.

Parameters
N/Afrom

mbedtls_x509_time to check

Note

  • Intended usage is "if( is_future( valid_from ) ) ERROR". Hence the return value of 1 if on internal errors.

Returns

  • 1 if the given time is in the future or an error occurred, 0 otherwise.


Definition at line 327 of file util/third_party/mbedtls/include/mbedtls/x509.h

Macro Definition Documentation#

MBEDTLS_X509_MAX_INTERMEDIATE_CA#

#define MBEDTLS_X509_MAX_INTERMEDIATE_CA
Value:
8

Maximum number of intermediate CAs in a verification chain.

That is, maximum length of the chain, excluding the end-entity certificate and the trusted root certificate.

Set this to a low value to prevent an adversary from making you waste resources verifying an overlong certificate chain.


Definition at line 49 of file util/third_party/mbedtls/include/mbedtls/x509.h