Merge remote-tracking branch 'public/bug15760_hard_026_v2'

This commit is contained in:
Nick Mathewson 2015-06-02 15:08:14 -04:00
commit e48f8e5e87
2 changed files with 11 additions and 1 deletions

View File

@ -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"

View File

@ -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) {