diff options
author | Nick Mathewson <nickm@torproject.org> | 2015-06-02 15:08:14 -0400 |
---|---|---|
committer | Nick Mathewson <nickm@torproject.org> | 2015-06-02 15:08:14 -0400 |
commit | e48f8e5e87603812a6b1844a5fa27bbc44a3543e (patch) | |
tree | b81cab60a6dd64bf6661478cb64fb552eebe6ee9 | |
parent | 34edf17d88a5eaf7bd10aaa557ac5af5c85fa71f (diff) | |
parent | 8024f6a75f00044fd342323d26e9907fc571c283 (diff) | |
download | tor-e48f8e5e87603812a6b1844a5fa27bbc44a3543e.tar.gz tor-e48f8e5e87603812a6b1844a5fa27bbc44a3543e.zip |
Merge remote-tracking branch 'public/bug15760_hard_026_v2'
-rw-r--r-- | configure.ac | 1 | ||||
-rw-r--r-- | src/common/tortls.c | 11 |
2 files changed, 11 insertions, 1 deletions
diff --git a/configure.ac b/configure.ac index 865db2fc92..9f21cfedd8 100644 --- a/configure.ac +++ b/configure.ac @@ -627,6 +627,7 @@ AC_CHECK_FUNCS([ \ SSL_get_client_ciphers \ SSL_get_client_random \ SSL_CIPHER_find \ + TLS_method ]) LIBS="$save_LIBS" LDFLAGS="$save_LDFLAGS" diff --git a/src/common/tortls.c b/src/common/tortls.c index 11ec4bac75..4cfe94e182 100644 --- a/src/common/tortls.c +++ b/src/common/tortls.c @@ -1189,8 +1189,13 @@ tor_tls_context_new(crypto_pk_t *identity, unsigned int key_lifetime, #endif /* Tell OpenSSL to use TLS 1.0 or later but not SSL2 or SSL3. */ +#ifdef HAVE_TLS_METHOD + if (!(result->ctx = SSL_CTX_new(TLS_method()))) + goto error; +#else if (!(result->ctx = SSL_CTX_new(SSLv23_method()))) goto error; +#endif SSL_CTX_set_options(result->ctx, SSL_OP_NO_SSLv2); SSL_CTX_set_options(result->ctx, SSL_OP_NO_SSLv3); @@ -1411,7 +1416,7 @@ find_cipher_by_id(const SSL *ssl, const SSL_METHOD *m, uint16_t cipher) * cipher with the appropriate 3 bytes. */ c = SSL_CIPHER_find((SSL*)ssl, cipherid); if (c) - tor_assert((c->id & 0xffff) == cipher); + tor_assert((SSL_CIPHER_get_id(c) & 0xffff) == cipher); return c != NULL; } #elif defined(HAVE_STRUCT_SSL_METHOD_ST_GET_CIPHER_BY_CHAR) @@ -1456,7 +1461,11 @@ static void prune_v2_cipher_list(const SSL *ssl) { uint16_t *inp, *outp; +#ifdef HAVE_TLS_METHOD + const SSL_METHOD *m = TLS_method(); +#else const SSL_METHOD *m = SSLv23_method(); +#endif inp = outp = v2_cipher_list; while (*inp) { |