config_adjust_ssl.h 3.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091
  1. /**
  2. * \file mbedtls/config_adjust_ssl.h
  3. * \brief Adjust TLS configuration
  4. *
  5. * This is an internal header. Do not include it directly.
  6. *
  7. * Automatically enable certain dependencies. Generally, MBEDTLS_xxx
  8. * configurations need to be explicitly enabled by the user: enabling
  9. * MBEDTLS_xxx_A but not MBEDTLS_xxx_B when A requires B results in a
  10. * compilation error. However, we do automatically enable certain options
  11. * in some circumstances. One case is if MBEDTLS_xxx_B is an internal option
  12. * used to identify parts of a module that are used by other module, and we
  13. * don't want to make the symbol MBEDTLS_xxx_B part of the public API.
  14. * Another case is if A didn't depend on B in earlier versions, and we
  15. * want to use B in A but we need to preserve backward compatibility with
  16. * configurations that explicitly activate MBEDTLS_xxx_A but not
  17. * MBEDTLS_xxx_B.
  18. */
  19. /*
  20. * Copyright The Mbed TLS Contributors
  21. * SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
  22. */
  23. #ifndef MBEDTLS_CONFIG_ADJUST_SSL_H
  24. #define MBEDTLS_CONFIG_ADJUST_SSL_H
  25. #if !defined(MBEDTLS_CONFIG_FILES_READ)
  26. #error "Do not include mbedtls/config_adjust_*.h manually! This can lead to problems, " \
  27. "up to and including runtime errors such as buffer overflows. " \
  28. "If you're trying to fix a complaint from check_config.h, just remove " \
  29. "it from your configuration file: since Mbed TLS 3.0, it is included " \
  30. "automatically at the right point."
  31. #endif /* */
  32. /* The following blocks make it easier to disable all of TLS,
  33. * or of TLS 1.2 or 1.3 or DTLS, without having to manually disable all
  34. * key exchanges, options and extensions related to them. */
  35. #if !defined(MBEDTLS_SSL_TLS_C)
  36. #undef MBEDTLS_SSL_CLI_C
  37. #undef MBEDTLS_SSL_SRV_C
  38. #undef MBEDTLS_SSL_PROTO_TLS1_3
  39. #undef MBEDTLS_SSL_PROTO_TLS1_2
  40. #undef MBEDTLS_SSL_PROTO_DTLS
  41. #endif
  42. #if !(defined(MBEDTLS_SSL_SRV_C) && defined(MBEDTLS_SSL_SESSION_TICKETS))
  43. #undef MBEDTLS_SSL_TICKET_C
  44. #endif
  45. #if !defined(MBEDTLS_SSL_PROTO_DTLS)
  46. #undef MBEDTLS_SSL_DTLS_ANTI_REPLAY
  47. #undef MBEDTLS_SSL_DTLS_CONNECTION_ID
  48. #undef MBEDTLS_SSL_DTLS_CONNECTION_ID_COMPAT
  49. #undef MBEDTLS_SSL_DTLS_HELLO_VERIFY
  50. #undef MBEDTLS_SSL_DTLS_SRTP
  51. #undef MBEDTLS_SSL_DTLS_CLIENT_PORT_REUSE
  52. #endif
  53. #if !defined(MBEDTLS_SSL_PROTO_TLS1_2)
  54. #undef MBEDTLS_SSL_ENCRYPT_THEN_MAC
  55. #undef MBEDTLS_SSL_EXTENDED_MASTER_SECRET
  56. #undef MBEDTLS_SSL_RENEGOTIATION
  57. #undef MBEDTLS_KEY_EXCHANGE_RSA_ENABLED
  58. #undef MBEDTLS_KEY_EXCHANGE_DHE_RSA_ENABLED
  59. #undef MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED
  60. #undef MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED
  61. #undef MBEDTLS_KEY_EXCHANGE_PSK_ENABLED
  62. #undef MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED
  63. #undef MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED
  64. #undef MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED
  65. #undef MBEDTLS_KEY_EXCHANGE_ECDH_RSA_ENABLED
  66. #undef MBEDTLS_KEY_EXCHANGE_ECDH_ECDSA_ENABLED
  67. #undef MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED
  68. #endif
  69. #if !defined(MBEDTLS_SSL_PROTO_TLS1_3)
  70. #undef MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED
  71. #undef MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED
  72. #undef MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED
  73. #undef MBEDTLS_SSL_EARLY_DATA
  74. #undef MBEDTLS_SSL_RECORD_SIZE_LIMIT
  75. #endif
  76. #if defined(MBEDTLS_SSL_PROTO_TLS1_2) && \
  77. (defined(MBEDTLS_ECDH_C) || defined(MBEDTLS_ECDSA_C) || \
  78. defined(MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED))
  79. #define MBEDTLS_SSL_TLS1_2_SOME_ECC
  80. #endif
  81. #endif /* MBEDTLS_CONFIG_ADJUST_SSL_H */