Remove MBEDTLS_CHECK_PARAMS option
Signed-off-by: TRodziewicz <tomasz.rodziewicz@mobica.com>
This commit is contained in:
parent
875b5fb7fa
commit
cc7074128a
6 changed files with 4 additions and 185 deletions
|
@ -836,6 +836,10 @@
|
||||||
#error "MBEDTLS_SSL_PROTO_TLS1_1 (TLS v1.1 support) was removed in Mbed TLS 3.0. See https://github.com/ARMmbed/mbedtls/issues/4286"
|
#error "MBEDTLS_SSL_PROTO_TLS1_1 (TLS v1.1 support) was removed in Mbed TLS 3.0. See https://github.com/ARMmbed/mbedtls/issues/4286"
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#if defined(MBEDTLS_CHECK_PARAMS) //no-check-names
|
||||||
|
#error "MBEDTLS_CHECK_PARAMS was removed in Mbed TLS 3.0. See https://github.com/ARMmbed/mbedtls/issues/4313"
|
||||||
|
#endif
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Avoid warning from -pedantic. This is a convenient place for this
|
* Avoid warning from -pedantic. This is a convenient place for this
|
||||||
* workaround since this is included by every single file before the
|
* workaround since this is included by every single file before the
|
||||||
|
|
|
@ -255,72 +255,6 @@
|
||||||
*/
|
*/
|
||||||
//#define MBEDTLS_DEPRECATED_REMOVED
|
//#define MBEDTLS_DEPRECATED_REMOVED
|
||||||
|
|
||||||
/**
|
|
||||||
* \def MBEDTLS_CHECK_PARAMS
|
|
||||||
*
|
|
||||||
* This configuration option controls whether the library validates more of
|
|
||||||
* the parameters passed to it.
|
|
||||||
*
|
|
||||||
* When this flag is not defined, the library only attempts to validate an
|
|
||||||
* input parameter if: (1) they may come from the outside world (such as the
|
|
||||||
* network, the filesystem, etc.) or (2) not validating them could result in
|
|
||||||
* internal memory errors such as overflowing a buffer controlled by the
|
|
||||||
* library. On the other hand, it doesn't attempt to validate parameters whose
|
|
||||||
* values are fully controlled by the application (such as pointers).
|
|
||||||
*
|
|
||||||
* When this flag is defined, the library additionally attempts to validate
|
|
||||||
* parameters that are fully controlled by the application, and should always
|
|
||||||
* be valid if the application code is fully correct and trusted.
|
|
||||||
*
|
|
||||||
* For example, when a function accepts as input a pointer to a buffer that may
|
|
||||||
* contain untrusted data, and its documentation mentions that this pointer
|
|
||||||
* must not be NULL:
|
|
||||||
* - The pointer is checked to be non-NULL only if this option is enabled.
|
|
||||||
* - The content of the buffer is always validated.
|
|
||||||
*
|
|
||||||
* When this flag is defined, if a library function receives a parameter that
|
|
||||||
* is invalid:
|
|
||||||
* 1. The function will invoke the macro MBEDTLS_PARAM_FAILED().
|
|
||||||
* 2. If MBEDTLS_PARAM_FAILED() did not terminate the program, the function
|
|
||||||
* will immediately return. If the function returns an Mbed TLS error code,
|
|
||||||
* the error code in this case is MBEDTLS_ERR_xxx_BAD_INPUT_DATA.
|
|
||||||
*
|
|
||||||
* When defining this flag, you also need to arrange a definition for
|
|
||||||
* MBEDTLS_PARAM_FAILED(). You can do this by any of the following methods:
|
|
||||||
* - By default, the library defines MBEDTLS_PARAM_FAILED() to call a
|
|
||||||
* function mbedtls_param_failed(), but the library does not define this
|
|
||||||
* function. If you do not make any other arrangements, you must provide
|
|
||||||
* the function mbedtls_param_failed() in your application.
|
|
||||||
* See `platform_util.h` for its prototype.
|
|
||||||
* - If you enable the macro #MBEDTLS_CHECK_PARAMS_ASSERT, then the
|
|
||||||
* library defines MBEDTLS_PARAM_FAILED(\c cond) to be `assert(cond)`.
|
|
||||||
* You can still supply an alternative definition of
|
|
||||||
* MBEDTLS_PARAM_FAILED(), which may call `assert`.
|
|
||||||
* - If you define a macro MBEDTLS_PARAM_FAILED() before including `config.h`
|
|
||||||
* or you uncomment the definition of MBEDTLS_PARAM_FAILED() in `config.h`,
|
|
||||||
* the library will call the macro that you defined and will not supply
|
|
||||||
* its own version. Note that if MBEDTLS_PARAM_FAILED() calls `assert`,
|
|
||||||
* you need to enable #MBEDTLS_CHECK_PARAMS_ASSERT so that library source
|
|
||||||
* files include `<assert.h>`.
|
|
||||||
*
|
|
||||||
* Uncomment to enable validation of application-controlled parameters.
|
|
||||||
*/
|
|
||||||
//#define MBEDTLS_CHECK_PARAMS
|
|
||||||
|
|
||||||
/**
|
|
||||||
* \def MBEDTLS_CHECK_PARAMS_ASSERT
|
|
||||||
*
|
|
||||||
* Allow MBEDTLS_PARAM_FAILED() to call `assert`, and make it default to
|
|
||||||
* `assert`. This macro is only used if #MBEDTLS_CHECK_PARAMS is defined.
|
|
||||||
*
|
|
||||||
* If this macro is not defined, then MBEDTLS_PARAM_FAILED() defaults to
|
|
||||||
* calling a function mbedtls_param_failed(). See the documentation of
|
|
||||||
* #MBEDTLS_CHECK_PARAMS for details.
|
|
||||||
*
|
|
||||||
* Uncomment to allow MBEDTLS_PARAM_FAILED() to call `assert`.
|
|
||||||
*/
|
|
||||||
//#define MBEDTLS_CHECK_PARAMS_ASSERT
|
|
||||||
|
|
||||||
/* \} name SECTION: System support */
|
/* \} name SECTION: System support */
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -3385,42 +3319,6 @@
|
||||||
//#define MBEDTLS_PLATFORM_NV_SEED_READ_MACRO mbedtls_platform_std_nv_seed_read /**< Default nv_seed_read function to use, can be undefined */
|
//#define MBEDTLS_PLATFORM_NV_SEED_READ_MACRO mbedtls_platform_std_nv_seed_read /**< Default nv_seed_read function to use, can be undefined */
|
||||||
//#define MBEDTLS_PLATFORM_NV_SEED_WRITE_MACRO mbedtls_platform_std_nv_seed_write /**< Default nv_seed_write function to use, can be undefined */
|
//#define MBEDTLS_PLATFORM_NV_SEED_WRITE_MACRO mbedtls_platform_std_nv_seed_write /**< Default nv_seed_write function to use, can be undefined */
|
||||||
|
|
||||||
/**
|
|
||||||
* \brief This macro is invoked by the library when an invalid parameter
|
|
||||||
* is detected that is only checked with #MBEDTLS_CHECK_PARAMS
|
|
||||||
* (see the documentation of that option for context).
|
|
||||||
*
|
|
||||||
* When you leave this undefined here, the library provides
|
|
||||||
* a default definition. If the macro #MBEDTLS_CHECK_PARAMS_ASSERT
|
|
||||||
* is defined, the default definition is `assert(cond)`,
|
|
||||||
* otherwise the default definition calls a function
|
|
||||||
* mbedtls_param_failed(). This function is declared in
|
|
||||||
* `platform_util.h` for the benefit of the library, but
|
|
||||||
* you need to define in your application.
|
|
||||||
*
|
|
||||||
* When you define this here, this replaces the default
|
|
||||||
* definition in platform_util.h (which no longer declares the
|
|
||||||
* function mbedtls_param_failed()) and it is your responsibility
|
|
||||||
* to make sure this macro expands to something suitable (in
|
|
||||||
* particular, that all the necessary declarations are visible
|
|
||||||
* from within the library - you can ensure that by providing
|
|
||||||
* them in this file next to the macro definition).
|
|
||||||
* If you define this macro to call `assert`, also define
|
|
||||||
* #MBEDTLS_CHECK_PARAMS_ASSERT so that library source files
|
|
||||||
* include `<assert.h>`.
|
|
||||||
*
|
|
||||||
* Note that you may define this macro to expand to nothing, in
|
|
||||||
* which case you don't have to worry about declarations or
|
|
||||||
* definitions. However, you will then be notified about invalid
|
|
||||||
* parameters only in non-void functions, and void function will
|
|
||||||
* just silently return early on invalid parameters, which
|
|
||||||
* partially negates the benefits of enabling
|
|
||||||
* #MBEDTLS_CHECK_PARAMS in the first place, so is discouraged.
|
|
||||||
*
|
|
||||||
* \param cond The expression that should evaluate to true, but doesn't.
|
|
||||||
*/
|
|
||||||
//#define MBEDTLS_PARAM_FAILED( cond ) assert( cond )
|
|
||||||
|
|
||||||
/* PSA options */
|
/* PSA options */
|
||||||
/**
|
/**
|
||||||
* Use HMAC_DRBG with the specified hash algorithm for HMAC_DRBG for the
|
* Use HMAC_DRBG with the specified hash algorithm for HMAC_DRBG for the
|
||||||
|
|
|
@ -39,78 +39,10 @@
|
||||||
extern "C" {
|
extern "C" {
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if defined(MBEDTLS_CHECK_PARAMS)
|
|
||||||
|
|
||||||
#if defined(MBEDTLS_CHECK_PARAMS_ASSERT)
|
|
||||||
/* Allow the user to define MBEDTLS_PARAM_FAILED to something like assert
|
|
||||||
* (which is what our config.h suggests). */
|
|
||||||
#include <assert.h>
|
|
||||||
#endif /* MBEDTLS_CHECK_PARAMS_ASSERT */
|
|
||||||
|
|
||||||
#if defined(MBEDTLS_PARAM_FAILED)
|
|
||||||
/** An alternative definition of MBEDTLS_PARAM_FAILED has been set in config.h.
|
|
||||||
*
|
|
||||||
* This flag can be used to check whether it is safe to assume that
|
|
||||||
* MBEDTLS_PARAM_FAILED() will expand to a call to mbedtls_param_failed().
|
|
||||||
*/
|
|
||||||
#define MBEDTLS_PARAM_FAILED_ALT
|
|
||||||
|
|
||||||
#elif defined(MBEDTLS_CHECK_PARAMS_ASSERT)
|
|
||||||
#define MBEDTLS_PARAM_FAILED( cond ) assert( cond )
|
|
||||||
#define MBEDTLS_PARAM_FAILED_ALT
|
|
||||||
|
|
||||||
#else /* MBEDTLS_PARAM_FAILED */
|
|
||||||
#define MBEDTLS_PARAM_FAILED( cond ) \
|
|
||||||
mbedtls_param_failed( #cond, __FILE__, __LINE__ )
|
|
||||||
|
|
||||||
/**
|
|
||||||
* \brief User supplied callback function for parameter validation failure.
|
|
||||||
* See #MBEDTLS_CHECK_PARAMS for context.
|
|
||||||
*
|
|
||||||
* This function will be called unless an alternative treatement
|
|
||||||
* is defined through the #MBEDTLS_PARAM_FAILED macro.
|
|
||||||
*
|
|
||||||
* This function can return, and the operation will be aborted, or
|
|
||||||
* alternatively, through use of setjmp()/longjmp() can resume
|
|
||||||
* execution in the application code.
|
|
||||||
*
|
|
||||||
* \param failure_condition The assertion that didn't hold.
|
|
||||||
* \param file The file where the assertion failed.
|
|
||||||
* \param line The line in the file where the assertion failed.
|
|
||||||
*/
|
|
||||||
void mbedtls_param_failed( const char *failure_condition,
|
|
||||||
const char *file,
|
|
||||||
int line );
|
|
||||||
#endif /* MBEDTLS_PARAM_FAILED */
|
|
||||||
|
|
||||||
/* Internal macro meant to be called only from within the library. */
|
|
||||||
#define MBEDTLS_INTERNAL_VALIDATE_RET( cond, ret ) \
|
|
||||||
do { \
|
|
||||||
if( !(cond) ) \
|
|
||||||
{ \
|
|
||||||
MBEDTLS_PARAM_FAILED( cond ); \
|
|
||||||
return( ret ); \
|
|
||||||
} \
|
|
||||||
} while( 0 )
|
|
||||||
|
|
||||||
/* Internal macro meant to be called only from within the library. */
|
|
||||||
#define MBEDTLS_INTERNAL_VALIDATE( cond ) \
|
|
||||||
do { \
|
|
||||||
if( !(cond) ) \
|
|
||||||
{ \
|
|
||||||
MBEDTLS_PARAM_FAILED( cond ); \
|
|
||||||
return; \
|
|
||||||
} \
|
|
||||||
} while( 0 )
|
|
||||||
|
|
||||||
#else /* MBEDTLS_CHECK_PARAMS */
|
|
||||||
|
|
||||||
/* Internal macros meant to be called only from within the library. */
|
/* Internal macros meant to be called only from within the library. */
|
||||||
#define MBEDTLS_INTERNAL_VALIDATE_RET( cond, ret ) do { } while( 0 )
|
#define MBEDTLS_INTERNAL_VALIDATE_RET( cond, ret ) do { } while( 0 )
|
||||||
#define MBEDTLS_INTERNAL_VALIDATE( cond ) do { } while( 0 )
|
#define MBEDTLS_INTERNAL_VALIDATE( cond ) do { } while( 0 )
|
||||||
|
|
||||||
#endif /* MBEDTLS_CHECK_PARAMS */
|
|
||||||
|
|
||||||
/* Internal helper macros for deprecating API constants. */
|
/* Internal helper macros for deprecating API constants. */
|
||||||
#if !defined(MBEDTLS_DEPRECATED_REMOVED)
|
#if !defined(MBEDTLS_DEPRECATED_REMOVED)
|
||||||
#if defined(MBEDTLS_DEPRECATED_WARNING)
|
#if defined(MBEDTLS_DEPRECATED_WARNING)
|
||||||
|
|
|
@ -1028,9 +1028,6 @@ psa_status_t psa_wipe_key_slot( psa_key_slot_t *slot )
|
||||||
*/
|
*/
|
||||||
if( slot->lock_count != 1 )
|
if( slot->lock_count != 1 )
|
||||||
{
|
{
|
||||||
#ifdef MBEDTLS_CHECK_PARAMS
|
|
||||||
MBEDTLS_PARAM_FAILED( slot->lock_count == 1 );
|
|
||||||
#endif
|
|
||||||
status = PSA_ERROR_CORRUPTION_DETECTED;
|
status = PSA_ERROR_CORRUPTION_DETECTED;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -409,17 +409,6 @@ psa_status_t psa_unlock_key_slot( psa_key_slot_t *slot )
|
||||||
return( PSA_SUCCESS );
|
return( PSA_SUCCESS );
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
|
||||||
* As the return error code may not be handled in case of multiple errors,
|
|
||||||
* do our best to report if the lock counter is equal to zero: if
|
|
||||||
* available call MBEDTLS_PARAM_FAILED that may terminate execution (if
|
|
||||||
* called as part of the execution of a unit test suite this will stop the
|
|
||||||
* test suite execution).
|
|
||||||
*/
|
|
||||||
#ifdef MBEDTLS_CHECK_PARAMS
|
|
||||||
MBEDTLS_PARAM_FAILED( slot->lock_count > 0 );
|
|
||||||
#endif
|
|
||||||
|
|
||||||
return( PSA_ERROR_CORRUPTION_DETECTED );
|
return( PSA_ERROR_CORRUPTION_DETECTED );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -50,7 +50,6 @@ unless( -f $config_file && -f $query_config_format_file ) {
|
||||||
# throw errors.
|
# throw errors.
|
||||||
my @excluded = qw(
|
my @excluded = qw(
|
||||||
MBEDTLS_SSL_CIPHERSUITES
|
MBEDTLS_SSL_CIPHERSUITES
|
||||||
MBEDTLS_PARAM_FAILED
|
|
||||||
);
|
);
|
||||||
my $excluded_re = join '|', @excluded;
|
my $excluded_re = join '|', @excluded;
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue