@@ -6,7 +6,7 @@ use core::ops::{Add, AddAssign, Mul, MulAssign, Neg, Sub, SubAssign};
66use elliptic_curve:: CurveGroup ;
77use elliptic_curve:: bigint:: U448 ;
88
9- use super :: { MontgomeryPoint , MontgomeryScalar , MontgomeryXpoint , ProjectiveMontgomeryPoint } ;
9+ use super :: { AffineMontgomeryPoint , MontgomeryScalar , MontgomeryXpoint , ProjectiveMontgomeryPoint } ;
1010
1111impl Add < & ProjectiveMontgomeryPoint > for & ProjectiveMontgomeryPoint {
1212 type Output = ProjectiveMontgomeryPoint ;
@@ -52,12 +52,12 @@ define_add_variants!(
5252 Output = ProjectiveMontgomeryPoint
5353) ;
5454
55- impl Add < & MontgomeryPoint > for & ProjectiveMontgomeryPoint {
55+ impl Add < & AffineMontgomeryPoint > for & ProjectiveMontgomeryPoint {
5656 type Output = ProjectiveMontgomeryPoint ;
5757
5858 // See Complete Addition Law for Montgomery Curves - Algorithm 2.
5959 // With "Trade-Off Technique".
60- fn add ( self , rhs : & MontgomeryPoint ) -> ProjectiveMontgomeryPoint {
60+ fn add ( self , rhs : & AffineMontgomeryPoint ) -> ProjectiveMontgomeryPoint {
6161 let ( x1, y1, z1) = ( self . U , self . V , self . W ) ;
6262 let ( x2, y2) = ( rhs. U , rhs. V ) ;
6363
@@ -92,11 +92,11 @@ impl Add<&MontgomeryPoint> for &ProjectiveMontgomeryPoint {
9292
9393define_add_variants ! (
9494 LHS = ProjectiveMontgomeryPoint ,
95- RHS = MontgomeryPoint ,
95+ RHS = AffineMontgomeryPoint ,
9696 Output = ProjectiveMontgomeryPoint
9797) ;
9898
99- impl Add < & ProjectiveMontgomeryPoint > for & MontgomeryPoint {
99+ impl Add < & ProjectiveMontgomeryPoint > for & AffineMontgomeryPoint {
100100 type Output = ProjectiveMontgomeryPoint ;
101101
102102 fn add ( self , other : & ProjectiveMontgomeryPoint ) -> ProjectiveMontgomeryPoint {
@@ -105,7 +105,7 @@ impl Add<&ProjectiveMontgomeryPoint> for &MontgomeryPoint {
105105}
106106
107107define_add_variants ! (
108- LHS = MontgomeryPoint ,
108+ LHS = AffineMontgomeryPoint ,
109109 RHS = ProjectiveMontgomeryPoint ,
110110 Output = ProjectiveMontgomeryPoint
111111) ;
@@ -121,21 +121,21 @@ define_add_assign_variants!(
121121 RHS = ProjectiveMontgomeryPoint
122122) ;
123123
124- impl AddAssign < & MontgomeryPoint > for ProjectiveMontgomeryPoint {
125- fn add_assign ( & mut self , rhs : & MontgomeryPoint ) {
124+ impl AddAssign < & AffineMontgomeryPoint > for ProjectiveMontgomeryPoint {
125+ fn add_assign ( & mut self , rhs : & AffineMontgomeryPoint ) {
126126 * self += Self :: from ( * rhs) ;
127127 }
128128}
129129
130- define_add_assign_variants ! ( LHS = ProjectiveMontgomeryPoint , RHS = MontgomeryPoint ) ;
130+ define_add_assign_variants ! ( LHS = ProjectiveMontgomeryPoint , RHS = AffineMontgomeryPoint ) ;
131131
132- impl AddAssign < & ProjectiveMontgomeryPoint > for MontgomeryPoint {
132+ impl AddAssign < & ProjectiveMontgomeryPoint > for AffineMontgomeryPoint {
133133 fn add_assign ( & mut self , rhs : & ProjectiveMontgomeryPoint ) {
134134 * self = ( ProjectiveMontgomeryPoint :: from ( * self ) + rhs) . into ( ) ;
135135 }
136136}
137137
138- define_add_assign_variants ! ( LHS = MontgomeryPoint , RHS = ProjectiveMontgomeryPoint ) ;
138+ define_add_assign_variants ! ( LHS = AffineMontgomeryPoint , RHS = ProjectiveMontgomeryPoint ) ;
139139
140140impl Mul < & MontgomeryScalar > for & ProjectiveMontgomeryPoint {
141141 type Output = ProjectiveMontgomeryPoint ;
@@ -152,15 +152,15 @@ define_mul_variants!(
152152 Output = ProjectiveMontgomeryPoint
153153) ;
154154
155- impl Mul < & MontgomeryScalar > for & MontgomeryPoint {
155+ impl Mul < & MontgomeryScalar > for & AffineMontgomeryPoint {
156156 type Output = ProjectiveMontgomeryPoint ;
157157
158158 // Montgomery curves and their arithmetic - Algorithm 6
159159 // https://eprint.iacr.org/2017/212.pdf
160160 fn mul ( self , rhs : & MontgomeryScalar ) -> ProjectiveMontgomeryPoint {
161161 pub const A2 : FieldElement = FieldElement ( ConstMontyType :: new ( & U448 :: from_u64 ( 312652 ) ) ) ;
162162
163- let MontgomeryPoint { U : xP, V : yP } = self ;
163+ let AffineMontgomeryPoint { U : xP, V : yP } = self ;
164164 let (
165165 ProjectiveMontgomeryXpoint { U : xQ, W : zQ } ,
166166 ProjectiveMontgomeryXpoint { U : xD, W : zD } ,
@@ -191,7 +191,7 @@ impl Mul<&MontgomeryScalar> for &MontgomeryPoint {
191191}
192192
193193define_mul_variants ! (
194- LHS = MontgomeryPoint ,
194+ LHS = AffineMontgomeryPoint ,
195195 RHS = MontgomeryScalar ,
196196 Output = ProjectiveMontgomeryPoint
197197) ;
@@ -239,21 +239,21 @@ define_sub_variants!(
239239 Output = ProjectiveMontgomeryPoint
240240) ;
241241
242- impl Sub < & MontgomeryPoint > for & ProjectiveMontgomeryPoint {
242+ impl Sub < & AffineMontgomeryPoint > for & ProjectiveMontgomeryPoint {
243243 type Output = ProjectiveMontgomeryPoint ;
244244
245- fn sub ( self , other : & MontgomeryPoint ) -> ProjectiveMontgomeryPoint {
245+ fn sub ( self , other : & AffineMontgomeryPoint ) -> ProjectiveMontgomeryPoint {
246246 * self - ProjectiveMontgomeryPoint :: from ( * other)
247247 }
248248}
249249
250250define_sub_variants ! (
251251 LHS = ProjectiveMontgomeryPoint ,
252- RHS = MontgomeryPoint ,
252+ RHS = AffineMontgomeryPoint ,
253253 Output = ProjectiveMontgomeryPoint
254254) ;
255255
256- impl Sub < & ProjectiveMontgomeryPoint > for & MontgomeryPoint {
256+ impl Sub < & ProjectiveMontgomeryPoint > for & AffineMontgomeryPoint {
257257 type Output = ProjectiveMontgomeryPoint ;
258258
259259 fn sub ( self , other : & ProjectiveMontgomeryPoint ) -> ProjectiveMontgomeryPoint {
@@ -262,7 +262,7 @@ impl Sub<&ProjectiveMontgomeryPoint> for &MontgomeryPoint {
262262}
263263
264264define_sub_variants ! (
265- LHS = MontgomeryPoint ,
265+ LHS = AffineMontgomeryPoint ,
266266 RHS = ProjectiveMontgomeryPoint ,
267267 Output = ProjectiveMontgomeryPoint
268268) ;
@@ -278,21 +278,21 @@ define_sub_assign_variants!(
278278 RHS = ProjectiveMontgomeryPoint
279279) ;
280280
281- impl SubAssign < & MontgomeryPoint > for ProjectiveMontgomeryPoint {
282- fn sub_assign ( & mut self , rhs : & MontgomeryPoint ) {
281+ impl SubAssign < & AffineMontgomeryPoint > for ProjectiveMontgomeryPoint {
282+ fn sub_assign ( & mut self , rhs : & AffineMontgomeryPoint ) {
283283 * self -= ProjectiveMontgomeryPoint :: from ( * rhs) ;
284284 }
285285}
286286
287- define_sub_assign_variants ! ( LHS = ProjectiveMontgomeryPoint , RHS = MontgomeryPoint ) ;
287+ define_sub_assign_variants ! ( LHS = ProjectiveMontgomeryPoint , RHS = AffineMontgomeryPoint ) ;
288288
289- impl SubAssign < & ProjectiveMontgomeryPoint > for MontgomeryPoint {
289+ impl SubAssign < & ProjectiveMontgomeryPoint > for AffineMontgomeryPoint {
290290 fn sub_assign ( & mut self , rhs : & ProjectiveMontgomeryPoint ) {
291291 * self = ( ProjectiveMontgomeryPoint :: from ( * self ) - rhs) . into ( ) ;
292292 }
293293}
294294
295- define_sub_assign_variants ! ( LHS = MontgomeryPoint , RHS = ProjectiveMontgomeryPoint ) ;
295+ define_sub_assign_variants ! ( LHS = AffineMontgomeryPoint , RHS = ProjectiveMontgomeryPoint ) ;
296296
297297impl < T > Sum < T > for ProjectiveMontgomeryPoint
298298where
0 commit comments