![]() |
Mbed OS Reference
|
Structures for parsing X.509 certificates, CRLs and CSRs. More...
Data Structures | |
| struct | mbedtls_x509_time |
| Container for date and time (precision in seconds). More... | |
| struct | mbedtls_x509_crl_entry |
| Certificate revocation list entry. More... | |
| struct | mbedtls_x509_crl |
| Certificate revocation list structure. More... | |
| struct | mbedtls_x509_crt |
| Container for an X.509 certificate. More... | |
| struct | mbedtls_x509_san_other_name |
| From RFC 5280 section 4.2.1.6: OtherName ::= SEQUENCE { type-id OBJECT IDENTIFIER, value [0] EXPLICIT ANY DEFINED BY type-id }. More... | |
| struct | mbedtls_x509_subject_alternative_name |
| A structure for holding the parsed Subject Alternative Name, according to type. More... | |
| struct | mbedtls_x509_crt_profile |
| Security profile for certificate verification. More... | |
| struct | mbedtls_x509write_cert |
| Container for writing a certificate (CRT) More... | |
| struct | mbedtls_x509_crt_verify_chain_item |
| Item in a verification chain: cert and flags for it. More... | |
| struct | mbedtls_x509_crt_verify_chain |
Verification chain as built by mbedtls_crt_verify_chain() More... | |
| struct | mbedtls_x509_csr |
| Certificate Signing Request (CSR) structure. More... | |
| struct | mbedtls_x509write_csr |
| Container for writing a CSR. More... | |
Macros | |
| #define | MBEDTLS_X509_MAX_INTERMEDIATE_CA 8 |
| Maximum number of intermediate CAs in a verification chain. | |
| #define | MBEDTLS_X509_MAX_DN_NAME_SIZE 256 |
| Maximum value size of a DN entry. | |
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. | |
| 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. | |
Structures for parsing X.509 certificates, CRLs and CSRs | |
| typedef mbedtls_asn1_buf | mbedtls_x509_buf |
| Type-length-value structure that allows for ASN1 using DER. | |
| typedef mbedtls_asn1_bitstring | mbedtls_x509_bitstring |
| Container for ASN1 bit strings. | |
| typedef mbedtls_asn1_named_data | mbedtls_x509_name |
| Container for ASN1 named information objects. | |
| typedef mbedtls_asn1_sequence | mbedtls_x509_sequence |
| Container for a sequence of ASN.1 items. | |
| typedef struct mbedtls_x509_time | mbedtls_x509_time |
| Container for date and time (precision in seconds). | |
Structures and functions for parsing CRLs | |
| typedef struct mbedtls_x509_crl_entry | mbedtls_x509_crl_entry |
| Certificate revocation list entry. | |
| typedef struct mbedtls_x509_crl | mbedtls_x509_crl |
| Certificate revocation list structure. | |
| 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. | |
Structures and functions for parsing and writing X.509 certificates | |
| typedef struct mbedtls_x509_crt | mbedtls_x509_crt |
| Container for an X.509 certificate. | |
| typedef struct mbedtls_x509_san_other_name | mbedtls_x509_san_other_name |
| From RFC 5280 section 4.2.1.6: OtherName ::= SEQUENCE { type-id OBJECT IDENTIFIER, value [0] EXPLICIT ANY DEFINED BY type-id }. | |
| typedef struct mbedtls_x509_subject_alternative_name | mbedtls_x509_subject_alternative_name |
| A structure for holding the parsed Subject Alternative Name, according to type. | |
| typedef struct mbedtls_x509_crt_profile | mbedtls_x509_crt_profile |
| Security profile for certificate verification. | |
| typedef struct mbedtls_x509write_cert | mbedtls_x509write_cert |
| Container for writing a certificate (CRT) | |
| #define | MBEDTLS_X509_ID_FLAG(id) ( 1 << ( (id) - 1 ) ) |
| 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 X.509 Certificate Signing Requests (CSR) | |
| typedef struct mbedtls_x509_csr | mbedtls_x509_csr |
| Certificate Signing Request (CSR) structure. | |
| typedef struct mbedtls_x509write_csr | mbedtls_x509write_csr |
| Container for writing a CSR. | |
X509 Error codes | |
| #define | MBEDTLS_ERR_X509_FEATURE_UNAVAILABLE -0x2080 |
| Unavailable feature, e.g. | |
| #define | MBEDTLS_ERR_X509_UNKNOWN_OID -0x2100 |
| Requested OID is unknown. | |
| #define | MBEDTLS_ERR_X509_INVALID_FORMAT -0x2180 |
| The CRT/CRL/CSR format is invalid, e.g. | |
| #define | MBEDTLS_ERR_X509_INVALID_VERSION -0x2200 |
| The CRT/CRL/CSR version element is invalid. | |
| #define | MBEDTLS_ERR_X509_INVALID_SERIAL -0x2280 |
| The serial tag or value is invalid. | |
| #define | MBEDTLS_ERR_X509_INVALID_ALG -0x2300 |
| The algorithm tag or value is invalid. | |
| #define | MBEDTLS_ERR_X509_INVALID_NAME -0x2380 |
| The name tag or value is invalid. | |
| #define | MBEDTLS_ERR_X509_INVALID_DATE -0x2400 |
| The date tag or value is invalid. | |
| #define | MBEDTLS_ERR_X509_INVALID_SIGNATURE -0x2480 |
| The signature tag or value invalid. | |
| #define | MBEDTLS_ERR_X509_INVALID_EXTENSIONS -0x2500 |
| The extension tag or value is invalid. | |
| #define | MBEDTLS_ERR_X509_UNKNOWN_VERSION -0x2580 |
| CRT/CRL/CSR has an unsupported version number. | |
| #define | MBEDTLS_ERR_X509_UNKNOWN_SIG_ALG -0x2600 |
| Signature algorithm (oid) is unsupported. | |
| #define | MBEDTLS_ERR_X509_SIG_MISMATCH -0x2680 |
| Signature algorithms do not match. | |
| #define | MBEDTLS_ERR_X509_CERT_VERIFY_FAILED -0x2700 |
| Certificate verification failed, e.g. | |
| #define | MBEDTLS_ERR_X509_CERT_UNKNOWN_FORMAT -0x2780 |
| Format not recognized as DER or PEM. | |
| #define | MBEDTLS_ERR_X509_BAD_INPUT_DATA -0x2800 |
| Input invalid. | |
| #define | MBEDTLS_ERR_X509_ALLOC_FAILED -0x2880 |
| Allocation of memory failed. | |
| #define | MBEDTLS_ERR_X509_FILE_IO_ERROR -0x2900 |
| Read/write of file failed. | |
| #define | MBEDTLS_ERR_X509_BUFFER_TOO_SMALL -0x2980 |
| Destination buffer is too small. | |
| #define | MBEDTLS_ERR_X509_FATAL_ERROR -0x3000 |
| A fatal error occurred, eg the chain is too long or the vrfy callback failed. | |
X509 Verify codes | |
| #define | MBEDTLS_X509_BADCERT_EXPIRED 0x01 |
| The certificate validity has expired. | |
| #define | MBEDTLS_X509_BADCERT_REVOKED 0x02 |
| The certificate has been revoked (is on a CRL). | |
| #define | MBEDTLS_X509_BADCERT_CN_MISMATCH 0x04 |
| The certificate Common Name (CN) does not match with the expected CN. | |
| #define | MBEDTLS_X509_BADCERT_NOT_TRUSTED 0x08 |
| The certificate is not correctly signed by the trusted CA. | |
| #define | MBEDTLS_X509_BADCRL_NOT_TRUSTED 0x10 |
| The CRL is not correctly signed by the trusted CA. | |
| #define | MBEDTLS_X509_BADCRL_EXPIRED 0x20 |
| The CRL is expired. | |
| #define | MBEDTLS_X509_BADCERT_MISSING 0x40 |
| Certificate was missing. | |
| #define | MBEDTLS_X509_BADCERT_SKIP_VERIFY 0x80 |
| Certificate verification was skipped. | |
| #define | MBEDTLS_X509_BADCERT_OTHER 0x0100 |
| Other reason (can be used by verify callback) | |
| #define | MBEDTLS_X509_BADCERT_FUTURE 0x0200 |
| The certificate validity starts in the future. | |
| #define | MBEDTLS_X509_BADCRL_FUTURE 0x0400 |
| The CRL is from the future. | |
| #define | MBEDTLS_X509_BADCERT_KEY_USAGE 0x0800 |
| Usage does not match the keyUsage extension. | |
| #define | MBEDTLS_X509_BADCERT_EXT_KEY_USAGE 0x1000 |
| Usage does not match the extendedKeyUsage extension. | |
| #define | MBEDTLS_X509_BADCERT_NS_CERT_TYPE 0x2000 |
| Usage does not match the nsCertType extension. | |
| #define | MBEDTLS_X509_BADCERT_BAD_MD 0x4000 |
| The certificate is signed with an unacceptable hash. | |
| #define | MBEDTLS_X509_BADCERT_BAD_PK 0x8000 |
| The certificate is signed with an unacceptable PK alg (eg RSA vs ECDSA). | |
| #define | MBEDTLS_X509_BADCERT_BAD_KEY 0x010000 |
| The certificate is signed with an unacceptable key (eg bad curve, RSA too short). | |
| #define | MBEDTLS_X509_BADCRL_BAD_MD 0x020000 |
| The CRL is signed with an unacceptable hash. | |
| #define | MBEDTLS_X509_BADCRL_BAD_PK 0x040000 |
| The CRL is signed with an unacceptable PK alg (eg RSA vs ECDSA). | |
| #define | MBEDTLS_X509_BADCRL_BAD_KEY 0x080000 |
| The CRL is signed with an unacceptable key (eg bad curve, RSA too short). | |
Structures for parsing X.509 certificates, CRLs and CSRs.
| #define MBEDTLS_X509_MAX_INTERMEDIATE_CA 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.
| #define MBEDTLS_ERR_X509_FEATURE_UNAVAILABLE -0x2080 |
| #define MBEDTLS_ERR_X509_UNKNOWN_OID -0x2100 |
| #define MBEDTLS_ERR_X509_INVALID_FORMAT -0x2180 |
| #define MBEDTLS_ERR_X509_INVALID_VERSION -0x2200 |
| #define MBEDTLS_ERR_X509_INVALID_SERIAL -0x2280 |
| #define MBEDTLS_ERR_X509_INVALID_ALG -0x2300 |
| #define MBEDTLS_ERR_X509_INVALID_NAME -0x2380 |
| #define MBEDTLS_ERR_X509_INVALID_DATE -0x2400 |
| #define MBEDTLS_ERR_X509_INVALID_SIGNATURE -0x2480 |
| #define MBEDTLS_ERR_X509_INVALID_EXTENSIONS -0x2500 |
| #define MBEDTLS_ERR_X509_UNKNOWN_VERSION -0x2580 |
| #define MBEDTLS_ERR_X509_UNKNOWN_SIG_ALG -0x2600 |
| #define MBEDTLS_ERR_X509_SIG_MISMATCH -0x2680 |
Signature algorithms do not match.
(see mbedtls_x509_crt sig_oid)
| #define MBEDTLS_ERR_X509_CERT_VERIFY_FAILED -0x2700 |
| #define MBEDTLS_ERR_X509_CERT_UNKNOWN_FORMAT -0x2780 |
| #define MBEDTLS_ERR_X509_BAD_INPUT_DATA -0x2800 |
| #define MBEDTLS_ERR_X509_ALLOC_FAILED -0x2880 |
| #define MBEDTLS_ERR_X509_FILE_IO_ERROR -0x2900 |
| #define MBEDTLS_ERR_X509_BUFFER_TOO_SMALL -0x2980 |
| #define MBEDTLS_ERR_X509_FATAL_ERROR -0x3000 |
| #define MBEDTLS_X509_BADCERT_EXPIRED 0x01 |
| #define MBEDTLS_X509_BADCERT_REVOKED 0x02 |
| #define MBEDTLS_X509_BADCERT_CN_MISMATCH 0x04 |
| #define MBEDTLS_X509_BADCERT_NOT_TRUSTED 0x08 |
| #define MBEDTLS_X509_BADCRL_NOT_TRUSTED 0x10 |
| #define MBEDTLS_X509_BADCERT_MISSING 0x40 |
| #define MBEDTLS_X509_BADCERT_SKIP_VERIFY 0x80 |
| #define MBEDTLS_X509_BADCERT_OTHER 0x0100 |
| #define MBEDTLS_X509_BADCERT_FUTURE 0x0200 |
| #define MBEDTLS_X509_BADCRL_FUTURE 0x0400 |
| #define MBEDTLS_X509_BADCERT_KEY_USAGE 0x0800 |
| #define MBEDTLS_X509_BADCERT_EXT_KEY_USAGE 0x1000 |
| #define MBEDTLS_X509_BADCERT_NS_CERT_TYPE 0x2000 |
| #define MBEDTLS_X509_BADCERT_BAD_MD 0x4000 |
| #define MBEDTLS_X509_BADCERT_BAD_PK 0x8000 |
| #define MBEDTLS_X509_BADCERT_BAD_KEY 0x010000 |
| #define MBEDTLS_X509_BADCRL_BAD_MD 0x020000 |
| #define MBEDTLS_X509_BADCRL_BAD_PK 0x040000 |
| #define MBEDTLS_X509_BADCRL_BAD_KEY 0x080000 |
| #define MBEDTLS_X509_MAX_DN_NAME_SIZE 256 |
| #define MBEDTLS_X509_ID_FLAG | ( | id | ) | ( 1 << ( (id) - 1 ) ) |
Build flag from an algorithm/curve identifier (pk, md, ecp) Since 0 is always XXX_NONE, ignore it.
Definition at line 152 of file x509_crt.h.
| #define MBEDTLS_X509_MAX_VERIFY_CHAIN_SIZE ( MBEDTLS_X509_MAX_INTERMEDIATE_CA + 2 ) |
Max size of verification chain: end-entity + intermediates + trusted root.
Definition at line 208 of file x509_crt.h.
| typedef mbedtls_asn1_buf mbedtls_x509_buf |
| typedef struct mbedtls_x509_time mbedtls_x509_time |
Container for date and time (precision in seconds).
| typedef struct mbedtls_x509_crl_entry mbedtls_x509_crl_entry |
Certificate revocation list entry.
Contains the CA-specific serial numbers and revocation dates.
| typedef struct mbedtls_x509_crl mbedtls_x509_crl |
Certificate revocation list structure.
Every CRL may have multiple entries.
| typedef struct mbedtls_x509_crt mbedtls_x509_crt |
Container for an X.509 certificate.
The certificate may be chained.
| typedef struct mbedtls_x509_san_other_name mbedtls_x509_san_other_name |
From RFC 5280 section 4.2.1.6: OtherName ::= SEQUENCE { type-id OBJECT IDENTIFIER, value [0] EXPLICIT ANY DEFINED BY type-id }.
A structure for holding the parsed Subject Alternative Name, according to type.
| typedef struct mbedtls_x509_crt_profile mbedtls_x509_crt_profile |
Security profile for certificate verification.
All lists are bitfields, built by ORing flags from MBEDTLS_X509_ID_FLAG().
| typedef struct mbedtls_x509write_cert mbedtls_x509write_cert |
Container for writing a certificate (CRT)
| typedef struct mbedtls_x509_csr mbedtls_x509_csr |
Certificate Signing Request (CSR) structure.
| typedef struct mbedtls_x509write_csr mbedtls_x509write_csr |
Container for writing a CSR.
| 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.
| buf | Buffer to write to |
| size | Maximum size of buffer |
| dn | The X509 name to represent |
| 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.
| buf | Buffer to write to |
| size | Maximum size of buffer |
| serial | The X509 serial to represent |
| 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.
| to | mbedtls_x509_time to check |
| 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.
| from | mbedtls_x509_time to check |
| 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.
| chain | points to the start of the chain |
| buf | buffer holding the CRL data in DER format |
| buflen | size of the buffer (including the terminating null byte for PEM data) |
| 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.
| chain | points to the start of the chain |
| buf | buffer holding the CRL data in PEM or DER format |
| buflen | size of the buffer (including the terminating null byte for PEM data) |
| 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.
| buf | Buffer to write to |
| size | Maximum size of buffer |
| prefix | A line prefix |
| crl | The X509 CRL to represent |
| void mbedtls_x509_crl_init | ( | mbedtls_x509_crl * | crl | ) |
Initialize a CRL (chain)
| crl | CRL chain to initialize |
| void mbedtls_x509_crl_free | ( | mbedtls_x509_crl * | crl | ) |
Unallocate all CRL data.
| crl | CRL chain to free |