modes/cfb128.c: make it indent-friendly.
[openssl.git] / ssl / ssl_txt.c
index 552ec2b05864cce3780e418e86236745bf5eb65a..7d0effbea568669784cc6c23f4a2f0134296ecbf 100644 (file)
@@ -86,7 +86,7 @@
 #include <openssl/buffer.h>
 #include "ssl_locl.h"
 
-#ifndef OPENSSL_NO_FP_API
+#ifndef OPENSSL_NO_STDIO
 int SSL_SESSION_print_fp(FILE *fp, const SSL_SESSION *x)
        {
        BIO *b;
@@ -111,16 +111,18 @@ int SSL_SESSION_print(BIO *bp, const SSL_SESSION *x)
 
        if (x == NULL) goto err;
        if (BIO_puts(bp,"SSL-Session:\n") <= 0) goto err;
-       if (x->ssl_version == SSL2_VERSION)
-               s="SSLv2";
-       else if (x->ssl_version == SSL3_VERSION)
+       if (x->ssl_version == SSL3_VERSION)
                s="SSLv3";
+       else if (x->ssl_version == TLS1_2_VERSION)
+               s="TLSv1.2";
        else if (x->ssl_version == TLS1_1_VERSION)
                s="TLSv1.1";
        else if (x->ssl_version == TLS1_VERSION)
                s="TLSv1";
        else if (x->ssl_version == DTLS1_VERSION)
                s="DTLSv1";
+       else if (x->ssl_version == DTLS1_2_VERSION)
+               s="DTLSv1.2";
        else if (x->ssl_version == DTLS1_BAD_VER)
                s="DTLSv1-bad";
        else
@@ -161,16 +163,6 @@ int SSL_SESSION_print(BIO *bp, const SSL_SESSION *x)
                {
                if (BIO_printf(bp,"%02X",x->master_key[i]) <= 0) goto err;
                }
-       if (BIO_puts(bp,"\n    Key-Arg   : ") <= 0) goto err;
-       if (x->key_arg_length == 0)
-               {
-               if (BIO_puts(bp,"None") <= 0) goto err;
-               }
-       else
-               for (i=0; i<x->key_arg_length; i++)
-                       {
-                       if (BIO_printf(bp,"%02X",x->key_arg[i]) <= 0) goto err;
-                       }
 #ifndef OPENSSL_NO_KRB5
        if (BIO_puts(bp,"\n    Krb5 Principal: ") <= 0) goto err;
             if (x->krb5_client_princ_len == 0)
@@ -214,7 +206,7 @@ int SSL_SESSION_print(BIO *bp, const SSL_SESSION *x)
                {
                SSL_COMP *comp = NULL;
 
-               ssl_cipher_get_evp(x,NULL,NULL,NULL,NULL,&comp);
+               ssl_cipher_get_evp(x,NULL,NULL,NULL,NULL,&comp, 0);
                if (comp == NULL)
                        {
                        if (BIO_printf(bp,"\n    Compression: %d",x->compress_meth) <= 0) goto err;
@@ -244,3 +236,33 @@ err:
        return(0);
        }
 
+/* print session id and master key in NSS keylog format
+   (RSA Session-ID:<session id> Master-Key:<master key>) */
+int SSL_SESSION_print_keylog(BIO *bp, const SSL_SESSION *x)
+       {
+       unsigned int i;
+
+       if (x == NULL) goto err;
+       if (x->session_id_length==0 || x->master_key_length==0) goto err;
+
+       /* the RSA prefix is required by the format's definition although there's
+          nothing RSA-specifc in the output, therefore, we don't have to check
+          if the cipher suite is based on RSA */
+       if (BIO_puts(bp,"RSA ") <= 0) goto err;
+
+       if (BIO_puts(bp,"Session-ID:") <= 0) goto err;
+       for (i=0; i<x->session_id_length; i++)
+               {
+               if (BIO_printf(bp,"%02X",x->session_id[i]) <= 0) goto err;
+               }
+       if (BIO_puts(bp," Master-Key:") <= 0) goto err;
+       for (i=0; i<(unsigned int)x->master_key_length; i++)
+               {
+               if (BIO_printf(bp,"%02X",x->master_key[i]) <= 0) goto err;
+               }
+       if (BIO_puts(bp,"\n") <= 0) goto err;
+
+       return(1);
+err:
+       return(0);
+       }