1- package net .i2p .crypto .eddsa .math .radix251 ;
1+ package net .i2p .crypto .eddsa .math .ed25519 ;
22
33import net .i2p .crypto .eddsa .TestUtils ;
44import net .i2p .crypto .eddsa .math .Field ;
99 * t[0]+2^26 t[1]+2^51 t[2]+2^77 t[3]+2^102 t[4]+...+2^230 t[9].
1010 * Bounds on each t[i] vary depending on context.
1111 */
12- public class Radix251FieldElement extends FieldElement {
12+ public class Ed25519FieldElement extends FieldElement {
1313 /**
1414 * Variable is package private for encoding.
1515 */
1616 int [] t ;
1717
18- public Radix251FieldElement (Field f , int [] t ) {
18+ public Ed25519FieldElement (Field f , int [] t ) {
1919 super (f );
2020 if (t .length != 10 )
2121 throw new IllegalArgumentException ("Invalid radix-2^51 representation" );
@@ -45,7 +45,7 @@ public boolean isNonZero() {
4545 * |h| bounded by 1.1*2^26,1.1*2^25,1.1*2^26,1.1*2^25,etc.
4646 */
4747 public FieldElement add (FieldElement val ) {
48- int [] g = ((Radix251FieldElement )val ).t ;
48+ int [] g = ((Ed25519FieldElement )val ).t ;
4949 int f0 = t [0 ];
5050 int f1 = t [1 ];
5151 int f2 = t [2 ];
@@ -87,7 +87,7 @@ public FieldElement add(FieldElement val) {
8787 h [7 ] = h7 ;
8888 h [8 ] = h8 ;
8989 h [9 ] = h9 ;
90- return new Radix251FieldElement (f , h );
90+ return new Ed25519FieldElement (f , h );
9191 }
9292
9393 /**
@@ -102,7 +102,7 @@ public FieldElement add(FieldElement val) {
102102 * |h| bounded by 1.1*2^26,1.1*2^25,1.1*2^26,1.1*2^25,etc.
103103 **/
104104 public FieldElement subtract (FieldElement val ) {
105- int [] g = ((Radix251FieldElement )val ).t ;
105+ int [] g = ((Ed25519FieldElement )val ).t ;
106106 int f0 = t [0 ];
107107 int f1 = t [1 ];
108108 int f2 = t [2 ];
@@ -144,7 +144,7 @@ public FieldElement subtract(FieldElement val) {
144144 h [7 ] = h7 ;
145145 h [8 ] = h8 ;
146146 h [9 ] = h9 ;
147- return new Radix251FieldElement (f , h );
147+ return new Ed25519FieldElement (f , h );
148148 }
149149
150150 /**
@@ -188,7 +188,7 @@ public FieldElement negate() {
188188 h [7 ] = h7 ;
189189 h [8 ] = h8 ;
190190 h [9 ] = h9 ;
191- return new Radix251FieldElement (f , h );
191+ return new Ed25519FieldElement (f , h );
192192 }
193193
194194 /**
@@ -220,7 +220,7 @@ public FieldElement negate() {
220220 * With tighter constraints on inputs can squeeze carries into int32.
221221 */
222222 public FieldElement multiply (FieldElement val ) {
223- int [] g = ((Radix251FieldElement )val ).t ;
223+ int [] g = ((Ed25519FieldElement )val ).t ;
224224 int f0 = t [0 ];
225225 int f1 = t [1 ];
226226 int f2 = t [2 ];
@@ -437,7 +437,7 @@ public FieldElement multiply(FieldElement val) {
437437 h [7 ] = (int ) h7 ;
438438 h [8 ] = (int ) h8 ;
439439 h [9 ] = (int ) h9 ;
440- return new Radix251FieldElement (f , h );
440+ return new Ed25519FieldElement (f , h );
441441 }
442442
443443 /**
@@ -450,7 +450,7 @@ public FieldElement multiply(FieldElement val) {
450450 * Postconditions:
451451 * |h| bounded by 1.01*2^25,1.01*2^24,1.01*2^25,1.01*2^24,etc.
452452 *
453- * See {@link Radix251FieldElement #multiply(FieldElement)} for discussion
453+ * See {@link Ed25519FieldElement #multiply(FieldElement)} for discussion
454454 * of implementation strategy.
455455 */
456456 public FieldElement square () {
@@ -583,7 +583,7 @@ public FieldElement square() {
583583 h [7 ] = (int ) h7 ;
584584 h [8 ] = (int ) h8 ;
585585 h [9 ] = (int ) h9 ;
586- return new Radix251FieldElement (f , h );
586+ return new Ed25519FieldElement (f , h );
587587 }
588588
589589 /**
@@ -596,7 +596,7 @@ public FieldElement square() {
596596 * Postconditions:
597597 * |h| bounded by 1.01*2^25,1.01*2^24,1.01*2^25,1.01*2^24,etc.
598598 *
599- * See {@link Radix251FieldElement #multiply(FieldElement)} for discussion
599+ * See {@link Ed25519FieldElement #multiply(FieldElement)} for discussion
600600 * of implementation strategy.
601601 */
602602 public FieldElement squareAndDouble () {
@@ -740,7 +740,7 @@ public FieldElement squareAndDouble() {
740740 h [7 ] = (int ) h7 ;
741741 h [8 ] = (int ) h8 ;
742742 h [9 ] = (int ) h9 ;
743- return new Radix251FieldElement (f , h );
743+ return new Ed25519FieldElement (f , h );
744744 }
745745
746746 public FieldElement invert () {
@@ -956,16 +956,16 @@ public int hashCode() {
956956
957957 @ Override
958958 public boolean equals (Object obj ) {
959- if (!(obj instanceof Radix251FieldElement ))
959+ if (!(obj instanceof Ed25519FieldElement ))
960960 return false ;
961- Radix251FieldElement fe = (Radix251FieldElement ) obj ;
961+ Ed25519FieldElement fe = (Ed25519FieldElement ) obj ;
962962 // XXX why does direct byte[] comparison fail?
963963 // TODO should this be constant time?
964964 return TestUtils .getHex (toByteArray ()).equals (TestUtils .getHex (fe .toByteArray ()));
965965 }
966966
967967 @ Override
968968 public String toString () {
969- return "[Radix251FieldElement val=" +TestUtils .getHex (toByteArray ())+"]" ;
969+ return "[Ed25519FieldElement val=" +TestUtils .getHex (toByteArray ())+"]" ;
970970 }
971971}
0 commit comments