Merge remote-tracking branch 'upstream-public/development' into development

Files deleted by us: keep them deleted.

```
git rm $(git status -s | sed -n 's/^DU //p')
```

Individual files with conflicts:

* `README.md`: keep the crypto version.
* `doxygen/input/doc_mainpage.h`: keep the crypto version (with an obsolete Mbed Crypto version number).
* `include/mbedtls/error.h`:
    * `ERROR`: similar additions made through parallel commits, with only whitespace differences. Align with the tls version.
* `library/CMakeLists.txt`: keep the crypto version.
* `library/Makefile`: keep the crypto version.
* `scripts/generate_errors.pl`: keep the crypto version (the relevant changes were made through parallel commits).
* `tests/scripts/check-test-cases.py`:
    * `Results`: keep the crypto version, which has both the new argument to the constructor (added in crypto only) and the class docstring (added through parallel commits).
* `tests/suites/helpers.function`:
    * `ARRAY_LENGTH`, `ASSERT_ALLOC`: additions in the same location. Keep both, in indifferent order.
* `tests/suites/target_test.function`:
    * `receive_uint32`: keep the crypto version which has an additional bug fix. The tls changes made in tls are irrelevant after this bug fix.
* `visualc/VS2010/mbedTLS.vcxproj`: run `scripts/generate_visualc_files.pl`.

Review of non-conflicting changes:

* `all.sh`: 1 change.
    * zlib test components: don't add them.
* `include/CMakeLists.txt`: 1 change.
    * `target_include_directories`: doesn't work as is (different target name). Don't take the change.
* All other non-conflicting changes: take them.
This commit is contained in:
Gilles Peskine 2020-02-03 15:54:32 +01:00
commit 2579675935
7 changed files with 52 additions and 20 deletions

View file

@ -25,8 +25,7 @@
#include MBEDTLS_CONFIG_FILE #include MBEDTLS_CONFIG_FILE
#endif #endif
#if defined(MBEDTLS_ERROR_C) || defined(MBEDTLS_ERROR_STRERROR_DUMMY) #if defined(MBEDTLS_ERROR_STRERROR_DUMMY)
#include "mbedtls/error.h"
#include <string.h> #include <string.h>
#endif #endif

View file

@ -96,7 +96,7 @@ int main( int argc, char *argv[] )
unsigned char IV[16]; unsigned char IV[16];
unsigned char tmp[16]; unsigned char tmp[16];
unsigned char key[512]; unsigned char key[512];
unsigned char digest[32]; unsigned char digest[64];
unsigned char buffer[1024]; unsigned char buffer[1024];
unsigned char diff; unsigned char diff;

View file

@ -19,9 +19,9 @@
## This file is part of Mbed TLS (https://tls.mbed.org) ## This file is part of Mbed TLS (https://tls.mbed.org)
my $py = $0; my $py = $0;
$py =~ s/\.pl$/.py/; $py =~ s/\.pl$/.py/ or die "Unable to determine the name of the Python script";
exec 'python3', $py, @ARGV; exec 'python3', $py, @ARGV;
print STDERR "$0: python3: $!\n"; print STDERR "$0: python3: $!. Trying python instead.\n";
exec 'python', $py, @ARGV; exec 'python', $py, @ARGV;
print STDERR "$0: python: $!\n"; print STDERR "$0: python: $!\n";
exit 127; exit 127;

View file

@ -25,8 +25,7 @@
#include MBEDTLS_CONFIG_FILE #include MBEDTLS_CONFIG_FILE
#endif #endif
#if defined(MBEDTLS_ERROR_C) || defined(MBEDTLS_ERROR_STRERROR_DUMMY) #if defined(MBEDTLS_ERROR_STRERROR_DUMMY)
#include "mbedtls/error.h"
#include <string.h> #include <string.h>
#endif #endif

View file

@ -370,6 +370,38 @@ typedef enum
*/ */
#define MAX( x, y ) ( ( x ) > ( y ) ? ( x ) : ( y ) ) #define MAX( x, y ) ( ( x ) > ( y ) ? ( x ) : ( y ) )
/** Allocate memory dynamically and fail the test case if this fails.
*
* You must set \p pointer to \c NULL before calling this macro and
* put `mbedtls_free( pointer )` in the test's cleanup code.
*
* If \p length is zero, the resulting \p pointer will be \c NULL.
* This is usually what we want in tests since API functions are
* supposed to accept null pointers when a buffer size is zero.
*
* This macro expands to an instruction, not an expression.
* It may jump to the \c exit label.
*
* \param pointer An lvalue where the address of the allocated buffer
* will be stored.
* This expression may be evaluated multiple times.
* \param length Number of elements to allocate.
* This expression may be evaluated multiple times.
*
*/
#define ASSERT_ALLOC( pointer, length ) \
do \
{ \
TEST_ASSERT( ( pointer ) == NULL ); \
if( ( length ) != 0 ) \
{ \
( pointer ) = mbedtls_calloc( sizeof( *( pointer ) ), \
( length ) ); \
TEST_ASSERT( ( pointer ) != NULL ); \
} \
} \
while( 0 )
/* /*
* 32-bit integer manipulation macros (big endian) * 32-bit integer manipulation macros (big endian)
*/ */

View file

@ -525,15 +525,6 @@ int execute_tests( int argc , const char ** argv )
mbedtls_memory_buffer_alloc_init( alloc_buf, sizeof( alloc_buf ) ); mbedtls_memory_buffer_alloc_init( alloc_buf, sizeof( alloc_buf ) );
#endif #endif
if( outcome_file_name != NULL )
{
outcome_file = fopen( outcome_file_name, "a" );
if( outcome_file == NULL )
{
mbedtls_fprintf( stderr, "Unable to open outcome file. Continuing anyway.\n" );
}
}
/* /*
* The C standard doesn't guarantee that all-bits-0 is the representation * The C standard doesn't guarantee that all-bits-0 is the representation
* of a NULL pointer. We do however use that in our code for initializing * of a NULL pointer. We do however use that in our code for initializing
@ -555,6 +546,15 @@ int execute_tests( int argc , const char ** argv )
return( 1 ); return( 1 );
} }
if( outcome_file_name != NULL )
{
outcome_file = fopen( outcome_file_name, "a" );
if( outcome_file == NULL )
{
mbedtls_fprintf( stderr, "Unable to open outcome file. Continuing anyway.\n" );
}
}
while( arg_index < argc ) while( arg_index < argc )
{ {
next_arg = argv[arg_index]; next_arg = argv[arg_index];
@ -607,6 +607,8 @@ int execute_tests( int argc , const char ** argv )
{ {
mbedtls_fprintf( stderr, "Failed to open test file: %s\n", mbedtls_fprintf( stderr, "Failed to open test file: %s\n",
test_filename ); test_filename );
if( outcome_file != NULL )
fclose( outcome_file );
return( 1 ); return( 1 );
} }