version.h 3.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112
  1. /**
  2. * \file version.h
  3. *
  4. * \brief Run-time version information
  5. */
  6. /*
  7. * Copyright (C) 2006-2015, ARM Limited, All Rights Reserved
  8. * SPDX-License-Identifier: Apache-2.0
  9. *
  10. * Licensed under the Apache License, Version 2.0 (the "License"); you may
  11. * not use this file except in compliance with the License.
  12. * You may obtain a copy of the License at
  13. *
  14. * http://www.apache.org/licenses/LICENSE-2.0
  15. *
  16. * Unless required by applicable law or agreed to in writing, software
  17. * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
  18. * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  19. * See the License for the specific language governing permissions and
  20. * limitations under the License.
  21. *
  22. * This file is part of mbed TLS (https://tls.mbed.org)
  23. */
  24. /*
  25. * This set of compile-time defines and run-time variables can be used to
  26. * determine the version number of the mbed TLS library used.
  27. */
  28. #ifndef MBEDTLS_VERSION_H
  29. #define MBEDTLS_VERSION_H
  30. #if !defined(MBEDTLS_CONFIG_FILE)
  31. #include "config.h"
  32. #else
  33. #include MBEDTLS_CONFIG_FILE
  34. #endif
  35. /**
  36. * The version number x.y.z is split into three parts.
  37. * Major, Minor, Patchlevel
  38. */
  39. #define MBEDTLS_VERSION_MAJOR 2
  40. #define MBEDTLS_VERSION_MINOR 7
  41. #define MBEDTLS_VERSION_PATCH 9
  42. /**
  43. * The single version number has the following structure:
  44. * MMNNPP00
  45. * Major version | Minor version | Patch version
  46. */
  47. #define MBEDTLS_VERSION_NUMBER 0x02070900
  48. #define MBEDTLS_VERSION_STRING "2.7.9"
  49. #define MBEDTLS_VERSION_STRING_FULL "mbed TLS 2.7.9"
  50. #if defined(MBEDTLS_VERSION_C)
  51. #ifdef __cplusplus
  52. extern "C" {
  53. #endif
  54. /**
  55. * Get the version number.
  56. *
  57. * \return The constructed version number in the format
  58. * MMNNPP00 (Major, Minor, Patch).
  59. */
  60. unsigned int mbedtls_version_get_number( void );
  61. /**
  62. * Get the version string ("x.y.z").
  63. *
  64. * \param string The string that will receive the value.
  65. * (Should be at least 9 bytes in size)
  66. */
  67. void mbedtls_version_get_string( char *string );
  68. /**
  69. * Get the full version string ("mbed TLS x.y.z").
  70. *
  71. * \param string The string that will receive the value. The mbed TLS version
  72. * string will use 18 bytes AT MOST including a terminating
  73. * null byte.
  74. * (So the buffer should be at least 18 bytes to receive this
  75. * version string).
  76. */
  77. void mbedtls_version_get_string_full( char *string );
  78. /**
  79. * \brief Check if support for a feature was compiled into this
  80. * mbed TLS binary. This allows you to see at runtime if the
  81. * library was for instance compiled with or without
  82. * Multi-threading support.
  83. *
  84. * \note only checks against defines in the sections "System
  85. * support", "mbed TLS modules" and "mbed TLS feature
  86. * support" in config.h
  87. *
  88. * \param feature The string for the define to check (e.g. "MBEDTLS_AES_C")
  89. *
  90. * \return 0 if the feature is present,
  91. * -1 if the feature is not present and
  92. * -2 if support for feature checking as a whole was not
  93. * compiled in.
  94. */
  95. int mbedtls_version_check_feature( const char *feature );
  96. #ifdef __cplusplus
  97. }
  98. #endif
  99. #endif /* MBEDTLS_VERSION_C */
  100. #endif /* version.h */