mirror of
				https://github.com/yuzu-emu/mbedtls.git
				synced 2025-10-28 13:47:02 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			152 lines
		
	
	
		
			3.8 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			152 lines
		
	
	
		
			3.8 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
| /* BEGIN_HEADER */
 | |
| #include "polarssl/debug.h"
 | |
| 
 | |
| struct buffer_data
 | |
| {
 | |
|     char buf[2000];
 | |
|     char *ptr;
 | |
| };
 | |
| 
 | |
| void string_debug(void *data, int level, const char *str)
 | |
| {
 | |
|     struct buffer_data *buffer = (struct buffer_data *) data;
 | |
|     ((void) level);
 | |
| 
 | |
|     memcpy(buffer->ptr, str, strlen(str));
 | |
|     buffer->ptr += strlen(str);
 | |
| 
 | |
|     /* Detect if debug messages output partial lines and mark them */
 | |
|     if( *(buffer->ptr - 1) != '\n' )
 | |
|     {
 | |
|         *buffer->ptr = '*';
 | |
|         buffer->ptr++;
 | |
|     }
 | |
| }
 | |
| /* END_HEADER */
 | |
| 
 | |
| /* BEGIN_DEPENDENCIES
 | |
|  * depends_on:POLARSSL_DEBUG_C:POLARSSL_SSL_TLS_C
 | |
|  * END_DEPENDENCIES
 | |
|  */
 | |
| 
 | |
| /* BEGIN_CASE */
 | |
| void debug_print_msg_threshold( int threshold, int level, char *file, int line,
 | |
|                                 char *result_str )
 | |
| {
 | |
|     ssl_context ssl;
 | |
|     struct buffer_data buffer;
 | |
| 
 | |
|     memset( &ssl, 0, sizeof( ssl_context ) );
 | |
|     memset( buffer.buf, 0, 2000 );
 | |
|     buffer.ptr = buffer.buf;
 | |
| 
 | |
|     debug_set_log_mode( POLARSSL_DEBUG_LOG_FULL );
 | |
|     debug_set_threshold( threshold );
 | |
|     ssl_set_dbg(&ssl, string_debug, &buffer);
 | |
| 
 | |
|     debug_print_msg_free( &ssl, level, file, line,
 | |
|                           debug_fmt("Text message, 2 == %d", 2 ) );
 | |
| 
 | |
|     TEST_ASSERT( strcmp( buffer.buf, result_str ) == 0 );
 | |
| }
 | |
| /* END_CASE */
 | |
| 
 | |
| /* BEGIN_CASE */
 | |
| void debug_print_ret( int mode, char *file, int line, char *text, int value,
 | |
|                       char *result_str )
 | |
| {
 | |
|     ssl_context ssl;
 | |
|     struct buffer_data buffer;
 | |
| 
 | |
|     memset( &ssl, 0, sizeof( ssl_context ) );
 | |
|     memset( buffer.buf, 0, 2000 );
 | |
|     buffer.ptr = buffer.buf;
 | |
| 
 | |
|     debug_set_log_mode( mode );
 | |
|     ssl_set_dbg(&ssl, string_debug, &buffer);
 | |
| 
 | |
|     debug_print_ret( &ssl, 0, file, line, text, value);
 | |
| 
 | |
|     TEST_ASSERT( strcmp( buffer.buf, result_str ) == 0 );
 | |
| }
 | |
| /* END_CASE */
 | |
| 
 | |
| /* BEGIN_CASE */
 | |
| void debug_print_buf( int mode, char *file, int line, char *text,
 | |
|                       char *data_string, char *result_str )
 | |
| {
 | |
|     unsigned char data[10000];
 | |
|     ssl_context ssl;
 | |
|     struct buffer_data buffer;
 | |
|     size_t data_len;
 | |
| 
 | |
|     memset( &data, 0, sizeof( data ) );
 | |
|     memset( &ssl, 0, sizeof( ssl_context ) );
 | |
|     memset( buffer.buf, 0, 2000 );
 | |
|     buffer.ptr = buffer.buf;
 | |
| 
 | |
|     data_len = unhexify( data, data_string );
 | |
| 
 | |
|     debug_set_log_mode( mode );
 | |
|     ssl_set_dbg(&ssl, string_debug, &buffer);
 | |
| 
 | |
|     debug_print_buf( &ssl, 0, file, line, text, data, data_len );
 | |
| 
 | |
|     TEST_ASSERT( strcmp( buffer.buf, result_str ) == 0 );
 | |
| }
 | |
| /* END_CASE */
 | |
| 
 | |
| /* BEGIN_CASE depends_on:POLARSSL_FS_IO:POLARSSL_X509_CRT_PARSE_C */
 | |
| void debug_print_crt( int mode, char *crt_file, char *file, int line,
 | |
|                       char *prefix, char *result_str )
 | |
| {
 | |
|     x509_crt   crt;
 | |
|     ssl_context ssl;
 | |
|     struct buffer_data buffer;
 | |
| 
 | |
|     x509_crt_init( &crt );
 | |
|     memset( &ssl, 0, sizeof( ssl_context ) );
 | |
|     memset( buffer.buf, 0, 2000 );
 | |
|     buffer.ptr = buffer.buf;
 | |
| 
 | |
|     debug_set_log_mode( mode );
 | |
|     ssl_set_dbg(&ssl, string_debug, &buffer);
 | |
| 
 | |
|     TEST_ASSERT( x509_crt_parse_file( &crt, crt_file ) == 0 );
 | |
|     debug_print_crt( &ssl, 0, file, line, prefix, &crt);
 | |
| 
 | |
|     TEST_ASSERT( strcmp( buffer.buf, result_str ) == 0 );
 | |
| 
 | |
| exit:
 | |
|     x509_crt_free( &crt );
 | |
| }
 | |
| /* END_CASE */
 | |
| 
 | |
| /* BEGIN_CASE depends_on:POLARSSL_BIGNUM_C */
 | |
| void debug_print_mpi( int mode, int radix, char *value, char *file, int line,
 | |
|                       char *prefix, char *result_str )
 | |
| {
 | |
|     ssl_context ssl;
 | |
|     struct buffer_data buffer;
 | |
|     mpi val;
 | |
| 
 | |
|     mpi_init( &val );
 | |
| 
 | |
|     memset( &ssl, 0, sizeof( ssl_context ) );
 | |
|     memset( buffer.buf, 0, 2000 );
 | |
|     buffer.ptr = buffer.buf;
 | |
| 
 | |
|     TEST_ASSERT( mpi_read_string( &val, radix, value ) == 0 );
 | |
| 
 | |
|     debug_set_log_mode( mode );
 | |
|     ssl_set_dbg(&ssl, string_debug, &buffer);
 | |
| 
 | |
|     debug_print_mpi( &ssl, 0, file, line, prefix, &val);
 | |
| 
 | |
|     TEST_ASSERT( strcmp( buffer.buf, result_str ) == 0 );
 | |
| 
 | |
| exit:
 | |
|     mpi_free( &val );
 | |
| }
 | |
| /* END_CASE */
 |