Skip to content

Commit ac53960

Browse files
committed
Fixes to get tests passing
1 parent f1a1902 commit ac53960

File tree

2 files changed

+25
-5
lines changed

2 files changed

+25
-5
lines changed

src/net/i2p/crypto/eddsa/math/radix251/Radix251FieldElement.java

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package net.i2p.crypto.eddsa.math.radix251;
22

3+
import net.i2p.crypto.eddsa.TestUtils;
34
import net.i2p.crypto.eddsa.math.Field;
45
import 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
}

test/net/i2p/crypto/eddsa/math/bigint/BigIntegerFieldElementTest.java

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -8,9 +8,6 @@
88
import net.i2p.crypto.eddsa.Utils;
99
import net.i2p.crypto.eddsa.math.Field;
1010
import net.i2p.crypto.eddsa.math.FieldElement;
11-
import net.i2p.crypto.eddsa.spec.EdDSANamedCurveSpec;
12-
import net.i2p.crypto.eddsa.spec.EdDSANamedCurveTable;
13-
1411
import 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);

0 commit comments

Comments
 (0)