24 #ifndef MBEDTLS_X509_CRT_H 25 #define MBEDTLS_X509_CRT_H 27 #if !defined(MBEDTLS_CONFIG_FILE) 30 #include MBEDTLS_CONFIG_FILE 101 #define MBEDTLS_X509_ID_FLAG( id ) ( 1 << ( id - 1 ) ) 117 #define MBEDTLS_X509_CRT_VERSION_1 0 118 #define MBEDTLS_X509_CRT_VERSION_2 1 119 #define MBEDTLS_X509_CRT_VERSION_3 2 121 #define MBEDTLS_X509_RFC5280_MAX_SERIAL_LEN 32 122 #define MBEDTLS_X509_RFC5280_UTC_TIME_LEN 15 124 #if !defined( MBEDTLS_X509_MAX_FILE_PATH_LEN ) 125 #define MBEDTLS_X509_MAX_FILE_PATH_LEN 512 157 #define MBEDTLS_X509_MAX_VERIFY_CHAIN_SIZE ( MBEDTLS_X509_MAX_INTERMEDIATE_CA + 2 ) 168 #if defined(MBEDTLS_ECDSA_C) && defined(MBEDTLS_ECP_RESTARTABLE) 181 int fallback_signature_is_good;
184 int parent_is_trusted;
189 x509_crt_rs_find_parent,
203 #if defined(MBEDTLS_X509_CRT_PARSE_C) 231 int mbedtls_x509_crt_parse_der(
mbedtls_x509_crt *chain,
const unsigned char *buf,
264 int mbedtls_x509_crt_parse(
mbedtls_x509_crt *chain,
const unsigned char *buf,
size_t buflen );
266 #if defined(MBEDTLS_FS_IO) 280 int mbedtls_x509_crt_parse_file(
mbedtls_x509_crt *chain,
const char *path );
295 int mbedtls_x509_crt_parse_path(
mbedtls_x509_crt *chain,
const char *path );
310 int mbedtls_x509_crt_info(
char *buf,
size_t size,
const char *prefix,
325 int mbedtls_x509_crt_verify_info(
char *buf,
size_t size,
const char *prefix,
389 const char *cn, uint32_t *flags,
424 const char *cn, uint32_t *flags,
454 const char *cn, uint32_t *flags,
459 #if defined(MBEDTLS_X509_CHECK_KEY_USAGE) 482 unsigned int usage );
485 #if defined(MBEDTLS_X509_CHECK_EXTENDED_KEY_USAGE) 500 const char *usage_oid,
504 #if defined(MBEDTLS_X509_CRL_PARSE_C) 531 #if defined(MBEDTLS_ECDSA_C) && defined(MBEDTLS_ECP_RESTARTABLE) 547 #if defined(MBEDTLS_X509_CRT_WRITE_C) 590 const char *not_after );
605 const char *issuer_name );
620 const char *subject_name );
661 const char *oid,
size_t oid_len,
663 const unsigned char *val,
size_t val_len );
677 int is_ca,
int max_pathlen );
679 #if defined(MBEDTLS_SHA1_C) 713 unsigned int key_usage );
725 unsigned char ns_cert_type );
755 int (*f_rng)(
void *,
unsigned char *,
size_t),
758 #if defined(MBEDTLS_PEM_WRITE_C) 776 int (*f_rng)(
void *,
unsigned char *,
size_t),
Public key container.
Definition: pk.h:130
mbedtls_x509_sequence subject_alt_names
Definition: x509_crt.h:76
int ext_types
Definition: x509_crt.h:78
uint32_t allowed_curves
Definition: x509_crt.h:112
Definition: x509_crl.h:70
mbedtls_x509_crt * crt
Definition: x509_crt.h:150
mbedtls_pk_type_t
Public key types.
Definition: pk.h:78
Configuration options (set of defines)
char not_after[MBEDTLS_X509_RFC5280_UTC_TIME_LEN+1]
Definition: x509_crt.h:141
struct mbedtls_x509_crt * next
Definition: x509_crt.h:93
mbedtls_x509_name issuer
Definition: x509_crt.h:65
Definition: x509_crt.h:162
mbedtls_x509_buf subject_id
Definition: x509_crt.h:74
struct mbedtls_x509write_cert mbedtls_x509write_cert
mbedtls_x509_buf tbs
Definition: x509_crt.h:56
mbedtls_x509_buf subject_raw
Definition: x509_crt.h:63
mbedtls_x509_buf sig_oid
Definition: x509_crt.h:60
void mbedtls_pk_restart_ctx
Definition: pk.h:147
mbedtls_x509_buf issuer_raw
Definition: x509_crt.h:62
uint32_t flags
Definition: x509_crt.h:151
mbedtls_x509_name subject
Definition: x509_crt.h:66
mbedtls_x509_time valid_to
Definition: x509_crt.h:69
struct mbedtls_x509_crt_profile mbedtls_x509_crt_profile
unsigned char ns_cert_type
Definition: x509_crt.h:86
Definition: x509_crt.h:131
int version
Definition: x509_crt.h:133
mbedtls_x509_buf serial
Definition: x509_crt.h:59
void mbedtls_x509_crt_restart_ctx
Definition: x509_crt.h:199
uint32_t rsa_min_bitlen
Definition: x509_crt.h:113
mbedtls_x509_time valid_from
Definition: x509_crt.h:68
mbedtls_x509_buf raw
Definition: x509_crt.h:55
#define MBEDTLS_X509_RFC5280_UTC_TIME_LEN
Definition: x509_crt.h:122
#define MBEDTLS_X509_MAX_VERIFY_CHAIN_SIZE
Definition: x509_crt.h:157
mbedtls_pk_context * subject_key
Definition: x509_crt.h:135
mbedtls_pk_type_t sig_pk
Definition: x509_crt.h:90
X.509 generic defines and structures.
mbedtls_asn1_named_data * subject
Definition: x509_crt.h:137
mbedtls_pk_context * issuer_key
Definition: x509_crt.h:136
void * sig_opts
Definition: x509_crt.h:91
char not_before[MBEDTLS_X509_RFC5280_UTC_TIME_LEN+1]
Definition: x509_crt.h:140
mbedtls_md_type_t md_alg
Definition: x509_crt.h:139
mbedtls_x509_buf issuer_id
Definition: x509_crt.h:73
Definition: x509_crt.h:149
MPI structure.
Definition: bignum.h:180
X.509 certificate revocation list parsing.
Definition: x509_crt.h:53
struct mbedtls_x509_crt mbedtls_x509_crt
mbedtls_x509_sequence ext_key_usage
Definition: x509_crt.h:84
int max_pathlen
Definition: x509_crt.h:80
unsigned len
Definition: x509_crt.h:165
Definition: x509_crt.h:108
mbedtls_asn1_named_data * extensions
Definition: x509_crt.h:142
unsigned int key_usage
Definition: x509_crt.h:82
uint32_t allowed_pks
Definition: x509_crt.h:111
uint32_t allowed_mds
Definition: x509_crt.h:110
mbedtls_pk_context pk
Definition: x509_crt.h:71
mbedtls_x509_buf sig
Definition: x509_crt.h:88
mbedtls_md_type_t
Supported message digests.
Definition: md.h:58
mbedtls_asn1_named_data * issuer
Definition: x509_crt.h:138
mbedtls_mpi serial
Definition: x509_crt.h:134
mbedtls_x509_buf v3_ext
Definition: x509_crt.h:75
int ca_istrue
Definition: x509_crt.h:79
int version
Definition: x509_crt.h:58
mbedtls_md_type_t sig_md
Definition: x509_crt.h:89