Fix SSL_OP_SINGLE_ECDH_USE

Don't require a public key in tls1_set_ec_id if compression status is
not needed. This fixes a bug where SSL_OP_SINGLE_ECDH_USE wouldn't work.
This commit is contained in:
Piotr Sikora 2013-11-01 21:35:46 +00:00 committed by Dr. Stephen Henson
parent f14a4a861d
commit 5ff68e8f6d

View file

@ -590,14 +590,12 @@ static int tls1_set_ec_id(unsigned char *curve_id, unsigned char *comp_id,
{
int is_prime, id;
const EC_GROUP *grp;
const EC_POINT *pt;
const EC_METHOD *meth;
if (!ec)
return 0;
/* Determine if it is a prime field */
grp = EC_KEY_get0_group(ec);
pt = EC_KEY_get0_public_key(ec);
if (!grp || !pt)
if (!grp)
return 0;
meth = EC_GROUP_method_of(grp);
if (!meth)
@ -625,6 +623,8 @@ static int tls1_set_ec_id(unsigned char *curve_id, unsigned char *comp_id,
}
if (comp_id)
{
if (EC_KEY_get0_public_key(ec) == NULL)
return 0;
if (EC_KEY_get_conv_form(ec) == POINT_CONVERSION_COMPRESSED)
{
if (is_prime)