core: remove MulAssign impl for Scalar

This commit is contained in:
Conrado Gouvea 2024-03-01 14:07:02 -03:00
parent 6e5aff8342
commit d518c5c5cf
4 changed files with 12 additions and 14 deletions

View File

@ -4,6 +4,13 @@ Entries are listed in reverse chronological order.
## Unreleased
## 2.0.0
* Removed the `MulAssign<Identifier<C>> for Scalar<C>` implementation since it
will result in a coherence error in future Rust versions (see #625). In the
unlikely case you're using this, you can replace e.g. `scalar *= identifier`
with `scalar = identifier * scalar`.
## Released
## 1.0.0

View File

@ -149,15 +149,6 @@ where
}
}
impl<C> std::ops::MulAssign<Identifier<C>> for Scalar<C>
where
C: Ciphersuite,
{
fn mul_assign(&mut self, identifier: Identifier<C>) {
*self = *self * identifier.0
}
}
impl<C> std::ops::Sub for Identifier<C>
where
C: Ciphersuite,

View File

@ -610,7 +610,7 @@ fn evaluate_polynomial<C: Ciphersuite>(
let ell_scalar = identifier;
for coeff in coefficients.iter().skip(1).rev() {
value = value + *coeff;
value *= ell_scalar;
value = ell_scalar * value;
}
value = value
+ *coefficients

View File

@ -302,12 +302,12 @@ fn compute_lagrange_coefficient<C: Ciphersuite>(
}
if let Some(x) = x {
num *= x - *x_j;
den *= x_i - *x_j;
num = (x - *x_j) * num;
den = (x_i - *x_j) * den;
} else {
// Both signs inverted just to avoid requiring Neg (-*xj)
num *= *x_j;
den *= *x_j - x_i;
num = *x_j * num;
den = (*x_j - x_i) * den;
}
}
if !x_i_found {