SSL/TLS record tracing code (backport from HEAD).

This commit is contained in:
Dr. Stephen Henson
2012-12-26 22:40:46 +00:00
parent a08f8d73cc
commit bc200e691c
14 changed files with 1460 additions and 11 deletions

View File

@@ -290,6 +290,7 @@ static SSL_CTX *ctx2=NULL;
static int www=0;
static BIO *bio_s_out=NULL;
static BIO *bio_s_msg = NULL;
static int s_debug=0;
#ifndef OPENSSL_NO_TLSEXT
static int s_tlsextdebug=0;
@@ -1244,6 +1245,15 @@ int MAIN(int argc, char *argv[])
#endif
else if (strcmp(*argv,"-msg") == 0)
{ s_msg=1; }
else if (strcmp(*argv,"-msgfile") == 0)
{
if (--argc < 1) goto bad;
bio_s_msg = BIO_new_file(*(++argv), "w");
}
#ifndef OPENSSL_NO_SSL_TRACE
else if (strcmp(*argv,"-trace") == 0)
{ s_msg=2; }
#endif
else if (strcmp(*argv,"-hack") == 0)
{ hack=1; }
else if (strcmp(*argv,"-state") == 0)
@@ -1589,6 +1599,8 @@ bad:
if (s_quiet && !s_debug && !s_msg)
{
bio_s_out=BIO_new(BIO_s_null());
if (s_msg && !bio_s_msg)
bio_s_msg=BIO_new_fp(stdout,BIO_NOCLOSE);
}
else
{
@@ -2080,9 +2092,14 @@ end:
ssl_excert_free(exc);
if (bio_s_out != NULL)
{
BIO_free(bio_s_out);
BIO_free(bio_s_out);
bio_s_out=NULL;
}
if (bio_s_msg != NULL)
{
BIO_free(bio_s_msg);
bio_s_msg = NULL;
}
apps_shutdown();
OPENSSL_EXIT(ret);
}
@@ -2237,8 +2254,13 @@ static int sv_body(char *hostname, int s, unsigned char *context)
}
if (s_msg)
{
SSL_set_msg_callback(con, msg_cb);
SSL_set_msg_callback_arg(con, bio_s_out);
#ifndef OPENSSL_NO_SSL_TRACE
if (s_msg == 2)
SSL_set_msg_callback(con, SSL_trace);
else
#endif
SSL_set_msg_callback(con, msg_cb);
SSL_set_msg_callback_arg(con, bio_s_msg ? bio_s_msg : bio_s_out);
}
#ifndef OPENSSL_NO_TLSEXT
if (s_tlsextdebug)
@@ -2794,8 +2816,13 @@ static int www_body(char *hostname, int s, unsigned char *context)
}
if (s_msg)
{
SSL_set_msg_callback(con, msg_cb);
SSL_set_msg_callback_arg(con, bio_s_out);
#ifndef OPENSSL_NO_SSL_TRACE
if (s_msg == 2)
SSL_set_msg_callback(con, SSL_trace);
else
#endif
SSL_set_msg_callback(con, msg_cb);
SSL_set_msg_callback_arg(con, bio_s_msg ? bio_s_msg : bio_s_out);
}
for (;;)