File tree Expand file tree Collapse file tree 2 files changed +25
-5
lines changed
src/net/i2p/crypto/eddsa/math/radix251
test/net/i2p/crypto/eddsa/math/bigint Expand file tree Collapse file tree 2 files changed +25
-5
lines changed Original file line number Diff line number Diff line change 11package net .i2p .crypto .eddsa .math .radix251 ;
22
3+ import net .i2p .crypto .eddsa .TestUtils ;
34import net .i2p .crypto .eddsa .math .Field ;
45import net .i2p .crypto .eddsa .math .FieldElement ;
56
@@ -947,4 +948,24 @@ public FieldElement pow22523() {
947948 // z_252_3 = z_252_2*z1
948949 return multiply (t0 );
949950 }
951+
952+ @ Override
953+ public int hashCode () {
954+ return t .hashCode (); // TODO should this be something else?
955+ }
956+
957+ @ Override
958+ public boolean equals (Object obj ) {
959+ if (!(obj instanceof Radix251FieldElement ))
960+ return false ;
961+ Radix251FieldElement fe = (Radix251FieldElement ) obj ;
962+ // XXX why does direct byte[] comparison fail?
963+ // TODO should this be constant time?
964+ return TestUtils .getHex (toByteArray ()).equals (TestUtils .getHex (fe .toByteArray ()));
965+ }
966+
967+ @ Override
968+ public String toString () {
969+ return "[Radix251FieldElement val=" +TestUtils .getHex (toByteArray ())+"]" ;
970+ }
950971}
Original file line number Diff line number Diff line change 88import net .i2p .crypto .eddsa .Utils ;
99import net .i2p .crypto .eddsa .math .Field ;
1010import net .i2p .crypto .eddsa .math .FieldElement ;
11- import net .i2p .crypto .eddsa .spec .EdDSANamedCurveSpec ;
12- import net .i2p .crypto .eddsa .spec .EdDSANamedCurveTable ;
13-
1411import org .junit .Test ;
1512
1613/**
@@ -22,8 +19,10 @@ public class BigIntegerFieldElementTest {
2219 static final byte [] BYTES_ONE = Utils .hexToBytes ("0100000000000000000000000000000000000000000000000000000000000000" );
2320 static final byte [] BYTES_TEN = Utils .hexToBytes ("0a00000000000000000000000000000000000000000000000000000000000000" );
2421
25- static final EdDSANamedCurveSpec ed25519 = EdDSANamedCurveTable .getByName ("ed25519-sha-512" );
26- static final Field ed25519Field = ed25519 .getCurve ().getField ();
22+ static final Field ed25519Field = new Field (
23+ 256 , // b
24+ Utils .hexToBytes ("edffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f" ), // q
25+ new BigIntegerLittleEndianEncoding ());
2726
2827 static final FieldElement ZERO = new BigIntegerFieldElement (ed25519Field , BigInteger .ZERO );
2928 static final FieldElement ONE = new BigIntegerFieldElement (ed25519Field , BigInteger .ONE );
You can’t perform that action at this time.
0 commit comments