1 /** 2 * \file version.h 3 * 4 * \brief Run-time version information 5 */ 6 /* 7 * Copyright The Mbed TLS Contributors 8 * SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later 9 */ 10 /* 11 * This set of run-time variables can be used to determine the version number of 12 * the Mbed TLS library used. Compile-time version defines for the same can be 13 * found in build_info.h 14 */ 15 #ifndef MBEDTLS_VERSION_H 16 #define MBEDTLS_VERSION_H 17 18 #include "mbedtls/build_info.h" 19 20 #if defined(MBEDTLS_VERSION_C) 21 22 #ifdef __cplusplus 23 extern "C" { 24 #endif 25 26 /** 27 * Get the version number. 28 * 29 * \return The constructed version number in the format 30 * MMNNPP00 (Major, Minor, Patch). 31 */ 32 unsigned int mbedtls_version_get_number(void); 33 34 /** 35 * Get the version string ("x.y.z"). 36 * 37 * \param string The string that will receive the value. 38 * (Should be at least 9 bytes in size) 39 */ 40 void mbedtls_version_get_string(char *string); 41 42 /** 43 * Get the full version string ("Mbed TLS x.y.z"). 44 * 45 * \param string The string that will receive the value. The Mbed TLS version 46 * string will use 18 bytes AT MOST including a terminating 47 * null byte. 48 * (So the buffer should be at least 18 bytes to receive this 49 * version string). 50 */ 51 void mbedtls_version_get_string_full(char *string); 52 53 /** 54 * \brief Check if support for a feature was compiled into this 55 * Mbed TLS binary. This allows you to see at runtime if the 56 * library was for instance compiled with or without 57 * Multi-threading support. 58 * 59 * \note only checks against defines in the sections "System 60 * support", "Mbed TLS modules" and "Mbed TLS feature 61 * support" in mbedtls_config.h 62 * 63 * \param feature The string for the define to check (e.g. "MBEDTLS_AES_C") 64 * 65 * \return 0 if the feature is present, 66 * -1 if the feature is not present and 67 * -2 if support for feature checking as a whole was not 68 * compiled in. 69 */ 70 int mbedtls_version_check_feature(const char *feature); 71 72 #ifdef __cplusplus 73 } 74 #endif 75 76 #endif /* MBEDTLS_VERSION_C */ 77 78 #endif /* version.h */ 79