Make multiexp generic on the size of the Scalar (#221)

This commit is contained in:
Iñigo Querejeta Azurmendi 2023-10-31 08:43:01 +01:00 committed by GitHub
parent 0c3e3b5695
commit b6640231a5
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 3 additions and 3 deletions

View File

@ -40,7 +40,7 @@ fn multiexp_serial<C: CurveAffine>(coeffs: &[C::Scalar], bases: &[C], acc: &mut
let skip_bits = segment * c;
let skip_bytes = skip_bits / 8;
if skip_bytes >= 32 {
if skip_bytes >= (F::NUM_BITS as usize + 7) / 8 {
return 0;
}
@ -56,7 +56,7 @@ fn multiexp_serial<C: CurveAffine>(coeffs: &[C::Scalar], bases: &[C], acc: &mut
tmp as usize
}
let segments = (256 / c) + 1;
let segments = (C::Scalar::NUM_BITS as usize / c) + 1;
for current_segment in (0..segments).rev() {
for _ in 0..c {
@ -122,7 +122,7 @@ pub fn small_multiexp<C: CurveAffine>(coeffs: &[C::Scalar], bases: &[C]) -> C::C
let mut acc = C::Curve::identity();
// for byte idx
for byte_idx in (0..32).rev() {
for byte_idx in (0..((C::Scalar::NUM_BITS as usize + 7) / 8)).rev() {
// for bit idx
for bit_idx in (0..8).rev() {
acc = acc.double();