00001
00027 #ifndef POLARSSL_DEBUG_H
00028 #define POLARSSL_DEBUG_H
00029
00030 #include "config.h"
00031 #include "ssl.h"
00032 #if defined(POLARSSL_ECP_C)
00033 #include "ecp.h"
00034 #endif
00035
00036 #if defined(POLARSSL_DEBUG_C)
00037
00038 #define SSL_DEBUG_MSG( level, args ) \
00039 debug_print_msg( ssl, level, __FILE__, __LINE__, debug_fmt args );
00040
00041 #define SSL_DEBUG_RET( level, text, ret ) \
00042 debug_print_ret( ssl, level, __FILE__, __LINE__, text, ret );
00043
00044 #define SSL_DEBUG_BUF( level, text, buf, len ) \
00045 debug_print_buf( ssl, level, __FILE__, __LINE__, text, buf, len );
00046
00047 #if defined(POLARSSL_BIGNUM_C)
00048 #define SSL_DEBUG_MPI( level, text, X ) \
00049 debug_print_mpi( ssl, level, __FILE__, __LINE__, text, X );
00050 #endif
00051
00052 #if defined(POLARSSL_ECP_C)
00053 #define SSL_DEBUG_ECP( level, text, X ) \
00054 debug_print_ecp( ssl, level, __FILE__, __LINE__, text, X );
00055 #endif
00056
00057 #if defined(POLARSSL_X509_CRT_PARSE_C)
00058 #define SSL_DEBUG_CRT( level, text, crt ) \
00059 debug_print_crt( ssl, level, __FILE__, __LINE__, text, crt );
00060 #endif
00061
00062 #else
00063
00064 #define SSL_DEBUG_MSG( level, args ) do { } while( 0 )
00065 #define SSL_DEBUG_RET( level, text, ret ) do { } while( 0 )
00066 #define SSL_DEBUG_BUF( level, text, buf, len ) do { } while( 0 )
00067 #define SSL_DEBUG_MPI( level, text, X ) do { } while( 0 )
00068 #define SSL_DEBUG_ECP( level, text, X ) do { } while( 0 )
00069 #define SSL_DEBUG_CRT( level, text, crt ) do { } while( 0 )
00070
00071 #endif
00072
00073 #ifdef __cplusplus
00074 extern "C" {
00075 #endif
00076
00077 char *debug_fmt( const char *format, ... );
00078
00079 void debug_print_msg( const ssl_context *ssl, int level,
00080 const char *file, int line, const char *text );
00081
00082 void debug_print_ret( const ssl_context *ssl, int level,
00083 const char *file, int line,
00084 const char *text, int ret );
00085
00086 void debug_print_buf( const ssl_context *ssl, int level,
00087 const char *file, int line, const char *text,
00088 unsigned char *buf, size_t len );
00089
00090 #if defined(POLARSSL_BIGNUM_C)
00091 void debug_print_mpi( const ssl_context *ssl, int level,
00092 const char *file, int line,
00093 const char *text, const mpi *X );
00094 #endif
00095
00096 #if defined(POLARSSL_ECP_C)
00097 void debug_print_ecp( const ssl_context *ssl, int level,
00098 const char *file, int line,
00099 const char *text, const ecp_point *X );
00100 #endif
00101
00102 #if defined(POLARSSL_X509_CRT_PARSE_C)
00103 void debug_print_crt( const ssl_context *ssl, int level,
00104 const char *file, int line,
00105 const char *text, const x509_crt *crt );
00106 #endif
00107
00108 #ifdef __cplusplus
00109 }
00110 #endif
00111
00112 #endif