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 31 #if !defined(MBEDTLS_CONFIG_FILE) 32 #include "config.h" 33 #else 34 #include MBEDTLS_CONFIG_FILE 35 #endif 36 37 /** 38 * The version number x.y.z is split into three parts. 39 * Major, Minor, Patchlevel 40 */ 41 #define MBEDTLS_VERSION_MAJOR 2 42 #define MBEDTLS_VERSION_MINOR 16 43 #define MBEDTLS_VERSION_PATCH 0 44 45 /** 46 * The single version number has the following structure: 47 * MMNNPP00 48 * Major version | Minor version | Patch version 49 */ 50 #define MBEDTLS_VERSION_NUMBER 0x02100000 51 #define MBEDTLS_VERSION_STRING "2.16.0" 52 #define MBEDTLS_VERSION_STRING_FULL "mbed TLS 2.16.0" 53 54 #if defined(MBEDTLS_VERSION_C) 55 56 #ifdef __cplusplus 57 extern "C" { 58 #endif 59 60 /** 61 * Get the version number. 62 * 63 * \return The constructed version number in the format 64 * MMNNPP00 (Major, Minor, Patch). 65 */ 66 unsigned int mbedtls_version_get_number( void ); 67 68 /** 69 * Get the version string ("x.y.z"). 70 * 71 * \param string The string that will receive the value. 72 * (Should be at least 9 bytes in size) 73 */ 74 void mbedtls_version_get_string( char *string ); 75 76 /** 77 * Get the full version string ("mbed TLS x.y.z"). 78 * 79 * \param string The string that will receive the value. The mbed TLS version 80 * string will use 18 bytes AT MOST including a terminating 81 * null byte. 82 * (So the buffer should be at least 18 bytes to receive this 83 * version string). 84 */ 85 void mbedtls_version_get_string_full( char *string ); 86 87 /** 88 * \brief Check if support for a feature was compiled into this 89 * mbed TLS binary. This allows you to see at runtime if the 90 * library was for instance compiled with or without 91 * Multi-threading support. 92 * 93 * \note only checks against defines in the sections "System 94 * support", "mbed TLS modules" and "mbed TLS feature 95 * support" in config.h 96 * 97 * \param feature The string for the define to check (e.g. "MBEDTLS_AES_C") 98 * 99 * \return 0 if the feature is present, 100 * -1 if the feature is not present and 101 * -2 if support for feature checking as a whole was not 102 * compiled in. 103 */ 104 int mbedtls_version_check_feature( const char *feature ); 105 106 #ifdef __cplusplus 107 } 108 #endif 109 110 #endif /* MBEDTLS_VERSION_C */ 111 112 #endif /* version.h */ 113