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 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 /* 23 * This set of run-time variables can be used to determine the version number of 24 * the Mbed TLS library used. Compile-time version defines for the same can be 25 * found in build_info.h 26 */ 27 #ifndef MBEDTLS_VERSION_H 28 #define MBEDTLS_VERSION_H 29 30 #include "mbedtls/build_info.h" 31 32 #if defined(MBEDTLS_VERSION_C) 33 34 #ifdef __cplusplus 35 extern "C" { 36 #endif 37 38 /** 39 * Get the version number. 40 * 41 * \return The constructed version number in the format 42 * MMNNPP00 (Major, Minor, Patch). 43 */ 44 unsigned int mbedtls_version_get_number( void ); 45 46 /** 47 * Get the version string ("x.y.z"). 48 * 49 * \param string The string that will receive the value. 50 * (Should be at least 9 bytes in size) 51 */ 52 void mbedtls_version_get_string( char *string ); 53 54 /** 55 * Get the full version string ("mbed TLS x.y.z"). 56 * 57 * \param string The string that will receive the value. The mbed TLS version 58 * string will use 18 bytes AT MOST including a terminating 59 * null byte. 60 * (So the buffer should be at least 18 bytes to receive this 61 * version string). 62 */ 63 void mbedtls_version_get_string_full( char *string ); 64 65 /** 66 * \brief Check if support for a feature was compiled into this 67 * mbed TLS binary. This allows you to see at runtime if the 68 * library was for instance compiled with or without 69 * Multi-threading support. 70 * 71 * \note only checks against defines in the sections "System 72 * support", "mbed TLS modules" and "mbed TLS feature 73 * support" in mbedtls_config.h 74 * 75 * \param feature The string for the define to check (e.g. "MBEDTLS_AES_C") 76 * 77 * \return 0 if the feature is present, 78 * -1 if the feature is not present and 79 * -2 if support for feature checking as a whole was not 80 * compiled in. 81 */ 82 int mbedtls_version_check_feature( const char *feature ); 83 84 #ifdef __cplusplus 85 } 86 #endif 87 88 #endif /* MBEDTLS_VERSION_C */ 89 90 #endif /* version.h */ 91