@@ -116,6 +116,7 @@ impl<let N: u32, let MOD_BITS: u32> RuntimeBigNum<N, MOD_BITS> {
116116 // UNCONSTRAINED! (Hence `__` prefix).
117117 pub fn __neg (self ) -> Self {
118118 let params = self .params ;
119+ // Safety: fix
119120 let limbs = unsafe { __neg (params .modulus , self .limbs ) };
120121 Self { params , limbs }
121122 }
@@ -124,6 +125,7 @@ impl<let N: u32, let MOD_BITS: u32> RuntimeBigNum<N, MOD_BITS> {
124125 pub fn __add (self , other : Self ) -> Self {
125126 let params = self .params ;
126127 assert (params == other .params );
128+ // Safety: fix
127129 let limbs = unsafe { __add (params .modulus , self .limbs , other .limbs ) };
128130 Self { params , limbs }
129131 }
@@ -132,6 +134,7 @@ impl<let N: u32, let MOD_BITS: u32> RuntimeBigNum<N, MOD_BITS> {
132134 pub fn __sub (self , other : Self ) -> Self {
133135 let params = self .params ;
134136 assert (params == other .params );
137+ // Safety: fix
135138 let limbs = unsafe { __sub (params .modulus , self .limbs , other .limbs ) };
136139 Self { params , limbs }
137140 }
@@ -140,6 +143,7 @@ impl<let N: u32, let MOD_BITS: u32> RuntimeBigNum<N, MOD_BITS> {
140143 pub fn __mul (self , other : Self ) -> Self {
141144 let params = self .params ;
142145 assert (params == other .params );
146+ // Safety: fix
143147 let limbs = unsafe { __mul ::<_ , MOD_BITS >(params , self .limbs , other .limbs ) };
144148 Self { params , limbs }
145149 }
@@ -148,6 +152,7 @@ impl<let N: u32, let MOD_BITS: u32> RuntimeBigNum<N, MOD_BITS> {
148152 pub fn __div (self , divisor : Self ) -> Self {
149153 let params = self .params ;
150154 assert (params == divisor .params );
155+ // Safety: fix
151156 let limbs = unsafe { __div ::<_ , MOD_BITS >(params , self .limbs , divisor .limbs ) };
152157 Self { params , limbs }
153158 }
@@ -156,6 +161,7 @@ impl<let N: u32, let MOD_BITS: u32> RuntimeBigNum<N, MOD_BITS> {
156161 pub fn __udiv_mod (self , divisor : Self ) -> (Self , Self ) {
157162 let params = self .params ;
158163 assert (params == divisor .params );
164+ // Safety: fix
159165 let (q , r ) = unsafe { __udiv_mod (self .limbs , divisor .limbs ) };
160166 (Self { limbs : q , params }, Self { limbs : r , params })
161167 }
@@ -164,6 +170,7 @@ impl<let N: u32, let MOD_BITS: u32> RuntimeBigNum<N, MOD_BITS> {
164170 pub fn __invmod (self ) -> Self {
165171 let params = self .params ;
166172 assert (params .has_multiplicative_inverse );
173+ // Safety: fix
167174 let limbs = unsafe { __invmod ::<_ , MOD_BITS >(params , self .limbs ) };
168175 Self { limbs , params }
169176 }
@@ -172,13 +179,15 @@ impl<let N: u32, let MOD_BITS: u32> RuntimeBigNum<N, MOD_BITS> {
172179 pub fn __pow (self , exponent : Self ) -> Self {
173180 let params = self .params ;
174181 assert (params == exponent .params );
182+ // Safety: fix
175183 let limbs = unsafe { __pow ::<_ , MOD_BITS >(params , self .limbs , exponent .limbs ) };
176184 Self { limbs , params }
177185 }
178186
179187 // UNCONSTRAINED! (Hence `__` prefix).
180188 pub fn __tonelli_shanks_sqrt (self ) -> std ::option::Option <Self > {
181189 let params = self .params ;
190+ // Safety: fix
182191 let maybe_limbs = unsafe { __tonelli_shanks_sqrt (params , self .limbs ) };
183192 maybe_limbs .map (|limbs | Self { limbs , params })
184193 }
@@ -295,6 +304,7 @@ pub fn __compute_quadratic_expression<let N: u32, let MOD_BITS: u32, let LHS_N:
295304 linear_terms : [RuntimeBigNum <N , MOD_BITS >; ADD_N ],
296305 linear_flags : [bool ; ADD_N ],
297306) -> (RuntimeBigNum <N , MOD_BITS >, RuntimeBigNum <N , MOD_BITS >) {
307+ // Safety: fix
298308 let (q_limbs , r_limbs ) = unsafe {
299309 crate ::fns::expressions:: __compute_quadratic_expression ::<_ , MOD_BITS , _ , _ , _ , _ >(
300310 params ,
@@ -335,6 +345,7 @@ pub fn __batch_invert<let N: u32, let MOD_BITS: u32, let M: u32>(
335345) -> [RuntimeBigNum <N , MOD_BITS >; M ] {
336346 let params = x [0 ].params ;
337347 assert (params .has_multiplicative_inverse );
348+ // Safety: fix
338349 let all_limbs = unsafe {
339350 crate ::fns::unconstrained_ops:: batch_invert ::<_ , MOD_BITS , _ >(
340351 params ,
0 commit comments