blob: 7717a61a72551a4f1c665f84f8d9808eab0f949c [file] [log] [blame]
Paul Bakker33b43f12013-08-20 11:48:36 +02001/* BEGIN_HEADER */
Paul Bakker1f761152010-02-18 18:16:31 +00002#include <polarssl/debug.h>
3
4struct buffer_data
5{
6 char buf[2000];
7 char *ptr;
8};
9
Paul Bakkerff60ee62010-03-16 21:09:09 +000010void string_debug(void *data, int level, const char *str)
Paul Bakker1f761152010-02-18 18:16:31 +000011{
12 struct buffer_data *buffer = (struct buffer_data *) data;
Paul Bakker26b41a82011-07-13 14:53:58 +000013 ((void) level);
Paul Bakker1f761152010-02-18 18:16:31 +000014
15 memcpy(buffer->ptr, str, strlen(str));
16 buffer->ptr += strlen(str);
Paul Bakker92478c32014-04-25 15:18:34 +020017
18 /* Detect if debug messages output partial lines and mark them */
19 if( *(buffer->ptr - 1) != '\n' )
20 {
21 *buffer->ptr = '*';
22 buffer->ptr++;
23 }
Paul Bakker1f761152010-02-18 18:16:31 +000024}
Paul Bakker33b43f12013-08-20 11:48:36 +020025/* END_HEADER */
Paul Bakker1f761152010-02-18 18:16:31 +000026
Paul Bakker33b43f12013-08-20 11:48:36 +020027/* BEGIN_DEPENDENCIES
Paul Bakker57ffa552014-04-25 14:29:10 +020028 * depends_on:POLARSSL_DEBUG_C:POLARSSL_SSL_TLS_C
Paul Bakker33b43f12013-08-20 11:48:36 +020029 * END_DEPENDENCIES
30 */
Paul Bakker5690efc2011-05-26 13:16:06 +000031
Paul Bakker57ffa552014-04-25 14:29:10 +020032/* BEGIN_CASE */
Paul Bakkerc73079a2014-04-25 16:34:30 +020033void debug_print_msg_threshold( int threshold, int level, char *file, int line,
34 char *result_str )
35{
36 ssl_context ssl;
37 struct buffer_data buffer;
38
39 memset( &ssl, 0, sizeof( ssl_context ) );
40 memset( buffer.buf, 0, 2000 );
41 buffer.ptr = buffer.buf;
42
43 debug_set_log_mode( POLARSSL_DEBUG_LOG_FULL );
44 debug_set_threshold( threshold );
45 ssl_set_dbg(&ssl, string_debug, &buffer);
46
47 debug_print_msg( &ssl, level, file, line,
48 debug_fmt("Text message, 2 == %d", 2 ) );
49
50 TEST_ASSERT( strcmp( buffer.buf, result_str ) == 0 );
51}
52/* END_CASE */
53
54/* BEGIN_CASE */
Paul Bakkereaebbd52014-04-25 15:04:14 +020055void debug_print_ret( int mode, char *file, int line, char *text, int value,
Paul Bakker57ffa552014-04-25 14:29:10 +020056 char *result_str )
57{
58 ssl_context ssl;
59 struct buffer_data buffer;
60
61 memset( &ssl, 0, sizeof( ssl_context ) );
62 memset( buffer.buf, 0, 2000 );
63 buffer.ptr = buffer.buf;
64
Paul Bakkereaebbd52014-04-25 15:04:14 +020065 debug_set_log_mode( mode );
Paul Bakker57ffa552014-04-25 14:29:10 +020066 ssl_set_dbg(&ssl, string_debug, &buffer);
67
68 debug_print_ret( &ssl, 0, file, line, text, value);
69
70 TEST_ASSERT( strcmp( buffer.buf, result_str ) == 0 );
71}
72/* END_CASE */
73
74/* BEGIN_CASE */
Paul Bakkereaebbd52014-04-25 15:04:14 +020075void debug_print_buf( int mode, char *file, int line, char *text,
76 char *data_string, char *result_str )
Paul Bakker57ffa552014-04-25 14:29:10 +020077{
78 unsigned char data[10000];
79 ssl_context ssl;
80 struct buffer_data buffer;
81 size_t data_len;
82
83 memset( &data, 0, sizeof( data ) );
84 memset( &ssl, 0, sizeof( ssl_context ) );
85 memset( buffer.buf, 0, 2000 );
86 buffer.ptr = buffer.buf;
87
88 data_len = unhexify( data, data_string );
89
Paul Bakkereaebbd52014-04-25 15:04:14 +020090 debug_set_log_mode( mode );
Paul Bakker57ffa552014-04-25 14:29:10 +020091 ssl_set_dbg(&ssl, string_debug, &buffer);
92
93 debug_print_buf( &ssl, 0, file, line, text, data, data_len );
94
95 TEST_ASSERT( strcmp( buffer.buf, result_str ) == 0 );
96}
97/* END_CASE */
98
Paul Bakker36713e82013-09-17 13:25:29 +020099/* BEGIN_CASE depends_on:POLARSSL_FS_IO:POLARSSL_X509_CRT_PARSE_C */
Paul Bakkereaebbd52014-04-25 15:04:14 +0200100void debug_print_crt( int mode, char *crt_file, char *file, int line,
101 char *prefix, char *result_str )
Paul Bakker1f761152010-02-18 18:16:31 +0000102{
Paul Bakkerc559c7a2013-09-18 14:13:26 +0200103 x509_crt crt;
Paul Bakker1f761152010-02-18 18:16:31 +0000104 ssl_context ssl;
105 struct buffer_data buffer;
106
Paul Bakker369d2eb2013-09-18 11:58:25 +0200107 x509_crt_init( &crt );
Paul Bakker1f761152010-02-18 18:16:31 +0000108 memset( &ssl, 0, sizeof( ssl_context ) );
109 memset( buffer.buf, 0, 2000 );
Paul Bakker57ffa552014-04-25 14:29:10 +0200110 buffer.ptr = buffer.buf;
Paul Bakker1f761152010-02-18 18:16:31 +0000111
Paul Bakkereaebbd52014-04-25 15:04:14 +0200112 debug_set_log_mode( mode );
Paul Bakker1f761152010-02-18 18:16:31 +0000113 ssl_set_dbg(&ssl, string_debug, &buffer);
114
Paul Bakkerddf26b42013-09-18 13:46:23 +0200115 TEST_ASSERT( x509_crt_parse_file( &crt, crt_file ) == 0 );
Paul Bakker33b43f12013-08-20 11:48:36 +0200116 debug_print_crt( &ssl, 0, file, line, prefix, &crt);
Paul Bakker1f761152010-02-18 18:16:31 +0000117
Paul Bakker33b43f12013-08-20 11:48:36 +0200118 TEST_ASSERT( strcmp( buffer.buf, result_str ) == 0 );
Paul Bakker58ef6ec2013-01-03 11:33:48 +0100119
Paul Bakker36713e82013-09-17 13:25:29 +0200120 x509_crt_free( &crt );
Paul Bakker1f761152010-02-18 18:16:31 +0000121}
Paul Bakker33b43f12013-08-20 11:48:36 +0200122/* END_CASE */
Paul Bakkerbe4e7dc2011-03-14 20:41:31 +0000123
Paul Bakker57ffa552014-04-25 14:29:10 +0200124/* BEGIN_CASE depends_on:POLARSSL_BIGNUM_C */
Paul Bakkereaebbd52014-04-25 15:04:14 +0200125void debug_print_mpi( int mode, int radix, char *value, char *file, int line,
Paul Bakker33b43f12013-08-20 11:48:36 +0200126 char *prefix, char *result_str )
Paul Bakkerbe4e7dc2011-03-14 20:41:31 +0000127{
128 ssl_context ssl;
129 struct buffer_data buffer;
130 mpi val;
131
Paul Bakker6c591fa2011-05-05 11:49:20 +0000132 mpi_init( &val );
Paul Bakkerbe4e7dc2011-03-14 20:41:31 +0000133
134 memset( &ssl, 0, sizeof( ssl_context ) );
135 memset( buffer.buf, 0, 2000 );
Paul Bakker57ffa552014-04-25 14:29:10 +0200136 buffer.ptr = buffer.buf;
Paul Bakkerbe4e7dc2011-03-14 20:41:31 +0000137
Paul Bakker33b43f12013-08-20 11:48:36 +0200138 TEST_ASSERT( mpi_read_string( &val, radix, value ) == 0 );
Paul Bakkereaebbd52014-04-25 15:04:14 +0200139
140 debug_set_log_mode( mode );
Paul Bakkerbe4e7dc2011-03-14 20:41:31 +0000141 ssl_set_dbg(&ssl, string_debug, &buffer);
142
Paul Bakker33b43f12013-08-20 11:48:36 +0200143 debug_print_mpi( &ssl, 0, file, line, prefix, &val);
Paul Bakkerbe4e7dc2011-03-14 20:41:31 +0000144
Paul Bakker33b43f12013-08-20 11:48:36 +0200145 TEST_ASSERT( strcmp( buffer.buf, result_str ) == 0 );
Paul Bakker6c591fa2011-05-05 11:49:20 +0000146
147 mpi_free( &val );
Paul Bakkerbe4e7dc2011-03-14 20:41:31 +0000148}
Paul Bakker33b43f12013-08-20 11:48:36 +0200149/* END_CASE */