1 /** 2 * \file x509.h 3 * 4 * \brief Internal part of the public "x509.h". 5 */ 6 /* 7 * Copyright The Mbed TLS Contributors 8 * SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later 9 */ 10 #ifndef MBEDTLS_X509_INTERNAL_H 11 #define MBEDTLS_X509_INTERNAL_H 12 13 #include "tf_psa_crypto_common.h" 14 #include "mbedtls/build_info.h" 15 #include "mbedtls/private_access.h" 16 17 #include "mbedtls/x509.h" 18 #include "mbedtls/asn1.h" 19 #include "pk_internal.h" 20 21 #if defined(MBEDTLS_RSA_C) 22 #include "mbedtls/rsa.h" 23 #endif 24 25 int mbedtls_x509_get_name(unsigned char **p, const unsigned char *end, 26 mbedtls_x509_name *cur); 27 int mbedtls_x509_get_alg_null(unsigned char **p, const unsigned char *end, 28 mbedtls_x509_buf *alg); 29 int mbedtls_x509_get_alg(unsigned char **p, const unsigned char *end, 30 mbedtls_x509_buf *alg, mbedtls_x509_buf *params); 31 #if defined(MBEDTLS_X509_RSASSA_PSS_SUPPORT) 32 int mbedtls_x509_get_rsassa_pss_params(const mbedtls_x509_buf *params, 33 mbedtls_md_type_t *md_alg, mbedtls_md_type_t *mgf_md, 34 int *salt_len); 35 #endif 36 int mbedtls_x509_get_sig(unsigned char **p, const unsigned char *end, mbedtls_x509_buf *sig); 37 int mbedtls_x509_get_sig_alg(const mbedtls_x509_buf *sig_oid, const mbedtls_x509_buf *sig_params, 38 mbedtls_md_type_t *md_alg, mbedtls_pk_sigalg_t *pk_alg); 39 int mbedtls_x509_get_time(unsigned char **p, const unsigned char *end, 40 mbedtls_x509_time *t); 41 int mbedtls_x509_get_serial(unsigned char **p, const unsigned char *end, 42 mbedtls_x509_buf *serial); 43 int mbedtls_x509_get_ext(unsigned char **p, const unsigned char *end, 44 mbedtls_x509_buf *ext, int tag); 45 #if !defined(MBEDTLS_X509_REMOVE_INFO) 46 int mbedtls_x509_sig_alg_gets(char *buf, size_t size, const mbedtls_x509_buf *sig_oid, 47 mbedtls_pk_sigalg_t pk_alg, mbedtls_md_type_t md_alg); 48 #endif 49 int mbedtls_x509_key_size_helper(char *buf, size_t buf_size, const char *name); 50 int mbedtls_x509_set_extension(mbedtls_asn1_named_data **head, const char *oid, size_t oid_len, 51 int critical, const unsigned char *val, 52 size_t val_len); 53 int mbedtls_x509_write_extensions(unsigned char **p, unsigned char *start, 54 mbedtls_asn1_named_data *first); 55 int mbedtls_x509_write_names(unsigned char **p, unsigned char *start, 56 mbedtls_asn1_named_data *first); 57 int mbedtls_x509_write_sig(unsigned char **p, unsigned char *start, 58 const char *oid, size_t oid_len, 59 unsigned char *sig, size_t size, 60 mbedtls_pk_sigalg_t pk_alg); 61 int mbedtls_x509_get_ns_cert_type(unsigned char **p, 62 const unsigned char *end, 63 unsigned char *ns_cert_type); 64 int mbedtls_x509_get_key_usage(unsigned char **p, 65 const unsigned char *end, 66 unsigned int *key_usage); 67 int mbedtls_x509_get_subject_alt_name(unsigned char **p, 68 const unsigned char *end, 69 mbedtls_x509_sequence *subject_alt_name); 70 int mbedtls_x509_get_subject_alt_name_ext(unsigned char **p, 71 const unsigned char *end, 72 mbedtls_x509_sequence *subject_alt_name); 73 int mbedtls_x509_info_subject_alt_name(char **buf, size_t *size, 74 const mbedtls_x509_sequence 75 *subject_alt_name, 76 const char *prefix); 77 int mbedtls_x509_info_cert_type(char **buf, size_t *size, 78 unsigned char ns_cert_type); 79 int mbedtls_x509_info_key_usage(char **buf, size_t *size, 80 unsigned int key_usage); 81 82 int mbedtls_x509_write_set_san_common(mbedtls_asn1_named_data **extensions, 83 const mbedtls_x509_san_list *san_list); 84 85 #endif /* MBEDTLS_X509_INTERNAL_H */ 86