x509_internal.h 4.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586
  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. #include "mbedtls/private_access.h"
  13. #include "mbedtls/build_info.h"
  14. #include "mbedtls/x509.h"
  15. #include "mbedtls/asn1.h"
  16. #include "pk_internal.h"
  17. #if defined(MBEDTLS_RSA_C)
  18. #include "mbedtls/rsa.h"
  19. #endif
  20. int mbedtls_x509_get_name(unsigned char **p, const unsigned char *end,
  21. mbedtls_x509_name *cur);
  22. int mbedtls_x509_get_alg_null(unsigned char **p, const unsigned char *end,
  23. mbedtls_x509_buf *alg);
  24. int mbedtls_x509_get_alg(unsigned char **p, const unsigned char *end,
  25. mbedtls_x509_buf *alg, mbedtls_x509_buf *params);
  26. #if defined(MBEDTLS_X509_RSASSA_PSS_SUPPORT)
  27. int mbedtls_x509_get_rsassa_pss_params(const mbedtls_x509_buf *params,
  28. mbedtls_md_type_t *md_alg, mbedtls_md_type_t *mgf_md,
  29. int *salt_len);
  30. #endif
  31. int mbedtls_x509_get_sig(unsigned char **p, const unsigned char *end, mbedtls_x509_buf *sig);
  32. int mbedtls_x509_get_sig_alg(const mbedtls_x509_buf *sig_oid, const mbedtls_x509_buf *sig_params,
  33. mbedtls_md_type_t *md_alg, mbedtls_pk_type_t *pk_alg,
  34. void **sig_opts);
  35. int mbedtls_x509_get_time(unsigned char **p, const unsigned char *end,
  36. mbedtls_x509_time *t);
  37. int mbedtls_x509_get_serial(unsigned char **p, const unsigned char *end,
  38. mbedtls_x509_buf *serial);
  39. int mbedtls_x509_get_ext(unsigned char **p, const unsigned char *end,
  40. mbedtls_x509_buf *ext, int tag);
  41. #if !defined(MBEDTLS_X509_REMOVE_INFO)
  42. int mbedtls_x509_sig_alg_gets(char *buf, size_t size, const mbedtls_x509_buf *sig_oid,
  43. mbedtls_pk_type_t pk_alg, mbedtls_md_type_t md_alg,
  44. const void *sig_opts);
  45. #endif
  46. int mbedtls_x509_key_size_helper(char *buf, size_t buf_size, const char *name);
  47. int mbedtls_x509_set_extension(mbedtls_asn1_named_data **head, const char *oid, size_t oid_len,
  48. int critical, const unsigned char *val,
  49. size_t val_len);
  50. int mbedtls_x509_write_extensions(unsigned char **p, unsigned char *start,
  51. mbedtls_asn1_named_data *first);
  52. int mbedtls_x509_write_names(unsigned char **p, unsigned char *start,
  53. mbedtls_asn1_named_data *first);
  54. int mbedtls_x509_write_sig(unsigned char **p, unsigned char *start,
  55. const char *oid, size_t oid_len,
  56. unsigned char *sig, size_t size,
  57. mbedtls_pk_type_t pk_alg);
  58. int mbedtls_x509_get_ns_cert_type(unsigned char **p,
  59. const unsigned char *end,
  60. unsigned char *ns_cert_type);
  61. int mbedtls_x509_get_key_usage(unsigned char **p,
  62. const unsigned char *end,
  63. unsigned int *key_usage);
  64. int mbedtls_x509_get_subject_alt_name(unsigned char **p,
  65. const unsigned char *end,
  66. mbedtls_x509_sequence *subject_alt_name);
  67. int mbedtls_x509_get_subject_alt_name_ext(unsigned char **p,
  68. const unsigned char *end,
  69. mbedtls_x509_sequence *subject_alt_name);
  70. int mbedtls_x509_info_subject_alt_name(char **buf, size_t *size,
  71. const mbedtls_x509_sequence
  72. *subject_alt_name,
  73. const char *prefix);
  74. int mbedtls_x509_info_cert_type(char **buf, size_t *size,
  75. unsigned char ns_cert_type);
  76. int mbedtls_x509_info_key_usage(char **buf, size_t *size,
  77. unsigned int key_usage);
  78. int mbedtls_x509_write_set_san_common(mbedtls_asn1_named_data **extensions,
  79. const mbedtls_x509_san_list *san_list);
  80. #endif /* MBEDTLS_X509_INTERNAL_H */