blob: 0fe0725a320c8f115490aa22bbdc12a8542fb194 [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);
17}
Paul Bakker33b43f12013-08-20 11:48:36 +020018/* END_HEADER */
Paul Bakker1f761152010-02-18 18:16:31 +000019
Paul Bakker33b43f12013-08-20 11:48:36 +020020/* BEGIN_DEPENDENCIES
Paul Bakker57ffa552014-04-25 14:29:10 +020021 * depends_on:POLARSSL_DEBUG_C:POLARSSL_SSL_TLS_C
Paul Bakker33b43f12013-08-20 11:48:36 +020022 * END_DEPENDENCIES
23 */
Paul Bakker5690efc2011-05-26 13:16:06 +000024
Paul Bakker57ffa552014-04-25 14:29:10 +020025/* BEGIN_CASE */
Paul Bakkereaebbd52014-04-25 15:04:14 +020026void debug_print_ret( int mode, char *file, int line, char *text, int value,
Paul Bakker57ffa552014-04-25 14:29:10 +020027 char *result_str )
28{
29 ssl_context ssl;
30 struct buffer_data buffer;
31
32 memset( &ssl, 0, sizeof( ssl_context ) );
33 memset( buffer.buf, 0, 2000 );
34 buffer.ptr = buffer.buf;
35
Paul Bakkereaebbd52014-04-25 15:04:14 +020036 debug_set_log_mode( mode );
Paul Bakker57ffa552014-04-25 14:29:10 +020037 ssl_set_dbg(&ssl, string_debug, &buffer);
38
39 debug_print_ret( &ssl, 0, file, line, text, value);
40
41 TEST_ASSERT( strcmp( buffer.buf, result_str ) == 0 );
42}
43/* END_CASE */
44
45/* BEGIN_CASE */
Paul Bakkereaebbd52014-04-25 15:04:14 +020046void debug_print_buf( int mode, char *file, int line, char *text,
47 char *data_string, char *result_str )
Paul Bakker57ffa552014-04-25 14:29:10 +020048{
49 unsigned char data[10000];
50 ssl_context ssl;
51 struct buffer_data buffer;
52 size_t data_len;
53
54 memset( &data, 0, sizeof( data ) );
55 memset( &ssl, 0, sizeof( ssl_context ) );
56 memset( buffer.buf, 0, 2000 );
57 buffer.ptr = buffer.buf;
58
59 data_len = unhexify( data, data_string );
60
Paul Bakkereaebbd52014-04-25 15:04:14 +020061 debug_set_log_mode( mode );
Paul Bakker57ffa552014-04-25 14:29:10 +020062 ssl_set_dbg(&ssl, string_debug, &buffer);
63
64 debug_print_buf( &ssl, 0, file, line, text, data, data_len );
65
66 TEST_ASSERT( strcmp( buffer.buf, result_str ) == 0 );
67}
68/* END_CASE */
69
Paul Bakker36713e82013-09-17 13:25:29 +020070/* BEGIN_CASE depends_on:POLARSSL_FS_IO:POLARSSL_X509_CRT_PARSE_C */
Paul Bakkereaebbd52014-04-25 15:04:14 +020071void debug_print_crt( int mode, char *crt_file, char *file, int line,
72 char *prefix, char *result_str )
Paul Bakker1f761152010-02-18 18:16:31 +000073{
Paul Bakkerc559c7a2013-09-18 14:13:26 +020074 x509_crt crt;
Paul Bakker1f761152010-02-18 18:16:31 +000075 ssl_context ssl;
76 struct buffer_data buffer;
77
Paul Bakker369d2eb2013-09-18 11:58:25 +020078 x509_crt_init( &crt );
Paul Bakker1f761152010-02-18 18:16:31 +000079 memset( &ssl, 0, sizeof( ssl_context ) );
80 memset( buffer.buf, 0, 2000 );
Paul Bakker57ffa552014-04-25 14:29:10 +020081 buffer.ptr = buffer.buf;
Paul Bakker1f761152010-02-18 18:16:31 +000082
Paul Bakkereaebbd52014-04-25 15:04:14 +020083 debug_set_log_mode( mode );
Paul Bakker1f761152010-02-18 18:16:31 +000084 ssl_set_dbg(&ssl, string_debug, &buffer);
85
Paul Bakkerddf26b42013-09-18 13:46:23 +020086 TEST_ASSERT( x509_crt_parse_file( &crt, crt_file ) == 0 );
Paul Bakker33b43f12013-08-20 11:48:36 +020087 debug_print_crt( &ssl, 0, file, line, prefix, &crt);
Paul Bakker1f761152010-02-18 18:16:31 +000088
Paul Bakker33b43f12013-08-20 11:48:36 +020089 TEST_ASSERT( strcmp( buffer.buf, result_str ) == 0 );
Paul Bakker58ef6ec2013-01-03 11:33:48 +010090
Paul Bakker36713e82013-09-17 13:25:29 +020091 x509_crt_free( &crt );
Paul Bakker1f761152010-02-18 18:16:31 +000092}
Paul Bakker33b43f12013-08-20 11:48:36 +020093/* END_CASE */
Paul Bakkerbe4e7dc2011-03-14 20:41:31 +000094
Paul Bakker57ffa552014-04-25 14:29:10 +020095/* BEGIN_CASE depends_on:POLARSSL_BIGNUM_C */
Paul Bakkereaebbd52014-04-25 15:04:14 +020096void debug_print_mpi( int mode, int radix, char *value, char *file, int line,
Paul Bakker33b43f12013-08-20 11:48:36 +020097 char *prefix, char *result_str )
Paul Bakkerbe4e7dc2011-03-14 20:41:31 +000098{
99 ssl_context ssl;
100 struct buffer_data buffer;
101 mpi val;
102
Paul Bakker6c591fa2011-05-05 11:49:20 +0000103 mpi_init( &val );
Paul Bakkerbe4e7dc2011-03-14 20:41:31 +0000104
105 memset( &ssl, 0, sizeof( ssl_context ) );
106 memset( buffer.buf, 0, 2000 );
Paul Bakker57ffa552014-04-25 14:29:10 +0200107 buffer.ptr = buffer.buf;
Paul Bakkerbe4e7dc2011-03-14 20:41:31 +0000108
Paul Bakker33b43f12013-08-20 11:48:36 +0200109 TEST_ASSERT( mpi_read_string( &val, radix, value ) == 0 );
Paul Bakkereaebbd52014-04-25 15:04:14 +0200110
111 debug_set_log_mode( mode );
Paul Bakkerbe4e7dc2011-03-14 20:41:31 +0000112 ssl_set_dbg(&ssl, string_debug, &buffer);
113
Paul Bakker33b43f12013-08-20 11:48:36 +0200114 debug_print_mpi( &ssl, 0, file, line, prefix, &val);
Paul Bakkerbe4e7dc2011-03-14 20:41:31 +0000115
Paul Bakker33b43f12013-08-20 11:48:36 +0200116 TEST_ASSERT( strcmp( buffer.buf, result_str ) == 0 );
Paul Bakker6c591fa2011-05-05 11:49:20 +0000117
118 mpi_free( &val );
Paul Bakkerbe4e7dc2011-03-14 20:41:31 +0000119}
Paul Bakker33b43f12013-08-20 11:48:36 +0200120/* END_CASE */