version.h 3.3 KB

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