blob: 3a5adaf9a5b27ef61fb69fc17bbce092711016b2 [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 Bakkereaebbd52014-04-25 15:04:14 +020033void debug_print_ret( int mode, char *file, int line, char *text, int value,
Paul Bakker57ffa552014-04-25 14:29:10 +020034 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
Paul Bakkereaebbd52014-04-25 15:04:14 +020043 debug_set_log_mode( mode );
Paul Bakker57ffa552014-04-25 14:29:10 +020044 ssl_set_dbg(&ssl, string_debug, &buffer);
45
46 debug_print_ret( &ssl, 0, file, line, text, value);
47
48 TEST_ASSERT( strcmp( buffer.buf, result_str ) == 0 );
49}
50/* END_CASE */
51
52/* BEGIN_CASE */
Paul Bakkereaebbd52014-04-25 15:04:14 +020053void debug_print_buf( int mode, char *file, int line, char *text,
54 char *data_string, char *result_str )
Paul Bakker57ffa552014-04-25 14:29:10 +020055{
56 unsigned char data[10000];
57 ssl_context ssl;
58 struct buffer_data buffer;
59 size_t data_len;
60
61 memset( &data, 0, sizeof( data ) );
62 memset( &ssl, 0, sizeof( ssl_context ) );
63 memset( buffer.buf, 0, 2000 );
64 buffer.ptr = buffer.buf;
65
66 data_len = unhexify( data, data_string );
67
Paul Bakkereaebbd52014-04-25 15:04:14 +020068 debug_set_log_mode( mode );
Paul Bakker57ffa552014-04-25 14:29:10 +020069 ssl_set_dbg(&ssl, string_debug, &buffer);
70
71 debug_print_buf( &ssl, 0, file, line, text, data, data_len );
72
73 TEST_ASSERT( strcmp( buffer.buf, result_str ) == 0 );
74}
75/* END_CASE */
76
Paul Bakker36713e82013-09-17 13:25:29 +020077/* BEGIN_CASE depends_on:POLARSSL_FS_IO:POLARSSL_X509_CRT_PARSE_C */
Paul Bakkereaebbd52014-04-25 15:04:14 +020078void debug_print_crt( int mode, char *crt_file, char *file, int line,
79 char *prefix, char *result_str )
Paul Bakker1f761152010-02-18 18:16:31 +000080{
Paul Bakkerc559c7a2013-09-18 14:13:26 +020081 x509_crt crt;
Paul Bakker1f761152010-02-18 18:16:31 +000082 ssl_context ssl;
83 struct buffer_data buffer;
84
Paul Bakker369d2eb2013-09-18 11:58:25 +020085 x509_crt_init( &crt );
Paul Bakker1f761152010-02-18 18:16:31 +000086 memset( &ssl, 0, sizeof( ssl_context ) );
87 memset( buffer.buf, 0, 2000 );
Paul Bakker57ffa552014-04-25 14:29:10 +020088 buffer.ptr = buffer.buf;
Paul Bakker1f761152010-02-18 18:16:31 +000089
Paul Bakkereaebbd52014-04-25 15:04:14 +020090 debug_set_log_mode( mode );
Paul Bakker1f761152010-02-18 18:16:31 +000091 ssl_set_dbg(&ssl, string_debug, &buffer);
92
Paul Bakkerddf26b42013-09-18 13:46:23 +020093 TEST_ASSERT( x509_crt_parse_file( &crt, crt_file ) == 0 );
Paul Bakker33b43f12013-08-20 11:48:36 +020094 debug_print_crt( &ssl, 0, file, line, prefix, &crt);
Paul Bakker1f761152010-02-18 18:16:31 +000095
Paul Bakker33b43f12013-08-20 11:48:36 +020096 TEST_ASSERT( strcmp( buffer.buf, result_str ) == 0 );
Paul Bakker58ef6ec2013-01-03 11:33:48 +010097
Paul Bakker36713e82013-09-17 13:25:29 +020098 x509_crt_free( &crt );
Paul Bakker1f761152010-02-18 18:16:31 +000099}
Paul Bakker33b43f12013-08-20 11:48:36 +0200100/* END_CASE */
Paul Bakkerbe4e7dc2011-03-14 20:41:31 +0000101
Paul Bakker57ffa552014-04-25 14:29:10 +0200102/* BEGIN_CASE depends_on:POLARSSL_BIGNUM_C */
Paul Bakkereaebbd52014-04-25 15:04:14 +0200103void debug_print_mpi( int mode, int radix, char *value, char *file, int line,
Paul Bakker33b43f12013-08-20 11:48:36 +0200104 char *prefix, char *result_str )
Paul Bakkerbe4e7dc2011-03-14 20:41:31 +0000105{
106 ssl_context ssl;
107 struct buffer_data buffer;
108 mpi val;
109
Paul Bakker6c591fa2011-05-05 11:49:20 +0000110 mpi_init( &val );
Paul Bakkerbe4e7dc2011-03-14 20:41:31 +0000111
112 memset( &ssl, 0, sizeof( ssl_context ) );
113 memset( buffer.buf, 0, 2000 );
Paul Bakker57ffa552014-04-25 14:29:10 +0200114 buffer.ptr = buffer.buf;
Paul Bakkerbe4e7dc2011-03-14 20:41:31 +0000115
Paul Bakker33b43f12013-08-20 11:48:36 +0200116 TEST_ASSERT( mpi_read_string( &val, radix, value ) == 0 );
Paul Bakkereaebbd52014-04-25 15:04:14 +0200117
118 debug_set_log_mode( mode );
Paul Bakkerbe4e7dc2011-03-14 20:41:31 +0000119 ssl_set_dbg(&ssl, string_debug, &buffer);
120
Paul Bakker33b43f12013-08-20 11:48:36 +0200121 debug_print_mpi( &ssl, 0, file, line, prefix, &val);
Paul Bakkerbe4e7dc2011-03-14 20:41:31 +0000122
Paul Bakker33b43f12013-08-20 11:48:36 +0200123 TEST_ASSERT( strcmp( buffer.buf, result_str ) == 0 );
Paul Bakker6c591fa2011-05-05 11:49:20 +0000124
125 mpi_free( &val );
Paul Bakkerbe4e7dc2011-03-14 20:41:31 +0000126}
Paul Bakker33b43f12013-08-20 11:48:36 +0200127/* END_CASE */