Don't prefer ECDHE-ECDSA ciphers when the client appears to be Safari on OS X.

OS X 10.8..10.8.3 has broken support for ECDHE-ECDSA ciphers.
This commit is contained in:
Rob Stradling
2013-09-05 13:09:03 +01:00
parent c3eb33763b
commit dece3209f2
5 changed files with 114 additions and 6 deletions

View File

@@ -3089,7 +3089,10 @@ void ssl3_clear(SSL *s)
s->s3->tlsext_custom_types = NULL;
}
s->s3->tlsext_custom_types_count = 0;
#endif
#ifndef OPENSSL_NO_EC
s->s3->is_probably_safari = 0;
#endif /* OPENSSL_NO_EC */
#endif /* OPENSSL_NO_TLSEXT */
rp = s->s3->rbuf.buf;
wp = s->s3->wbuf.buf;
@@ -4170,8 +4173,15 @@ SSL_CIPHER *ssl3_choose_cipher(SSL *s, STACK_OF(SSL_CIPHER) *clnt,
ii=sk_SSL_CIPHER_find(allow,c);
if (ii >= 0)
{
ret=sk_SSL_CIPHER_value(allow,ii);
break;
if ((alg_k & SSL_kEECDH) && (alg_a & SSL_aECDSA) && s->s3->is_probably_safari)
{
if (!ret) ret=sk_SSL_CIPHER_value(allow,ii);
}
else
{
ret=sk_SSL_CIPHER_value(allow,ii);
break;
}
}
}
return(ret);