Fix BN_gcd errors for some curves
Those even order that do not play nicely with Montgomery arithmetic Signed-off-by: Rich Salz <rsalz@openssl.org> Reviewed-by: Emilia Käsper <emilia@openssl.org>
This commit is contained in:
@@ -327,13 +327,18 @@ int EC_GROUP_set_generator(EC_GROUP *group, const EC_POINT *generator,
|
|||||||
} else
|
} else
|
||||||
BN_zero(group->cofactor);
|
BN_zero(group->cofactor);
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* We ignore the return value because some groups have an order with
|
* Some groups have an order with
|
||||||
* factors of two, which makes the Montgomery setup fail.
|
* factors of two, which makes the Montgomery setup fail.
|
||||||
* |group->mont_data| will be NULL in this case.
|
* |group->mont_data| will be NULL in this case.
|
||||||
*/
|
*/
|
||||||
ec_precompute_mont_data(group);
|
if (BN_is_odd(group->order)) {
|
||||||
|
return ec_precompute_mont_data(group);
|
||||||
|
}
|
||||||
|
|
||||||
|
BN_MONT_CTX_free(group->mont_data);
|
||||||
|
group->mont_data = NULL;
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user