summaryrefslogtreecommitdiff
path: root/src/lib
diff options
context:
space:
mode:
authorjsing <>2014-07-12 19:45:53 +0000
committerjsing <>2014-07-12 19:45:53 +0000
commit7e58d56f7a655feae6127c5fb15e4042012d02f5 (patch)
tree9a0b39938bd33545c973591ba4438760ac1fb329 /src/lib
parent975f72772307c423ba03a669c53eb1aea6f39fc1 (diff)
downloadopenbsd-7e58d56f7a655feae6127c5fb15e4042012d02f5.tar.gz
openbsd-7e58d56f7a655feae6127c5fb15e4042012d02f5.tar.bz2
openbsd-7e58d56f7a655feae6127c5fb15e4042012d02f5.zip
Provide ssl_version_string() function, which uses one of those modern C
constructs (a switch statement) and returns the appropriate string defined by SSL_TXT_* for the given version, including support for DTLSv1 and DTLSv1-bad. Use this function in SSL_get_version() and SSL_SESSION_print(). ok beck@
Diffstat (limited to 'src/lib')
-rw-r--r--src/lib/libssl/src/ssl/ssl.h4
-rw-r--r--src/lib/libssl/src/ssl/ssl_lib.c34
-rw-r--r--src/lib/libssl/src/ssl/ssl_locl.h3
-rw-r--r--src/lib/libssl/src/ssl/ssl_txt.c18
-rw-r--r--src/lib/libssl/ssl.h4
-rw-r--r--src/lib/libssl/ssl_lib.c34
-rw-r--r--src/lib/libssl/ssl_locl.h3
-rw-r--r--src/lib/libssl/ssl_txt.c18
8 files changed, 62 insertions, 56 deletions
diff --git a/src/lib/libssl/src/ssl/ssl.h b/src/lib/libssl/src/ssl/ssl.h
index 5ea440231a..7547d05aa6 100644
--- a/src/lib/libssl/src/ssl/ssl.h
+++ b/src/lib/libssl/src/ssl/ssl.h
@@ -1,4 +1,4 @@
1/* $OpenBSD: ssl.h,v 1.61 2014/07/11 09:24:44 beck Exp $ */ 1/* $OpenBSD: ssl.h,v 1.62 2014/07/12 19:45:53 jsing Exp $ */
2/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) 2/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
3 * All rights reserved. 3 * All rights reserved.
4 * 4 *
@@ -293,6 +293,8 @@ extern "C" {
293#define SSL_TXT_SHA256 "SHA256" 293#define SSL_TXT_SHA256 "SHA256"
294#define SSL_TXT_SHA384 "SHA384" 294#define SSL_TXT_SHA384 "SHA384"
295 295
296#define SSL_TXT_DTLS1 "DTLSv1"
297#define SSL_TXT_DTLS1_BAD "DTLSv1-bad"
296#define SSL_TXT_SSLV2 "SSLv2" 298#define SSL_TXT_SSLV2 "SSLv2"
297#define SSL_TXT_SSLV3 "SSLv3" 299#define SSL_TXT_SSLV3 "SSLv3"
298#define SSL_TXT_TLSV1 "TLSv1" 300#define SSL_TXT_TLSV1 "TLSv1"
diff --git a/src/lib/libssl/src/ssl/ssl_lib.c b/src/lib/libssl/src/ssl/ssl_lib.c
index db310de881..b563071cda 100644
--- a/src/lib/libssl/src/ssl/ssl_lib.c
+++ b/src/lib/libssl/src/ssl/ssl_lib.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: ssl_lib.c,v 1.76 2014/07/12 16:03:37 miod Exp $ */ 1/* $OpenBSD: ssl_lib.c,v 1.77 2014/07/12 19:45:53 jsing Exp $ */
2/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) 2/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
3 * All rights reserved. 3 * All rights reserved.
4 * 4 *
@@ -2410,18 +2410,30 @@ ssl_bad_method(int ver)
2410} 2410}
2411 2411
2412const char * 2412const char *
2413ssl_version_string(int ver)
2414{
2415 switch (ver) {
2416 case DTLS1_BAD_VER:
2417 return (SSL_TXT_DTLS1_BAD);
2418 case DTLS1_VERSION:
2419 return (SSL_TXT_DTLS1);
2420 case SSL3_VERSION:
2421 return (SSL_TXT_SSLV3);
2422 case TLS1_VERSION:
2423 return (SSL_TXT_TLSV1);
2424 case TLS1_1_VERSION:
2425 return (SSL_TXT_TLSV1_1);
2426 case TLS1_2_VERSION:
2427 return (SSL_TXT_TLSV1_2);
2428 default:
2429 return ("unknown");
2430 }
2431}
2432
2433const char *
2413SSL_get_version(const SSL *s) 2434SSL_get_version(const SSL *s)
2414{ 2435{
2415 if (s->version == TLS1_2_VERSION) 2436 return ssl_version_string(s->version);
2416 return ("TLSv1.2");
2417 else if (s->version == TLS1_1_VERSION)
2418 return ("TLSv1.1");
2419 else if (s->version == TLS1_VERSION)
2420 return ("TLSv1");
2421 else if (s->version == SSL3_VERSION)
2422 return ("SSLv3");
2423 else
2424 return ("unknown");
2425} 2437}
2426 2438
2427SSL * 2439SSL *
diff --git a/src/lib/libssl/src/ssl/ssl_locl.h b/src/lib/libssl/src/ssl/ssl_locl.h
index 0d96ee5fe8..22ba8d926e 100644
--- a/src/lib/libssl/src/ssl/ssl_locl.h
+++ b/src/lib/libssl/src/ssl/ssl_locl.h
@@ -1,4 +1,4 @@
1/* $OpenBSD: ssl_locl.h,v 1.60 2014/07/12 13:11:53 jsing Exp $ */ 1/* $OpenBSD: ssl_locl.h,v 1.61 2014/07/12 19:45:53 jsing Exp $ */
2/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) 2/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
3 * All rights reserved. 3 * All rights reserved.
4 * 4 *
@@ -543,6 +543,7 @@ extern SSL3_ENC_METHOD ssl3_undef_enc_method;
543extern SSL_CIPHER ssl3_ciphers[]; 543extern SSL_CIPHER ssl3_ciphers[];
544 544
545SSL_METHOD *ssl_bad_method(int ver); 545SSL_METHOD *ssl_bad_method(int ver);
546const char *ssl_version_string(int ver);
546 547
547extern SSL3_ENC_METHOD TLSv1_enc_data; 548extern SSL3_ENC_METHOD TLSv1_enc_data;
548extern SSL3_ENC_METHOD TLSv1_1_enc_data; 549extern SSL3_ENC_METHOD TLSv1_1_enc_data;
diff --git a/src/lib/libssl/src/ssl/ssl_txt.c b/src/lib/libssl/src/ssl/ssl_txt.c
index 950620d300..3540bab313 100644
--- a/src/lib/libssl/src/ssl/ssl_txt.c
+++ b/src/lib/libssl/src/ssl/ssl_txt.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: ssl_txt.c,v 1.23 2014/07/11 09:24:44 beck Exp $ */ 1/* $OpenBSD: ssl_txt.c,v 1.24 2014/07/12 19:45:53 jsing Exp $ */
2/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) 2/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
3 * All rights reserved. 3 * All rights reserved.
4 * 4 *
@@ -112,20 +112,8 @@ SSL_SESSION_print(BIO *bp, const SSL_SESSION *x)
112 goto err; 112 goto err;
113 if (BIO_puts(bp, "SSL-Session:\n") <= 0) 113 if (BIO_puts(bp, "SSL-Session:\n") <= 0)
114 goto err; 114 goto err;
115 if (x->ssl_version == SSL3_VERSION) 115
116 s = "SSLv3"; 116 s = ssl_version_string(x->ssl_version);
117 else if (x->ssl_version == TLS1_2_VERSION)
118 s = "TLSv1.2";
119 else if (x->ssl_version == TLS1_1_VERSION)
120 s = "TLSv1.1";
121 else if (x->ssl_version == TLS1_VERSION)
122 s = "TLSv1";
123 else if (x->ssl_version == DTLS1_VERSION)
124 s = "DTLSv1";
125 else if (x->ssl_version == DTLS1_BAD_VER)
126 s = "DTLSv1-bad";
127 else
128 s = "unknown";
129 if (BIO_printf(bp, " Protocol : %s\n", s) <= 0) 117 if (BIO_printf(bp, " Protocol : %s\n", s) <= 0)
130 goto err; 118 goto err;
131 119
diff --git a/src/lib/libssl/ssl.h b/src/lib/libssl/ssl.h
index 5ea440231a..7547d05aa6 100644
--- a/src/lib/libssl/ssl.h
+++ b/src/lib/libssl/ssl.h
@@ -1,4 +1,4 @@
1/* $OpenBSD: ssl.h,v 1.61 2014/07/11 09:24:44 beck Exp $ */ 1/* $OpenBSD: ssl.h,v 1.62 2014/07/12 19:45:53 jsing Exp $ */
2/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) 2/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
3 * All rights reserved. 3 * All rights reserved.
4 * 4 *
@@ -293,6 +293,8 @@ extern "C" {
293#define SSL_TXT_SHA256 "SHA256" 293#define SSL_TXT_SHA256 "SHA256"
294#define SSL_TXT_SHA384 "SHA384" 294#define SSL_TXT_SHA384 "SHA384"
295 295
296#define SSL_TXT_DTLS1 "DTLSv1"
297#define SSL_TXT_DTLS1_BAD "DTLSv1-bad"
296#define SSL_TXT_SSLV2 "SSLv2" 298#define SSL_TXT_SSLV2 "SSLv2"
297#define SSL_TXT_SSLV3 "SSLv3" 299#define SSL_TXT_SSLV3 "SSLv3"
298#define SSL_TXT_TLSV1 "TLSv1" 300#define SSL_TXT_TLSV1 "TLSv1"
diff --git a/src/lib/libssl/ssl_lib.c b/src/lib/libssl/ssl_lib.c
index db310de881..b563071cda 100644
--- a/src/lib/libssl/ssl_lib.c
+++ b/src/lib/libssl/ssl_lib.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: ssl_lib.c,v 1.76 2014/07/12 16:03:37 miod Exp $ */ 1/* $OpenBSD: ssl_lib.c,v 1.77 2014/07/12 19:45:53 jsing Exp $ */
2/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) 2/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
3 * All rights reserved. 3 * All rights reserved.
4 * 4 *
@@ -2410,18 +2410,30 @@ ssl_bad_method(int ver)
2410} 2410}
2411 2411
2412const char * 2412const char *
2413ssl_version_string(int ver)
2414{
2415 switch (ver) {
2416 case DTLS1_BAD_VER:
2417 return (SSL_TXT_DTLS1_BAD);
2418 case DTLS1_VERSION:
2419 return (SSL_TXT_DTLS1);
2420 case SSL3_VERSION:
2421 return (SSL_TXT_SSLV3);
2422 case TLS1_VERSION:
2423 return (SSL_TXT_TLSV1);
2424 case TLS1_1_VERSION:
2425 return (SSL_TXT_TLSV1_1);
2426 case TLS1_2_VERSION:
2427 return (SSL_TXT_TLSV1_2);
2428 default:
2429 return ("unknown");
2430 }
2431}
2432
2433const char *
2413SSL_get_version(const SSL *s) 2434SSL_get_version(const SSL *s)
2414{ 2435{
2415 if (s->version == TLS1_2_VERSION) 2436 return ssl_version_string(s->version);
2416 return ("TLSv1.2");
2417 else if (s->version == TLS1_1_VERSION)
2418 return ("TLSv1.1");
2419 else if (s->version == TLS1_VERSION)
2420 return ("TLSv1");
2421 else if (s->version == SSL3_VERSION)
2422 return ("SSLv3");
2423 else
2424 return ("unknown");
2425} 2437}
2426 2438
2427SSL * 2439SSL *
diff --git a/src/lib/libssl/ssl_locl.h b/src/lib/libssl/ssl_locl.h
index 0d96ee5fe8..22ba8d926e 100644
--- a/src/lib/libssl/ssl_locl.h
+++ b/src/lib/libssl/ssl_locl.h
@@ -1,4 +1,4 @@
1/* $OpenBSD: ssl_locl.h,v 1.60 2014/07/12 13:11:53 jsing Exp $ */ 1/* $OpenBSD: ssl_locl.h,v 1.61 2014/07/12 19:45:53 jsing Exp $ */
2/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) 2/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
3 * All rights reserved. 3 * All rights reserved.
4 * 4 *
@@ -543,6 +543,7 @@ extern SSL3_ENC_METHOD ssl3_undef_enc_method;
543extern SSL_CIPHER ssl3_ciphers[]; 543extern SSL_CIPHER ssl3_ciphers[];
544 544
545SSL_METHOD *ssl_bad_method(int ver); 545SSL_METHOD *ssl_bad_method(int ver);
546const char *ssl_version_string(int ver);
546 547
547extern SSL3_ENC_METHOD TLSv1_enc_data; 548extern SSL3_ENC_METHOD TLSv1_enc_data;
548extern SSL3_ENC_METHOD TLSv1_1_enc_data; 549extern SSL3_ENC_METHOD TLSv1_1_enc_data;
diff --git a/src/lib/libssl/ssl_txt.c b/src/lib/libssl/ssl_txt.c
index 950620d300..3540bab313 100644
--- a/src/lib/libssl/ssl_txt.c
+++ b/src/lib/libssl/ssl_txt.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: ssl_txt.c,v 1.23 2014/07/11 09:24:44 beck Exp $ */ 1/* $OpenBSD: ssl_txt.c,v 1.24 2014/07/12 19:45:53 jsing Exp $ */
2/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) 2/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
3 * All rights reserved. 3 * All rights reserved.
4 * 4 *
@@ -112,20 +112,8 @@ SSL_SESSION_print(BIO *bp, const SSL_SESSION *x)
112 goto err; 112 goto err;
113 if (BIO_puts(bp, "SSL-Session:\n") <= 0) 113 if (BIO_puts(bp, "SSL-Session:\n") <= 0)
114 goto err; 114 goto err;
115 if (x->ssl_version == SSL3_VERSION) 115
116 s = "SSLv3"; 116 s = ssl_version_string(x->ssl_version);
117 else if (x->ssl_version == TLS1_2_VERSION)
118 s = "TLSv1.2";
119 else if (x->ssl_version == TLS1_1_VERSION)
120 s = "TLSv1.1";
121 else if (x->ssl_version == TLS1_VERSION)
122 s = "TLSv1";
123 else if (x->ssl_version == DTLS1_VERSION)
124 s = "DTLSv1";
125 else if (x->ssl_version == DTLS1_BAD_VER)
126 s = "DTLSv1-bad";
127 else
128 s = "unknown";
129 if (BIO_printf(bp, " Protocol : %s\n", s) <= 0) 117 if (BIO_printf(bp, " Protocol : %s\n", s) <= 0)
130 goto err; 118 goto err;
131 119