File tree Expand file tree Collapse file tree 8 files changed +55
-31
lines changed
Expand file tree Collapse file tree 8 files changed +55
-31
lines changed Original file line number Diff line number Diff line change @@ -47,9 +47,13 @@ impl WiresObject for Fq {
4747
4848impl FromWires for Fq {
4949 fn from_wires ( wires : & [ WireId ] ) -> Option < Self > {
50- Some ( Self ( crate :: gadgets:: bigint:: BigIntWires :: from_bits (
51- wires. iter ( ) . copied ( ) ,
52- ) ) )
50+ if wires. len ( ) == Fq :: N_BITS {
51+ Some ( Self ( crate :: gadgets:: bigint:: BigIntWires :: from_bits (
52+ wires. iter ( ) . copied ( ) ,
53+ ) ) )
54+ } else {
55+ None
56+ }
5357 }
5458}
5559
Original file line number Diff line number Diff line change @@ -35,7 +35,7 @@ impl WiresObject for Fq12 {
3535
3636impl FromWires for Fq12 {
3737 fn from_wires ( wires : & [ WireId ] ) -> Option < Self > {
38- if wires. len ( ) >= 1524 {
38+ if wires. len ( ) == Fq12 :: N_BITS {
3939 // 2 * 3 * 2 * 254 = 3048/2 = 1524 wires per Fq6
4040 let mid = wires. len ( ) / 2 ;
4141 let fq6_1 = Fq6 :: from_wires ( & wires[ ..mid] ) ?;
Original file line number Diff line number Diff line change @@ -48,7 +48,7 @@ impl WiresObject for Fq2 {
4848
4949impl crate :: circuit:: FromWires for Fq2 {
5050 fn from_wires ( wires : & [ WireId ] ) -> Option < Self > {
51- if wires. len ( ) >= 508 {
51+ if wires. len ( ) == Fq2 :: N_BITS {
5252 // 2 * 254 bits
5353 let ( fq1_wires, fq2_wires) = wires. split_at ( 254 ) ;
5454 let fq1 = Fq :: from_wires ( fq1_wires) ?;
Original file line number Diff line number Diff line change @@ -35,13 +35,17 @@ impl WiresObject for Fq6 {
3535
3636impl FromWires for Fq6 {
3737 fn from_wires ( wires : & [ WireId ] ) -> Option < Self > {
38- let len = wires. len ( ) / 3 ;
39- let mut chunks = wires. chunks ( len) ;
40- Some ( Self ( [
41- Fq2 :: from_wires ( chunks. next ( ) ?) ?,
42- Fq2 :: from_wires ( chunks. next ( ) ?) ?,
43- Fq2 :: from_wires ( chunks. next ( ) ?) ?,
44- ] ) )
38+ if wires. len ( ) == Fq6 :: N_BITS {
39+ let len = wires. len ( ) / 3 ;
40+ let mut chunks = wires. chunks ( len) ;
41+ Some ( Self ( [
42+ Fq2 :: from_wires ( chunks. next ( ) ?) ?,
43+ Fq2 :: from_wires ( chunks. next ( ) ?) ?,
44+ Fq2 :: from_wires ( chunks. next ( ) ?) ?,
45+ ] ) )
46+ } else {
47+ None
48+ }
4549 }
4650}
4751
Original file line number Diff line number Diff line change @@ -55,9 +55,13 @@ impl WiresObject for Fr {
5555
5656impl crate :: circuit:: FromWires for Fr {
5757 fn from_wires ( wires : & [ WireId ] ) -> Option < Self > {
58- Some ( Self ( crate :: gadgets:: bigint:: BigIntWires :: from_bits (
59- wires. iter ( ) . copied ( ) ,
60- ) ) )
58+ if wires. len ( ) == Fr :: N_BITS {
59+ Some ( Self ( crate :: gadgets:: bigint:: BigIntWires :: from_bits (
60+ wires. iter ( ) . copied ( ) ,
61+ ) ) )
62+ } else {
63+ None
64+ }
6165 }
6266}
6367
Original file line number Diff line number Diff line change @@ -38,13 +38,17 @@ impl WiresObject for G1Projective {
3838
3939impl FromWires for G1Projective {
4040 fn from_wires ( wires : & [ WireId ] ) -> Option < Self > {
41- let len = wires. len ( ) / 3 ;
42- let mut chunks = wires. chunks ( len) ;
43- Some ( Self {
44- x : Fq :: from_wires ( chunks. next ( ) ?) ?,
45- y : Fq :: from_wires ( chunks. next ( ) ?) ?,
46- z : Fq :: from_wires ( chunks. next ( ) ?) ?,
47- } )
41+ if wires. len ( ) == G1Projective :: N_BITS {
42+ let len = wires. len ( ) / 3 ;
43+ let mut chunks = wires. chunks ( len) ;
44+ Some ( Self {
45+ x : Fq :: from_wires ( chunks. next ( ) ?) ?,
46+ y : Fq :: from_wires ( chunks. next ( ) ?) ?,
47+ z : Fq :: from_wires ( chunks. next ( ) ?) ?,
48+ } )
49+ } else {
50+ None
51+ }
4852 }
4953}
5054
Original file line number Diff line number Diff line change @@ -41,13 +41,17 @@ impl WiresObject for G2Projective {
4141
4242impl FromWires for G2Projective {
4343 fn from_wires ( wires : & [ WireId ] ) -> Option < Self > {
44- let len = wires. len ( ) / 3 ;
45- let mut chunks = wires. chunks ( len) ;
46- Some ( Self {
47- x : Fq2 :: from_wires ( chunks. next ( ) ?) ?,
48- y : Fq2 :: from_wires ( chunks. next ( ) ?) ?,
49- z : Fq2 :: from_wires ( chunks. next ( ) ?) ?,
50- } )
44+ if wires. len ( ) == G2Projective :: N_BITS {
45+ let len = wires. len ( ) / 3 ;
46+ let mut chunks = wires. chunks ( len) ;
47+ Some ( Self {
48+ x : Fq2 :: from_wires ( chunks. next ( ) ?) ?,
49+ y : Fq2 :: from_wires ( chunks. next ( ) ?) ?,
50+ z : Fq2 :: from_wires ( chunks. next ( ) ?) ?,
51+ } )
52+ } else {
53+ None
54+ }
5155 }
5256}
5357
Original file line number Diff line number Diff line change @@ -336,9 +336,13 @@ fn g2_line_coeffs_add<C: CircuitContext>(
336336
337337impl FromWires for ( G2Projective , Fq6 ) {
338338 fn from_wires ( wires : & [ crate :: WireId ] ) -> Option < Self > {
339- let ( g2, fq6) = wires. split_at ( G2Projective :: ARITY ) ;
339+ if wires. len ( ) == G2Projective :: N_BITS + Fq6 :: N_BITS {
340+ let ( g2, fq6) = wires. split_at ( G2Projective :: ARITY ) ;
340341
341- Some ( ( G2Projective :: from_wires ( g2) ?, Fq6 :: from_wires ( fq6) ?) )
342+ Some ( ( G2Projective :: from_wires ( g2) ?, Fq6 :: from_wires ( fq6) ?) )
343+ } else {
344+ None
345+ }
342346 }
343347}
344348
You can’t perform that action at this time.
0 commit comments