diff options
| author | jsing <> | 2014-07-12 19:45:53 +0000 |
|---|---|---|
| committer | jsing <> | 2014-07-12 19:45:53 +0000 |
| commit | ca5656e7eced6ebea522071e6d0734cccfb29497 (patch) | |
| tree | 9a0b39938bd33545c973591ba4438760ac1fb329 /src/lib/libssl/ssl_lib.c | |
| parent | c384aa261abeb17e20d0dce22cd64e0ba9fcc112 (diff) | |
| download | openbsd-ca5656e7eced6ebea522071e6d0734cccfb29497.tar.gz openbsd-ca5656e7eced6ebea522071e6d0734cccfb29497.tar.bz2 openbsd-ca5656e7eced6ebea522071e6d0734cccfb29497.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 '')
| -rw-r--r-- | src/lib/libssl/ssl_lib.c | 34 |
1 files changed, 23 insertions, 11 deletions
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 | ||
| 2412 | const char * | 2412 | const char * |
| 2413 | ssl_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 | |||
| 2433 | const char * | ||
| 2413 | SSL_get_version(const SSL *s) | 2434 | SSL_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 | ||
| 2427 | SSL * | 2439 | SSL * |
