Skip to content

Commit

Permalink
stream-ssl: Enable TLSv1.1 and TLSv1.2.
Browse files Browse the repository at this point in the history
The Open vSwitch SSL code was inadvertently enabling only TLSv1, not
later versions.  This commit should fix it.

See https://www.openssl.org/docs/ssl/SSL_CTX_new.html
and http://www.postgresql.org/message-id/20131203213049.GA8259@gmail.com
for more information.

Signed-off-by: Ben Pfaff <blp@nicira.com>
Reported-by: Abhinav Singhal <Abhinav.Singhal@spirent.com>
Acked-by: Gurucharan Shetty <gshetty@nicira.com>
  • Loading branch information
blp committed Jun 13, 2014
1 parent d34cc9e commit 7ed47b7
Show file tree
Hide file tree
Showing 2 changed files with 12 additions and 3 deletions.
1 change: 1 addition & 0 deletions AUTHORS
Expand Up @@ -136,6 +136,7 @@ The following additional people are mentioned in commit logs as having
provided helpful bug reports or suggestions.

Aaron M. Ucko ucko@debian.org
Abhinav Singhal Abhinav.Singhal@spirent.com
Adam Heath doogie@brainfood.com
Ahmed Bilal numan252@gmail.com
Alan Shieh ashieh@nicira.com
Expand Down
14 changes: 11 additions & 3 deletions lib/stream-ssl.c
Expand Up @@ -980,9 +980,17 @@ do_ssl_init(void)
RAND_seed(seed, sizeof seed);
}

/* New OpenSSL changed TLSv1_method() to return a "const" pointer, so the
* cast is needed to avoid a warning with those newer versions. */
method = CONST_CAST(SSL_METHOD *, TLSv1_method());
/* OpenSSL has a bunch of "connection methods": SSLv2_method(),
* SSLv3_method(), TLSv1_method(), SSLv23_method(), ... Most of these
* support exactly one version of SSL, e.g. TLSv1_method() supports TLSv1
* only, not any earlier *or later* version. The only exception is
* SSLv23_method(), which in fact supports *any* version of SSL and TLS.
* We don't want SSLv2 or SSLv3 support, so we turn it off below with
* SSL_CTX_set_options().
*
* The cast is needed to avoid a warning with newer versions of OpenSSL in
* which SSLv23_method() returns a "const" pointer. */
method = CONST_CAST(SSL_METHOD *, SSLv23_method());
if (method == NULL) {
VLOG_ERR("TLSv1_method: %s", ERR_error_string(ERR_get_error(), NULL));
return ENOPROTOOPT;
Expand Down

0 comments on commit 7ed47b7

Please sign in to comment.