123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195 |
- /* BEGIN_HEADER */
- #include "mbedtls/debug.h"
- #include "string.h"
- struct buffer_data
- {
- char buf[2000];
- char *ptr;
- };
- void string_debug(void *data, int level, const char *file, int line, const char *str)
- {
- struct buffer_data *buffer = (struct buffer_data *) data;
- char *p = buffer->ptr;
- ((void) level);
- memcpy( p, file, strlen( file ) );
- p += strlen( file );
- *p++ = '(';
- *p++ = '0' + ( line / 1000 ) % 10;
- *p++ = '0' + ( line / 100 ) % 10;
- *p++ = '0' + ( line / 10 ) % 10;
- *p++ = '0' + ( line / 1 ) % 10;
- *p++ = ')';
- *p++ = ':';
- *p++ = ' ';
- #if defined(MBEDTLS_THREADING_C)
- /* Skip "thread ID" (up to the first space) as it is not predictable */
- while( *str++ != ' ' );
- #endif
- memcpy( p, str, strlen( str ) );
- p += strlen( str );
- /* Detect if debug messages output partial lines and mark them */
- if( p[-1] != '\n' )
- *p++ = '*';
- buffer->ptr = p;
- }
- /* END_HEADER */
- /* BEGIN_DEPENDENCIES
- * depends_on:MBEDTLS_DEBUG_C:MBEDTLS_SSL_TLS_C
- * END_DEPENDENCIES
- */
- /* BEGIN_CASE */
- void debug_print_msg_threshold( int threshold, int level, char * file,
- int line, char * result_str )
- {
- mbedtls_ssl_context ssl;
- mbedtls_ssl_config conf;
- struct buffer_data buffer;
- mbedtls_ssl_init( &ssl );
- mbedtls_ssl_config_init( &conf );
- memset( buffer.buf, 0, 2000 );
- buffer.ptr = buffer.buf;
- TEST_ASSERT( mbedtls_ssl_setup( &ssl, &conf ) == 0 );
- mbedtls_debug_set_threshold( threshold );
- mbedtls_ssl_conf_dbg( &conf, string_debug, &buffer);
- mbedtls_debug_print_msg( &ssl, level, file, line,
- "Text message, 2 == %d", 2 );
- TEST_ASSERT( strcmp( buffer.buf, result_str ) == 0 );
- exit:
- mbedtls_ssl_free( &ssl );
- mbedtls_ssl_config_free( &conf );
- }
- /* END_CASE */
- /* BEGIN_CASE */
- void mbedtls_debug_print_ret( char * file, int line, char * text, int value,
- char * result_str )
- {
- mbedtls_ssl_context ssl;
- mbedtls_ssl_config conf;
- struct buffer_data buffer;
- mbedtls_ssl_init( &ssl );
- mbedtls_ssl_config_init( &conf );
- memset( buffer.buf, 0, 2000 );
- buffer.ptr = buffer.buf;
- TEST_ASSERT( mbedtls_ssl_setup( &ssl, &conf ) == 0 );
- mbedtls_ssl_conf_dbg( &conf, string_debug, &buffer);
- mbedtls_debug_print_ret( &ssl, 0, file, line, text, value);
- TEST_ASSERT( strcmp( buffer.buf, result_str ) == 0 );
- exit:
- mbedtls_ssl_free( &ssl );
- mbedtls_ssl_config_free( &conf );
- }
- /* END_CASE */
- /* BEGIN_CASE */
- void mbedtls_debug_print_buf( char * file, int line, char * text,
- data_t * data, char * result_str )
- {
- mbedtls_ssl_context ssl;
- mbedtls_ssl_config conf;
- struct buffer_data buffer;
- mbedtls_ssl_init( &ssl );
- mbedtls_ssl_config_init( &conf );
- memset( buffer.buf, 0, 2000 );
- buffer.ptr = buffer.buf;
- TEST_ASSERT( mbedtls_ssl_setup( &ssl, &conf ) == 0 );
- mbedtls_ssl_conf_dbg( &conf, string_debug, &buffer);
- mbedtls_debug_print_buf( &ssl, 0, file, line, text, data->x, data->len );
- TEST_ASSERT( strcmp( buffer.buf, result_str ) == 0 );
- exit:
- mbedtls_ssl_free( &ssl );
- mbedtls_ssl_config_free( &conf );
- }
- /* END_CASE */
- /* BEGIN_CASE depends_on:MBEDTLS_FS_IO:MBEDTLS_X509_CRT_PARSE_C */
- void mbedtls_debug_print_crt( char * crt_file, char * file, int line,
- char * prefix, char * result_str )
- {
- mbedtls_x509_crt crt;
- mbedtls_ssl_context ssl;
- mbedtls_ssl_config conf;
- struct buffer_data buffer;
- mbedtls_ssl_init( &ssl );
- mbedtls_ssl_config_init( &conf );
- mbedtls_x509_crt_init( &crt );
- memset( buffer.buf, 0, 2000 );
- buffer.ptr = buffer.buf;
- TEST_ASSERT( mbedtls_ssl_setup( &ssl, &conf ) == 0 );
- mbedtls_ssl_conf_dbg( &conf, string_debug, &buffer);
- TEST_ASSERT( mbedtls_x509_crt_parse_file( &crt, crt_file ) == 0 );
- mbedtls_debug_print_crt( &ssl, 0, file, line, prefix, &crt);
- TEST_ASSERT( strcmp( buffer.buf, result_str ) == 0 );
- exit:
- mbedtls_x509_crt_free( &crt );
- mbedtls_ssl_free( &ssl );
- mbedtls_ssl_config_free( &conf );
- }
- /* END_CASE */
- /* BEGIN_CASE depends_on:MBEDTLS_BIGNUM_C */
- void mbedtls_debug_print_mpi( int radix, char * value, char * file, int line,
- char * prefix, char * result_str )
- {
- mbedtls_ssl_context ssl;
- mbedtls_ssl_config conf;
- struct buffer_data buffer;
- mbedtls_mpi val;
- mbedtls_ssl_init( &ssl );
- mbedtls_ssl_config_init( &conf );
- mbedtls_mpi_init( &val );
- memset( buffer.buf, 0, 2000 );
- buffer.ptr = buffer.buf;
- TEST_ASSERT( mbedtls_ssl_setup( &ssl, &conf ) == 0 );
- TEST_ASSERT( mbedtls_test_read_mpi( &val, radix, value ) == 0 );
- mbedtls_ssl_conf_dbg( &conf, string_debug, &buffer);
- mbedtls_debug_print_mpi( &ssl, 0, file, line, prefix, &val);
- TEST_ASSERT( strcmp( buffer.buf, result_str ) == 0 );
- exit:
- mbedtls_mpi_free( &val );
- mbedtls_ssl_free( &ssl );
- mbedtls_ssl_config_free( &conf );
- }
- /* END_CASE */
|