Skip to content

Commit fbffb7b

Browse files
committed
merge conflict
2 parents cb7d63c + 4cfe4f6 commit fbffb7b

File tree

14 files changed

+292
-118
lines changed

14 files changed

+292
-118
lines changed

.github/workflows/test.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ on:
88

99
env:
1010
CARGO_TERM_COLOR: always
11-
MINIMUM_NOIR_VERSION: v1.0.0-beta.6
11+
MINIMUM_NOIR_VERSION: v1.0.0-beta.7
1212

1313
jobs:
1414
noir-version-list:

src/curve_jac.nr

Lines changed: 28 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -319,11 +319,11 @@ where
319319
result = (CurveJ::point_at_infinity(), JTranscript::new());
320320
} else if (lhs_infinity & !rhs_infinity) {
321321
let new_transcript =
322-
JTranscript { x3: p2.x, y3: p2.y, z3: B::one(), lambda_numerator: B::zero() };
322+
JTranscript { x3: p2.x, y3: p2.y, z3: p2.z, lambda_numerator: B::zero() };
323323
result = (p2, new_transcript);
324324
} else if (rhs_infinity & !lhs_infinity) {
325325
let new_transcript =
326-
JTranscript { x3: self.x, y3: self.y, z3: B::one(), lambda_numerator: B::zero() };
326+
JTranscript { x3: self.x, y3: self.y, z3: self.z, lambda_numerator: B::zero() };
327327
result = (self, new_transcript);
328328
}
329329
result
@@ -667,16 +667,17 @@ where
667667
mut points: [Self; Size],
668668
mut scalars: [ScalarField<NScalarSlices>; Size],
669669
) -> (Self, [AffineTranscript<B>; NScalarSlices * Size + NScalarSlices * 4 + Size * 9 - 3]) {
670-
let mut (accumulator, transcript): (Self, [JTranscript<B>; NScalarSlices * Size + NScalarSlices * 4 + Size * 9 - 3]) =
671-
CurveJ::msm_partial(points, scalars);
672-
let op = accumulator.sub(CurveJ::offset_generator_final());
673-
transcript[73 * Size + 252] = op.1;
674-
accumulator = op.0;
675-
let affine_transcript: [AffineTranscript<B>; NScalarSlices * Size + NScalarSlices * 4 + Size * 9 - 3] =
676-
AffineTranscript::from_jacobian_transcript(transcript);
670+
let mut (accumulator, transcript)
671+
: (Self, [JTranscript<B>; NScalarSlices * Size + NScalarSlices * 4 + Size * 9 - 3]) =
672+
CurveJ::msm_partial(points, scalars);
673+
let op = accumulator.sub(CurveJ::offset_generator_final());
674+
transcript[73 * Size + 252] = op.1;
675+
accumulator = op.0;
676+
let affine_transcript: [AffineTranscript<B>; NScalarSlices * Size + NScalarSlices * 4 + Size * 9 - 3] =
677+
AffineTranscript::from_jacobian_transcript(transcript);
677678

678-
(accumulator, affine_transcript)
679-
}
679+
(accumulator, affine_transcript)
680+
}
680681

681682
pub(crate) unconstrained fn compute_linear_expression_transcript<let NScalarSlices: u32, let NMuls: u32, let NAdds: u32>(
682683
mut mul_points: [Curve; NMuls],
@@ -692,22 +693,23 @@ where
692693
add_j[i] = CurveJ::from(add_points[i]);
693694
}
694695

695-
let mut (accumulator, transcript): (Self, [JTranscript<B>; NScalarSlices * NMuls + NScalarSlices * 4 + NMuls * 9 + NAdds - 3]) =
696-
CurveJ::msm_partial(mul_j, scalars);
697-
let mut transcript_ptr: u32 = NScalarSlices * NMuls + NScalarSlices * 4 + NMuls * 9 - 4;
698-
for i in 0..NAdds {
699-
let op = accumulator.conditional_incomplete_add(add_j[i], !add_j[i].is_infinity);
696+
let mut (accumulator, transcript)
697+
: (Self, [JTranscript<B>; NScalarSlices * NMuls + NScalarSlices * 4 + NMuls * 9 + NAdds - 3]) =
698+
CurveJ::msm_partial(mul_j, scalars);
699+
let mut transcript_ptr: u32 = NScalarSlices * NMuls + NScalarSlices * 4 + NMuls * 9 - 4;
700+
for i in 0..NAdds {
701+
let op = accumulator.conditional_incomplete_add(add_j[i], !add_j[i].is_infinity);
702+
transcript[transcript_ptr] = op.1;
703+
accumulator = op.0;
704+
transcript_ptr += 1;
705+
}
706+
707+
let op = accumulator.sub(CurveJ::offset_generator_final());
700708
transcript[transcript_ptr] = op.1;
701709
accumulator = op.0;
702-
transcript_ptr += 1;
703-
}
710+
let affine_transcript: [AffineTranscript<B>; NScalarSlices * NMuls + NScalarSlices * 4 + NMuls * 9 + NAdds - 3] =
711+
AffineTranscript::from_jacobian_transcript(transcript);
704712

705-
let op = accumulator.sub(CurveJ::offset_generator_final());
706-
transcript[transcript_ptr] = op.1;
707-
accumulator = op.0;
708-
let affine_transcript: [AffineTranscript<B>; NScalarSlices * NMuls + NScalarSlices * 4 + NMuls * 9 + NAdds - 3] =
709-
AffineTranscript::from_jacobian_transcript(transcript);
710-
711-
(accumulator, affine_transcript)
712-
}
713+
(accumulator, affine_transcript)
714+
}
713715
}

src/curves/bls12_377.nr

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -125,4 +125,11 @@ mod test {
125125
);
126126
}
127127

128+
#[test]
129+
unconstrained fn test_scalar_field_conversion(seed: [u8; 10]) {
130+
let num: BLS12_377_Fr = BLS12_377_Fr::derive_from_seed(seed);
131+
let scalar_field = BLS12_377Scalar::from_bignum(num);
132+
let bignum = scalar_field.into_bignum();
133+
assert(bignum == num);
134+
}
128135
}

src/curves/bls12_381.nr

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -122,4 +122,12 @@ mod test {
122122
);
123123
}
124124

125+
#[test]
126+
unconstrained fn test_scalar_field_conversion(seed: [u8; 10]) {
127+
let num: BLS12_381_Fr = BLS12_381_Fr::derive_from_seed(seed);
128+
let scalar_field = BLS12_381Scalar::from_bignum(num);
129+
let bignum = scalar_field.into_bignum();
130+
assert(bignum == num);
131+
}
132+
125133
}

src/curves/bn254.nr

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -101,4 +101,12 @@ mod test {
101101
// BN254 cofactor is 1
102102
crate::utils::derive_offset_generators::verify_offset_generators::<BN254_Fq, BN254>(1);
103103
}
104+
105+
#[test]
106+
unconstrained fn test_scalar_field_conversion(seed: [u8; 10]) {
107+
let num: BN254_Fq = BN254_Fq::derive_from_seed(seed);
108+
let scalar_field = BN254Scalar::from_bignum(num);
109+
let bignum = scalar_field.into_bignum();
110+
assert(bignum == num);
111+
}
104112
}

src/curves/mnt4_753.nr

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -147,4 +147,12 @@ mod test {
147147
1,
148148
);
149149
}
150+
151+
#[test]
152+
unconstrained fn test_scalar_field_conversion(seed: [u8; 10]) {
153+
let num: MNT4_753_Fr = MNT4_753_Fr::derive_from_seed(seed);
154+
let scalar_field = MNT4_753Scalar::from_bignum(num);
155+
let bignum = scalar_field.into_bignum();
156+
assert(bignum == num);
157+
}
150158
}

src/curves/mnt6_753.nr

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -147,4 +147,12 @@ mod test {
147147
);
148148
}
149149

150+
#[test]
151+
unconstrained fn test_scalar_field_conversion(seed: [u8; 10]) {
152+
let num: MNT6_753_Fr = MNT6_753_Fr::derive_from_seed(seed);
153+
let scalar_field = MNT6_753Scalar::from_bignum(num);
154+
let bignum = scalar_field.into_bignum();
155+
assert(bignum == num);
156+
}
157+
150158
}

src/curves/pallas.nr

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -106,4 +106,12 @@ mod test {
106106
crate::utils::derive_offset_generators::verify_offset_generators::<Pallas_Fq, Pallas>(1);
107107
}
108108

109+
#[test]
110+
unconstrained fn test_scalar_field_conversion(seed: [u8; 10]) {
111+
let num: Pallas_Fr = Pallas_Fr::derive_from_seed(seed);
112+
let scalar_field = PallasScalar::from_bignum(num);
113+
let bignum = scalar_field.into_bignum();
114+
assert(bignum == num);
115+
}
116+
109117
}

src/curves/secp256k1.nr

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -116,4 +116,12 @@ mod test {
116116
1,
117117
);
118118
}
119+
120+
#[test]
121+
unconstrained fn test_scalar_field_conversion(seed: [u8; 10]) {
122+
let num: Secp256k1_Fr = Secp256k1_Fr::derive_from_seed(seed);
123+
let scalar_field = Secp256k1Scalar::from_bignum(num);
124+
let bignum = scalar_field.into_bignum();
125+
assert(bignum == num);
126+
}
119127
}

src/curves/secp256r1.nr

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -125,4 +125,12 @@ mod test {
125125
);
126126
}
127127

128+
#[test]
129+
unconstrained fn test_scalar_field_conversion(seed: [u8; 10]) {
130+
let num: Secp256r1_Fr = Secp256r1_Fr::derive_from_seed(seed);
131+
let scalar_field = Secp256r1Scalar::from_bignum(num);
132+
let bignum = scalar_field.into_bignum();
133+
assert(bignum == num);
134+
}
135+
128136
}

0 commit comments

Comments
 (0)