提交 3c06513f 编写于 作者: K Kurt Roeckx

Allow all curves when the client doesn't send an supported elliptic curves extension

At least in the case of SSLv3 we can't send an extention.
Reviewed-by: NMatt Caswell <matt@openssl.org>
MR #811
上级 9c422b5b
...@@ -555,6 +555,20 @@ int tls1_shared_curve(SSL *s, int nmatch) ...@@ -555,6 +555,20 @@ int tls1_shared_curve(SSL *s, int nmatch)
(s, !(s->options & SSL_OP_CIPHER_SERVER_PREFERENCE), &pref, (s, !(s->options & SSL_OP_CIPHER_SERVER_PREFERENCE), &pref,
&num_pref)) &num_pref))
return nmatch == -1 ? 0 : NID_undef; return nmatch == -1 ? 0 : NID_undef;
/*
* If the client didn't send the elliptic_curves extension all of them
* are allowed.
*/
if (num_supp == 0 && (s->options & SSL_OP_CIPHER_SERVER_PREFERENCE) != 0) {
supp = eccurves_all;
num_supp = sizeof(eccurves_all) / 2;
} else if (num_pref == 0 &&
(s->options & SSL_OP_CIPHER_SERVER_PREFERENCE) == 0) {
pref = eccurves_all;
num_pref = sizeof(eccurves_all) / 2;
}
k = 0; k = 0;
for (i = 0; i < num_pref; i++, pref += 2) { for (i = 0; i < num_pref; i++, pref += 2) {
const unsigned char *tsupp = supp; const unsigned char *tsupp = supp;
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册