diff --git a/configs/config-ccm-psk-tls1_2.h b/configs/config-ccm-psk-tls1_2.h index 51bb96291..cd74d86ca 100644 --- a/configs/config-ccm-psk-tls1_2.h +++ b/configs/config-ccm-psk-tls1_2.h @@ -30,6 +30,8 @@ * See README.txt for usage instructions. */ +#define MBEDTLS_CONFIG_VERSION 1 + /* System support */ //#define MBEDTLS_HAVE_TIME /* Optionally used in Hello messages */ /* Other MBEDTLS_HAVE_XXX flags irrelevant for this configuration */ diff --git a/configs/config-no-entropy.h b/configs/config-no-entropy.h index edba4a078..acfad388d 100644 --- a/configs/config-no-entropy.h +++ b/configs/config-no-entropy.h @@ -29,6 +29,8 @@ * See README.txt for usage instructions. */ +#define MBEDTLS_CONFIG_VERSION 1 + /* System support */ #define MBEDTLS_HAVE_ASM #define MBEDTLS_HAVE_TIME diff --git a/configs/config-suite-b.h b/configs/config-suite-b.h index c70773d63..264826d47 100644 --- a/configs/config-suite-b.h +++ b/configs/config-suite-b.h @@ -33,6 +33,8 @@ * See README.txt for usage instructions. */ +#define MBEDTLS_CONFIG_VERSION 1 + /* System support */ #define MBEDTLS_HAVE_ASM #define MBEDTLS_HAVE_TIME diff --git a/configs/config-symmetric-only.h b/configs/config-symmetric-only.h index 6aff42f1c..6b22cba3c 100644 --- a/configs/config-symmetric-only.h +++ b/configs/config-symmetric-only.h @@ -20,6 +20,8 @@ * limitations under the License. */ +#define MBEDTLS_CONFIG_VERSION 1 + /* System support */ //#define MBEDTLS_HAVE_ASM #define MBEDTLS_HAVE_TIME diff --git a/configs/config-thread.h b/configs/config-thread.h index be889a187..d8ee1c8d7 100644 --- a/configs/config-thread.h +++ b/configs/config-thread.h @@ -32,6 +32,8 @@ * See README.txt for usage instructions. */ +#define MBEDTLS_CONFIG_VERSION 1 + /* System support */ #define MBEDTLS_HAVE_ASM diff --git a/include/mbedtls/build_info.h b/include/mbedtls/build_info.h index ab4ceff00..2498a738b 100644 --- a/include/mbedtls/build_info.h +++ b/include/mbedtls/build_info.h @@ -36,13 +36,26 @@ #include MBEDTLS_CONFIG_FILE #endif +#if !defined(MBEDTLS_CONFIG_VERSION) || \ + MBEDTLS_CONFIG_VERSION != 1 +#error "Invalid config version, MBEDTLS_CONFIG_VERSION != 1" +#endif + /* Target and application specific configurations * * Allow user to override any previous default. * */ +#if defined(MBEDTLS_USER_CONFIG_VERSION) +#error "MBEDTLS_USER_CONFIG_VERSION defined outside MBEDTLS_USER_CONFIG_FILE" +#endif + #if defined(MBEDTLS_USER_CONFIG_FILE) #include MBEDTLS_USER_CONFIG_FILE +#if !defined(MBEDTLS_USER_CONFIG_VERSION) || \ + MBEDTLS_USER_CONFIG_VERSION != MBEDTLS_CONFIG_VERSION +#error "Version mismatch between config file and MBEDTLS_USER_CONFIG_FILE" +#endif #endif #if defined(MBEDTLS_PSA_CRYPTO_CONFIG) diff --git a/include/mbedtls/mbedtls_config.h b/include/mbedtls/mbedtls_config.h index 5212fb3be..af2c438e1 100644 --- a/include/mbedtls/mbedtls_config.h +++ b/include/mbedtls/mbedtls_config.h @@ -24,6 +24,8 @@ * limitations under the License. */ +#define MBEDTLS_CONFIG_VERSION 1 + /** * \name SECTION: System support * diff --git a/tests/scripts/check-names.sh b/tests/scripts/check-names.sh index 2a06adc11..7649970ee 100755 --- a/tests/scripts/check-names.sh +++ b/tests/scripts/check-names.sh @@ -102,7 +102,7 @@ cat $HEADERS $LIBRARY \ | sed -n 's/MBED..._[A-Z0-9_]*/\'"$NL"'&\'"$NL"/gp \ | grep MBEDTLS | sort -u > _MBEDTLS_XXX TYPOS=$( diff _caps _MBEDTLS_XXX | sed -n 's/^> //p' \ - | egrep -v 'XXX|__|_$|^MBEDTLS_.*CONFIG_FILE$' || true ) + | egrep -v 'XXX|__|_$|^MBEDTLS_.*CONFIG_FILE$|^MBEDTLS_USER_CONFIG_VERSION$' || true ) rm _MBEDTLS_XXX _caps if [ "x$TYPOS" = "x" ]; then echo "PASS"