new command line option -stdname to ciphers utility
authorDr. Stephen Henson <steve@openssl.org>
Fri, 16 Nov 2012 00:35:46 +0000 (00:35 +0000)
committerDr. Stephen Henson <steve@openssl.org>
Fri, 16 Nov 2012 00:35:46 +0000 (00:35 +0000)
apps/ciphers.c
ssl/ssl.h
ssl/t1_trce.c

index 5f2b739700804a2f0e40a55de3ce29092abfda59..c9abf1a05a78c609735aa7ac8f78dc96a7fe768d 100644 (file)
@@ -85,6 +85,9 @@ int MAIN(int argc, char **argv)
        {
        int ret=1,i;
        int verbose=0,Verbose=0;
+#ifndef OPENSSL_NO_SSL_TRACE
+       int stdname = 0;
+#endif
        const char **pp;
        const char *p;
        int badops=0;
@@ -126,6 +129,10 @@ int MAIN(int argc, char **argv)
                        verbose=1;
                else if (strcmp(*argv,"-V") == 0)
                        verbose=Verbose=1;
+#ifndef OPENSSL_NO_SSL_TRACE
+               else if (strcmp(*argv,"-stdname") == 0)
+                       stdname=verbose=1;
+#endif
 #ifndef OPENSSL_NO_SSL2
                else if (strcmp(*argv,"-ssl2") == 0)
                        meth=SSLv2_client_method();
@@ -209,7 +216,15 @@ int MAIN(int argc, char **argv)
                                else
                                        BIO_printf(STDout, "0x%02X,0x%02X,0x%02X,0x%02X - ", id0, id1, id2, id3); /* whatever */
                                }
-
+#ifndef OPENSSL_NO_SSL_TRACE
+                       if (stdname)
+                               {
+                               const char *nm = SSL_CIPHER_standard_name(c);
+                               if (nm == NULL)
+                                       nm = "UNKNOWN";
+                               BIO_printf(STDout, "%s - ", nm);
+                               }
+#endif
                        BIO_puts(STDout,SSL_CIPHER_description(c,buf,sizeof buf));
                        }
                }
index 891667827ad2b2fe8fe507bd76affef1a2d3893b..88f828508f87b1013e37ba4c1acb084ac5506ec6 100644 (file)
--- a/ssl/ssl.h
+++ b/ssl/ssl.h
@@ -2269,6 +2269,7 @@ int SSL_is_server(SSL *s);
 #ifndef OPENSSL_NO_SSL_TRACE
 void SSL_trace(int write_p, int version, int content_type,
                const void *buf, size_t len, SSL *ssl, void *arg);
+const char *SSL_CIPHER_standard_name(const SSL_CIPHER *c);
 #endif
 
 /* BEGIN ERROR CODES */
index 3571aaacae3e0c62c0be7702cd4444a5454dd2c6..2c8a2e44865a6afed3a7bab6b026680503b8fe11 100644 (file)
@@ -1203,6 +1203,13 @@ static int ssl_print_heartbeat(BIO *bio, int indent,
        return 1;
        }
 
+const char *SSL_CIPHER_standard_name(const SSL_CIPHER *c)
+       {
+       if (c->algorithm_ssl & SSL_SSLV2)
+               return NULL;
+       return ssl_trace_str(c->id & 0xFFFF, ssl_ciphers_tbl);
+       }
+
 void SSL_trace(int write_p, int version, int content_type,
                const void *buf, size_t msglen, SSL *ssl, void *arg)
        {