mbed TLS v2.6.0
|
X.509 generic defines and structures. More...
Go to the source code of this file.
Data Structures | |
struct | mbedtls_x509_time |
Container for date and time (precision in seconds). More... | |
Macros | |
#define | MBEDTLS_X509_MAX_INTERMEDIATE_CA 8 |
Maximum number of intermediate CAs in a verification chain. More... | |
#define | MBEDTLS_X509_KU_DIGITAL_SIGNATURE (0x80) /* bit 0 */ |
#define | MBEDTLS_X509_KU_NON_REPUDIATION (0x40) /* bit 1 */ |
#define | MBEDTLS_X509_KU_KEY_ENCIPHERMENT (0x20) /* bit 2 */ |
#define | MBEDTLS_X509_KU_DATA_ENCIPHERMENT (0x10) /* bit 3 */ |
#define | MBEDTLS_X509_KU_KEY_AGREEMENT (0x08) /* bit 4 */ |
#define | MBEDTLS_X509_KU_KEY_CERT_SIGN (0x04) /* bit 5 */ |
#define | MBEDTLS_X509_KU_CRL_SIGN (0x02) /* bit 6 */ |
#define | MBEDTLS_X509_KU_ENCIPHER_ONLY (0x01) /* bit 7 */ |
#define | MBEDTLS_X509_KU_DECIPHER_ONLY (0x8000) /* bit 8 */ |
#define | MBEDTLS_X509_NS_CERT_TYPE_SSL_CLIENT (0x80) /* bit 0 */ |
#define | MBEDTLS_X509_NS_CERT_TYPE_SSL_SERVER (0x40) /* bit 1 */ |
#define | MBEDTLS_X509_NS_CERT_TYPE_EMAIL (0x20) /* bit 2 */ |
#define | MBEDTLS_X509_NS_CERT_TYPE_OBJECT_SIGNING (0x10) /* bit 3 */ |
#define | MBEDTLS_X509_NS_CERT_TYPE_RESERVED (0x08) /* bit 4 */ |
#define | MBEDTLS_X509_NS_CERT_TYPE_SSL_CA (0x04) /* bit 5 */ |
#define | MBEDTLS_X509_NS_CERT_TYPE_EMAIL_CA (0x02) /* bit 6 */ |
#define | MBEDTLS_X509_NS_CERT_TYPE_OBJECT_SIGNING_CA (0x01) /* bit 7 */ |
#define | MBEDTLS_X509_EXT_AUTHORITY_KEY_IDENTIFIER (1 << 0) |
#define | MBEDTLS_X509_EXT_SUBJECT_KEY_IDENTIFIER (1 << 1) |
#define | MBEDTLS_X509_EXT_KEY_USAGE (1 << 2) |
#define | MBEDTLS_X509_EXT_CERTIFICATE_POLICIES (1 << 3) |
#define | MBEDTLS_X509_EXT_POLICY_MAPPINGS (1 << 4) |
#define | MBEDTLS_X509_EXT_SUBJECT_ALT_NAME (1 << 5) /* Supported (DNS) */ |
#define | MBEDTLS_X509_EXT_ISSUER_ALT_NAME (1 << 6) |
#define | MBEDTLS_X509_EXT_SUBJECT_DIRECTORY_ATTRS (1 << 7) |
#define | MBEDTLS_X509_EXT_BASIC_CONSTRAINTS (1 << 8) /* Supported */ |
#define | MBEDTLS_X509_EXT_NAME_CONSTRAINTS (1 << 9) |
#define | MBEDTLS_X509_EXT_POLICY_CONSTRAINTS (1 << 10) |
#define | MBEDTLS_X509_EXT_EXTENDED_KEY_USAGE (1 << 11) |
#define | MBEDTLS_X509_EXT_CRL_DISTRIBUTION_POINTS (1 << 12) |
#define | MBEDTLS_X509_EXT_INIHIBIT_ANYPOLICY (1 << 13) |
#define | MBEDTLS_X509_EXT_FRESHEST_CRL (1 << 14) |
#define | MBEDTLS_X509_EXT_NS_CERT_TYPE (1 << 16) |
#define | MBEDTLS_X509_FORMAT_DER 1 |
#define | MBEDTLS_X509_FORMAT_PEM 2 |
#define | MBEDTLS_X509_MAX_DN_NAME_SIZE 256 |
Maximum value size of a DN entry. More... | |
#define | MBEDTLS_X509_SAFE_SNPRINTF |
X509 Error codes | |
#define | MBEDTLS_ERR_X509_FEATURE_UNAVAILABLE -0x2080 |
Unavailable feature, e.g. More... | |
#define | MBEDTLS_ERR_X509_UNKNOWN_OID -0x2100 |
Requested OID is unknown. More... | |
#define | MBEDTLS_ERR_X509_INVALID_FORMAT -0x2180 |
The CRT/CRL/CSR format is invalid, e.g. More... | |
#define | MBEDTLS_ERR_X509_INVALID_VERSION -0x2200 |
The CRT/CRL/CSR version element is invalid. More... | |
#define | MBEDTLS_ERR_X509_INVALID_SERIAL -0x2280 |
The serial tag or value is invalid. More... | |
#define | MBEDTLS_ERR_X509_INVALID_ALG -0x2300 |
The algorithm tag or value is invalid. More... | |
#define | MBEDTLS_ERR_X509_INVALID_NAME -0x2380 |
The name tag or value is invalid. More... | |
#define | MBEDTLS_ERR_X509_INVALID_DATE -0x2400 |
The date tag or value is invalid. More... | |
#define | MBEDTLS_ERR_X509_INVALID_SIGNATURE -0x2480 |
The signature tag or value invalid. More... | |
#define | MBEDTLS_ERR_X509_INVALID_EXTENSIONS -0x2500 |
The extension tag or value is invalid. More... | |
#define | MBEDTLS_ERR_X509_UNKNOWN_VERSION -0x2580 |
CRT/CRL/CSR has an unsupported version number. More... | |
#define | MBEDTLS_ERR_X509_UNKNOWN_SIG_ALG -0x2600 |
Signature algorithm (oid) is unsupported. More... | |
#define | MBEDTLS_ERR_X509_SIG_MISMATCH -0x2680 |
Signature algorithms do not match. More... | |
#define | MBEDTLS_ERR_X509_CERT_VERIFY_FAILED -0x2700 |
Certificate verification failed, e.g. More... | |
#define | MBEDTLS_ERR_X509_CERT_UNKNOWN_FORMAT -0x2780 |
Format not recognized as DER or PEM. More... | |
#define | MBEDTLS_ERR_X509_BAD_INPUT_DATA -0x2800 |
Input invalid. More... | |
#define | MBEDTLS_ERR_X509_ALLOC_FAILED -0x2880 |
Allocation of memory failed. More... | |
#define | MBEDTLS_ERR_X509_FILE_IO_ERROR -0x2900 |
Read/write of file failed. More... | |
#define | MBEDTLS_ERR_X509_BUFFER_TOO_SMALL -0x2980 |
Destination buffer is too small. More... | |
#define | MBEDTLS_ERR_X509_FATAL_ERROR -0x3000 |
A fatal error occured, eg the chain is too long or the vrfy callback failed. More... | |
X509 Verify codes | |
#define | MBEDTLS_X509_BADCERT_EXPIRED 0x01 |
The certificate validity has expired. More... | |
#define | MBEDTLS_X509_BADCERT_REVOKED 0x02 |
The certificate has been revoked (is on a CRL). More... | |
#define | MBEDTLS_X509_BADCERT_CN_MISMATCH 0x04 |
The certificate Common Name (CN) does not match with the expected CN. More... | |
#define | MBEDTLS_X509_BADCERT_NOT_TRUSTED 0x08 |
The certificate is not correctly signed by the trusted CA. More... | |
#define | MBEDTLS_X509_BADCRL_NOT_TRUSTED 0x10 |
The CRL is not correctly signed by the trusted CA. More... | |
#define | MBEDTLS_X509_BADCRL_EXPIRED 0x20 |
The CRL is expired. More... | |
#define | MBEDTLS_X509_BADCERT_MISSING 0x40 |
Certificate was missing. More... | |
#define | MBEDTLS_X509_BADCERT_SKIP_VERIFY 0x80 |
Certificate verification was skipped. More... | |
#define | MBEDTLS_X509_BADCERT_OTHER 0x0100 |
Other reason (can be used by verify callback) More... | |
#define | MBEDTLS_X509_BADCERT_FUTURE 0x0200 |
The certificate validity starts in the future. More... | |
#define | MBEDTLS_X509_BADCRL_FUTURE 0x0400 |
The CRL is from the future. More... | |
#define | MBEDTLS_X509_BADCERT_KEY_USAGE 0x0800 |
Usage does not match the keyUsage extension. More... | |
#define | MBEDTLS_X509_BADCERT_EXT_KEY_USAGE 0x1000 |
Usage does not match the extendedKeyUsage extension. More... | |
#define | MBEDTLS_X509_BADCERT_NS_CERT_TYPE 0x2000 |
Usage does not match the nsCertType extension. More... | |
#define | MBEDTLS_X509_BADCERT_BAD_MD 0x4000 |
The certificate is signed with an unacceptable hash. More... | |
#define | MBEDTLS_X509_BADCERT_BAD_PK 0x8000 |
The certificate is signed with an unacceptable PK alg (eg RSA vs ECDSA). More... | |
#define | MBEDTLS_X509_BADCERT_BAD_KEY 0x010000 |
The certificate is signed with an unacceptable key (eg bad curve, RSA too short). More... | |
#define | MBEDTLS_X509_BADCRL_BAD_MD 0x020000 |
The CRL is signed with an unacceptable hash. More... | |
#define | MBEDTLS_X509_BADCRL_BAD_PK 0x040000 |
The CRL is signed with an unacceptable PK alg (eg RSA vs ECDSA). More... | |
#define | MBEDTLS_X509_BADCRL_BAD_KEY 0x080000 |
The CRL is signed with an unacceptable key (eg bad curve, RSA too short). More... | |
Typedefs | |
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. More... | |
typedef mbedtls_asn1_bitstring | mbedtls_x509_bitstring |
Container for ASN1 bit strings. More... | |
typedef mbedtls_asn1_named_data | mbedtls_x509_name |
Container for ASN1 named information objects. More... | |
typedef mbedtls_asn1_sequence | mbedtls_x509_sequence |
Container for a sequence of ASN.1 items. More... | |
typedef struct mbedtls_x509_time | mbedtls_x509_time |
Container for date and time (precision in seconds). More... | |
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. More... | |
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. More... | |
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. More... | |
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. More... | |
int | mbedtls_x509_self_test (int verbose) |
Checkup routine. More... | |
int | mbedtls_x509_get_name (unsigned char **p, const unsigned char *end, mbedtls_x509_name *cur) |
int | mbedtls_x509_get_alg_null (unsigned char **p, const unsigned char *end, mbedtls_x509_buf *alg) |
int | mbedtls_x509_get_alg (unsigned char **p, const unsigned char *end, mbedtls_x509_buf *alg, mbedtls_x509_buf *params) |
int | mbedtls_x509_get_rsassa_pss_params (const mbedtls_x509_buf *params, mbedtls_md_type_t *md_alg, mbedtls_md_type_t *mgf_md, int *salt_len) |
int | mbedtls_x509_get_sig (unsigned char **p, const unsigned char *end, mbedtls_x509_buf *sig) |
int | mbedtls_x509_get_sig_alg (const mbedtls_x509_buf *sig_oid, const mbedtls_x509_buf *sig_params, mbedtls_md_type_t *md_alg, mbedtls_pk_type_t *pk_alg, void **sig_opts) |
int | mbedtls_x509_get_time (unsigned char **p, const unsigned char *end, mbedtls_x509_time *t) |
int | mbedtls_x509_get_serial (unsigned char **p, const unsigned char *end, mbedtls_x509_buf *serial) |
int | mbedtls_x509_get_ext (unsigned char **p, const unsigned char *end, mbedtls_x509_buf *ext, int tag) |
int | mbedtls_x509_sig_alg_gets (char *buf, size_t size, const mbedtls_x509_buf *sig_oid, mbedtls_pk_type_t pk_alg, mbedtls_md_type_t md_alg, const void *sig_opts) |
int | mbedtls_x509_key_size_helper (char *buf, size_t buf_size, const char *name) |
int | mbedtls_x509_string_to_names (mbedtls_asn1_named_data **head, const char *name) |
int | mbedtls_x509_set_extension (mbedtls_asn1_named_data **head, const char *oid, size_t oid_len, int critical, const unsigned char *val, size_t val_len) |
int | mbedtls_x509_write_extensions (unsigned char **p, unsigned char *start, mbedtls_asn1_named_data *first) |
int | mbedtls_x509_write_names (unsigned char **p, unsigned char *start, mbedtls_asn1_named_data *first) |
int | mbedtls_x509_write_sig (unsigned char **p, unsigned char *start, const char *oid, size_t oid_len, unsigned char *sig, size_t size) |
X.509 generic defines and structures.
Copyright (C) 2006-2015, ARM Limited, All Rights Reserved SPDX-License-Identifier: GPL-2.0
This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
This file is part of mbed TLS (https://tls.mbed.org)
Definition in file x509.h.
#define MBEDTLS_X509_EXT_BASIC_CONSTRAINTS (1 << 8) /* Supported */ |
#define MBEDTLS_X509_EXT_SUBJECT_ALT_NAME (1 << 5) /* Supported (DNS) */ |
#define MBEDTLS_X509_MAX_DN_NAME_SIZE 256 |
#define MBEDTLS_X509_NS_CERT_TYPE_EMAIL_CA (0x02) /* bit 6 */ |
#define MBEDTLS_X509_NS_CERT_TYPE_OBJECT_SIGNING (0x10) /* bit 3 */ |
#define MBEDTLS_X509_NS_CERT_TYPE_OBJECT_SIGNING_CA (0x01) /* bit 7 */ |
#define MBEDTLS_X509_NS_CERT_TYPE_RESERVED (0x08) /* bit 4 */ |
#define MBEDTLS_X509_NS_CERT_TYPE_SSL_CLIENT (0x80) /* bit 0 */ |
#define MBEDTLS_X509_NS_CERT_TYPE_SSL_SERVER (0x40) /* bit 1 */ |
#define MBEDTLS_X509_SAFE_SNPRINTF |
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_get_alg | ( | unsigned char ** | p, |
const unsigned char * | end, | ||
mbedtls_x509_buf * | alg, | ||
mbedtls_x509_buf * | params | ||
) |
int mbedtls_x509_get_alg_null | ( | unsigned char ** | p, |
const unsigned char * | end, | ||
mbedtls_x509_buf * | alg | ||
) |
int mbedtls_x509_get_ext | ( | unsigned char ** | p, |
const unsigned char * | end, | ||
mbedtls_x509_buf * | ext, | ||
int | tag | ||
) |
int mbedtls_x509_get_name | ( | unsigned char ** | p, |
const unsigned char * | end, | ||
mbedtls_x509_name * | cur | ||
) |
int mbedtls_x509_get_rsassa_pss_params | ( | const mbedtls_x509_buf * | params, |
mbedtls_md_type_t * | md_alg, | ||
mbedtls_md_type_t * | mgf_md, | ||
int * | salt_len | ||
) |
int mbedtls_x509_get_serial | ( | unsigned char ** | p, |
const unsigned char * | end, | ||
mbedtls_x509_buf * | serial | ||
) |
int mbedtls_x509_get_sig | ( | unsigned char ** | p, |
const unsigned char * | end, | ||
mbedtls_x509_buf * | sig | ||
) |
int mbedtls_x509_get_sig_alg | ( | const mbedtls_x509_buf * | sig_oid, |
const mbedtls_x509_buf * | sig_params, | ||
mbedtls_md_type_t * | md_alg, | ||
mbedtls_pk_type_t * | pk_alg, | ||
void ** | sig_opts | ||
) |
int mbedtls_x509_get_time | ( | unsigned char ** | p, |
const unsigned char * | end, | ||
mbedtls_x509_time * | t | ||
) |
int mbedtls_x509_key_size_helper | ( | char * | buf, |
size_t | buf_size, | ||
const char * | name | ||
) |
int mbedtls_x509_self_test | ( | int | verbose | ) |
Checkup routine.
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_set_extension | ( | mbedtls_asn1_named_data ** | head, |
const char * | oid, | ||
size_t | oid_len, | ||
int | critical, | ||
const unsigned char * | val, | ||
size_t | val_len | ||
) |
int mbedtls_x509_sig_alg_gets | ( | char * | buf, |
size_t | size, | ||
const mbedtls_x509_buf * | sig_oid, | ||
mbedtls_pk_type_t | pk_alg, | ||
mbedtls_md_type_t | md_alg, | ||
const void * | sig_opts | ||
) |
int mbedtls_x509_string_to_names | ( | mbedtls_asn1_named_data ** | head, |
const char * | name | ||
) |
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_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_write_extensions | ( | unsigned char ** | p, |
unsigned char * | start, | ||
mbedtls_asn1_named_data * | first | ||
) |
int mbedtls_x509_write_names | ( | unsigned char ** | p, |
unsigned char * | start, | ||
mbedtls_asn1_named_data * | first | ||
) |
int mbedtls_x509_write_sig | ( | unsigned char ** | p, |
unsigned char * | start, | ||
const char * | oid, | ||
size_t | oid_len, | ||
unsigned char * | sig, | ||
size_t | size | ||
) |