handle negative scalars correctly when doing point multiplication

This commit is contained in:
Bodo Möller
2001-03-11 08:44:50 +00:00
parent 616df35633
commit 86a921af06
2 changed files with 25 additions and 2 deletions

View File

@@ -187,10 +187,18 @@ int EC_POINTs_mul(const EC_GROUP *group, EC_POINT *r, BIGNUM *scalar,
if (i < num)
{
if (!EC_POINT_copy(val_sub[i][0], points[i])) goto err;
if (scalars[i]->neg)
{
if (!EC_POINT_invert(group, val_sub[i][0], ctx)) goto err;
}
}
else
{
if (!EC_POINT_copy(val_sub[i][0], generator)) goto err;
if (scalar->neg)
{
if (!EC_POINT_invert(group, val_sub[i][0], ctx)) goto err;
}
}
if (wsize[i] > 1)