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