Skip to content

Commit 877ccef

Browse files
committed
Re-introduce a constant specifying the name of Ed25519
This partially reverts commit 7dfc91c, with a more usable constant name. The contract is unchanged - users can still specify the string "Ed25519" in any case, and will obtain the curve. Closes #43.
1 parent a176c92 commit 877ccef

File tree

11 files changed

+27
-24
lines changed

11 files changed

+27
-24
lines changed

src/net/i2p/crypto/eddsa/EdDSAPrivateKey.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -63,7 +63,7 @@ public EdDSAPrivateKey(EdDSAPrivateKeySpec spec) {
6363

6464
public EdDSAPrivateKey(PKCS8EncodedKeySpec spec) throws InvalidKeySpecException {
6565
this(new EdDSAPrivateKeySpec(decode(spec.getEncoded()),
66-
EdDSANamedCurveTable.getByName("Ed25519")));
66+
EdDSANamedCurveTable.getByName(EdDSANamedCurveTable.ED_25519)));
6767
}
6868

6969
@Override
@@ -136,7 +136,7 @@ public String getFormat() {
136136
*/
137137
@Override
138138
public byte[] getEncoded() {
139-
if (!edDsaSpec.equals(EdDSANamedCurveTable.getByName("Ed25519")))
139+
if (!edDsaSpec.equals(EdDSANamedCurveTable.getByName(EdDSANamedCurveTable.ED_25519)))
140140
return null;
141141
if (seed == null)
142142
return null;

src/net/i2p/crypto/eddsa/EdDSAPublicKey.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,7 @@ public EdDSAPublicKey(EdDSAPublicKeySpec spec) {
5959

6060
public EdDSAPublicKey(X509EncodedKeySpec spec) throws InvalidKeySpecException {
6161
this(new EdDSAPublicKeySpec(decode(spec.getEncoded()),
62-
EdDSANamedCurveTable.getByName("Ed25519")));
62+
EdDSANamedCurveTable.getByName(EdDSANamedCurveTable.ED_25519)));
6363
}
6464

6565
@Override
@@ -113,7 +113,7 @@ public String getFormat() {
113113
*/
114114
@Override
115115
public byte[] getEncoded() {
116-
if (!edDsaSpec.equals(EdDSANamedCurveTable.getByName("Ed25519")))
116+
if (!edDsaSpec.equals(EdDSANamedCurveTable.getByName(EdDSANamedCurveTable.ED_25519)))
117117
return null;
118118
int totlen = 12 + Abyte.length;
119119
byte[] rv = new byte[totlen];

src/net/i2p/crypto/eddsa/KeyPairGenerator.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ public final class KeyPairGenerator extends KeyPairGeneratorSpi {
4040
static {
4141
edParameters = new Hashtable<Integer, AlgorithmParameterSpec>();
4242

43-
edParameters.put(Integer.valueOf(256), new EdDSAGenParameterSpec("Ed25519"));
43+
edParameters.put(Integer.valueOf(256), new EdDSAGenParameterSpec(EdDSANamedCurveTable.ED_25519));
4444
}
4545

4646
public void initialize(int keysize, SecureRandom random) {

src/net/i2p/crypto/eddsa/spec/EdDSANamedCurveTable.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,8 @@
2626
*
2727
*/
2828
public class EdDSANamedCurveTable {
29+
public static final String ED_25519 = "Ed25519";
30+
2931
private static final Field ed25519field = new Field(
3032
256, // b
3133
Utils.hexToBytes("edffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f"), // q
@@ -36,7 +38,7 @@ public class EdDSANamedCurveTable {
3638
ed25519field.fromByteArray(Utils.hexToBytes("b0a00e4a271beec478e42fad0618432fa7d7fb3d99004d2b0bdfc14f8024832b"))); // I
3739

3840
private static final EdDSANamedCurveSpec ed25519 = new EdDSANamedCurveSpec(
39-
"Ed25519",
41+
ED_25519,
4042
ed25519curve,
4143
"SHA-512", // H
4244
new Ed25519ScalarOps(), // l

test/net/i2p/crypto/eddsa/EdDSAEngineTest.java

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@ public class EdDSAEngineTest {
4646

4747
@Test
4848
public void testSign() throws Exception {
49-
EdDSAParameterSpec spec = EdDSANamedCurveTable.getByName("Ed25519");
49+
EdDSAParameterSpec spec = EdDSANamedCurveTable.getByName(EdDSANamedCurveTable.ED_25519);
5050
//Signature sgr = Signature.getInstance("EdDSA", "I2P");
5151
Signature sgr = new EdDSAEngine(MessageDigest.getInstance(spec.getHashAlgorithm()));
5252

@@ -64,7 +64,7 @@ public void testSign() throws Exception {
6464

6565
@Test
6666
public void testVerify() throws Exception {
67-
EdDSAParameterSpec spec = EdDSANamedCurveTable.getByName("Ed25519");
67+
EdDSAParameterSpec spec = EdDSANamedCurveTable.getByName(EdDSANamedCurveTable.ED_25519);
6868
//Signature sgr = Signature.getInstance("EdDSA", "I2P");
6969
Signature sgr = new EdDSAEngine(MessageDigest.getInstance(spec.getHashAlgorithm()));
7070
for (Ed25519TestVectors.TestTuple testCase : Ed25519TestVectors.testCases) {
@@ -84,7 +84,7 @@ public void testVerify() throws Exception {
8484
*/
8585
@Test
8686
public void testVerifyWrongSigLength() throws Exception {
87-
EdDSAParameterSpec spec = EdDSANamedCurveTable.getByName("Ed25519");
87+
EdDSAParameterSpec spec = EdDSANamedCurveTable.getByName(EdDSANamedCurveTable.ED_25519);
8888
//Signature sgr = Signature.getInstance("EdDSA", "I2P");
8989
Signature sgr = new EdDSAEngine(MessageDigest.getInstance(spec.getHashAlgorithm()));
9090
EdDSAPublicKeySpec pubKey = new EdDSAPublicKeySpec(TEST_PK, spec);
@@ -100,7 +100,7 @@ public void testVerifyWrongSigLength() throws Exception {
100100

101101
@Test
102102
public void testSignResetsForReuse() throws Exception {
103-
EdDSAParameterSpec spec = EdDSANamedCurveTable.getByName("Ed25519");
103+
EdDSAParameterSpec spec = EdDSANamedCurveTable.getByName(EdDSANamedCurveTable.ED_25519);
104104
Signature sgr = new EdDSAEngine(MessageDigest.getInstance(spec.getHashAlgorithm()));
105105
EdDSAPrivateKeySpec privKey = new EdDSAPrivateKeySpec(TEST_SEED, spec);
106106
PrivateKey sKey = new EdDSAPrivateKey(privKey);
@@ -117,7 +117,7 @@ public void testSignResetsForReuse() throws Exception {
117117

118118
@Test
119119
public void testVerifyResetsForReuse() throws Exception {
120-
EdDSAParameterSpec spec = EdDSANamedCurveTable.getByName("Ed25519");
120+
EdDSAParameterSpec spec = EdDSANamedCurveTable.getByName(EdDSANamedCurveTable.ED_25519);
121121
Signature sgr = new EdDSAEngine(MessageDigest.getInstance(spec.getHashAlgorithm()));
122122
EdDSAPublicKeySpec pubKey = new EdDSAPublicKeySpec(TEST_PK, spec);
123123
PublicKey vKey = new EdDSAPublicKey(pubKey);
@@ -134,7 +134,7 @@ public void testVerifyResetsForReuse() throws Exception {
134134

135135
@Test
136136
public void testSignOneShotMode() throws Exception {
137-
EdDSAParameterSpec spec = EdDSANamedCurveTable.getByName("Ed25519");
137+
EdDSAParameterSpec spec = EdDSANamedCurveTable.getByName(EdDSANamedCurveTable.ED_25519);
138138
Signature sgr = new EdDSAEngine(MessageDigest.getInstance(spec.getHashAlgorithm()));
139139
EdDSAPrivateKeySpec privKey = new EdDSAPrivateKeySpec(TEST_SEED, spec);
140140
PrivateKey sKey = new EdDSAPrivateKey(privKey);
@@ -148,7 +148,7 @@ public void testSignOneShotMode() throws Exception {
148148

149149
@Test
150150
public void testVerifyOneShotMode() throws Exception {
151-
EdDSAParameterSpec spec = EdDSANamedCurveTable.getByName("Ed25519");
151+
EdDSAParameterSpec spec = EdDSANamedCurveTable.getByName(EdDSANamedCurveTable.ED_25519);
152152
Signature sgr = new EdDSAEngine(MessageDigest.getInstance(spec.getHashAlgorithm()));
153153
EdDSAPublicKeySpec pubKey = new EdDSAPublicKeySpec(TEST_PK, spec);
154154
PublicKey vKey = new EdDSAPublicKey(pubKey);
@@ -162,7 +162,7 @@ public void testVerifyOneShotMode() throws Exception {
162162

163163
@Test
164164
public void testSignOneShotModeMultipleUpdates() throws Exception {
165-
EdDSAParameterSpec spec = EdDSANamedCurveTable.getByName("Ed25519");
165+
EdDSAParameterSpec spec = EdDSANamedCurveTable.getByName(EdDSANamedCurveTable.ED_25519);
166166
Signature sgr = new EdDSAEngine(MessageDigest.getInstance(spec.getHashAlgorithm()));
167167
EdDSAPrivateKeySpec privKey = new EdDSAPrivateKeySpec(TEST_SEED, spec);
168168
PrivateKey sKey = new EdDSAPrivateKey(privKey);
@@ -178,7 +178,7 @@ public void testSignOneShotModeMultipleUpdates() throws Exception {
178178

179179
@Test
180180
public void testVerifyOneShotModeMultipleUpdates() throws Exception {
181-
EdDSAParameterSpec spec = EdDSANamedCurveTable.getByName("Ed25519");
181+
EdDSAParameterSpec spec = EdDSANamedCurveTable.getByName(EdDSANamedCurveTable.ED_25519);
182182
EdDSAPublicKeySpec pubKey = new EdDSAPublicKeySpec(TEST_PK, spec);
183183
Signature sgr = new EdDSAEngine(MessageDigest.getInstance(spec.getHashAlgorithm()));
184184
PublicKey vKey = new EdDSAPublicKey(pubKey);
@@ -194,7 +194,7 @@ public void testVerifyOneShotModeMultipleUpdates() throws Exception {
194194

195195
@Test
196196
public void testSignOneShot() throws Exception {
197-
EdDSAParameterSpec spec = EdDSANamedCurveTable.getByName("Ed25519");
197+
EdDSAParameterSpec spec = EdDSANamedCurveTable.getByName(EdDSANamedCurveTable.ED_25519);
198198
EdDSAPrivateKeySpec privKey = new EdDSAPrivateKeySpec(TEST_SEED, spec);
199199
EdDSAEngine sgr = new EdDSAEngine(MessageDigest.getInstance(spec.getHashAlgorithm()));
200200
PrivateKey sKey = new EdDSAPrivateKey(privKey);
@@ -205,7 +205,7 @@ public void testSignOneShot() throws Exception {
205205

206206
@Test
207207
public void testVerifyOneShot() throws Exception {
208-
EdDSAParameterSpec spec = EdDSANamedCurveTable.getByName("Ed25519");
208+
EdDSAParameterSpec spec = EdDSANamedCurveTable.getByName(EdDSANamedCurveTable.ED_25519);
209209
EdDSAPublicKeySpec pubKey = new EdDSAPublicKeySpec(TEST_PK, spec);
210210
EdDSAEngine sgr = new EdDSAEngine(MessageDigest.getInstance(spec.getHashAlgorithm()));
211211
PublicKey vKey = new EdDSAPublicKey(pubKey);

test/net/i2p/crypto/eddsa/math/ConstantsTest.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@
3131
*
3232
*/
3333
public class ConstantsTest {
34-
static final EdDSANamedCurveSpec ed25519 = EdDSANamedCurveTable.getByName("Ed25519");
34+
static final EdDSANamedCurveSpec ed25519 = EdDSANamedCurveTable.getByName(EdDSANamedCurveTable.ED_25519);
3535
static final Curve curve = ed25519.getCurve();
3636

3737
static final FieldElement ZERO = curve.getField().ZERO;

test/net/i2p/crypto/eddsa/math/GroupElementTest.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ public class GroupElementTest {
3434
static final byte[] BYTES_TENZERO = Utils.hexToBytes("0000000000000000000000000000000000000000000000000000000000000000");
3535
static final byte[] BYTES_ONETEN = Utils.hexToBytes("0a00000000000000000000000000000000000000000000000000000000000080");
3636

37-
static final EdDSANamedCurveSpec ed25519 = EdDSANamedCurveTable.getByName("Ed25519");
37+
static final EdDSANamedCurveSpec ed25519 = EdDSANamedCurveTable.getByName(EdDSANamedCurveTable.ED_25519);
3838
static final Curve curve = ed25519.getCurve();
3939

4040
static final FieldElement ZERO = curve.getField().ZERO;

test/net/i2p/crypto/eddsa/math/MathUtils.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@
2626
public class MathUtils {
2727
private static final int[] exponents = {0, 26, 26 + 25, 2*26 + 25, 2*26 + 2*25, 3*26 + 2*25, 3*26 + 3*25, 4*26 + 3*25, 4*26 + 4*25, 5*26 + 4*25};
2828
private static final SecureRandom random = new SecureRandom();
29-
private static final EdDSANamedCurveSpec ed25519 = EdDSANamedCurveTable.getByName("Ed25519");
29+
private static final EdDSANamedCurveSpec ed25519 = EdDSANamedCurveTable.getByName(EdDSANamedCurveTable.ED_25519);
3030
private static final Curve curve = ed25519.getCurve();
3131
private static final BigInteger d = new BigInteger("-121665").multiply(new BigInteger("121666").modInverse(getQ()));
3232
private static final BigInteger groupOrder = BigInteger.ONE.shiftLeft(252).add(new BigInteger("27742317777372353535851937790883648493"));

test/net/i2p/crypto/eddsa/math/PrecomputationTestVectors.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ public class PrecomputationTestVectors {
2727
static GroupElement[] testDblPrecmp = getDoublePrecomputation("baseDblPrecmp");
2828

2929
public static GroupElement[][] getPrecomputation(String fileName) {
30-
EdDSANamedCurveSpec ed25519 = EdDSANamedCurveTable.getByName("Ed25519");
30+
EdDSANamedCurveSpec ed25519 = EdDSANamedCurveTable.getByName(EdDSANamedCurveTable.ED_25519);
3131
Curve curve = ed25519.getCurve();
3232
Field field = curve.getField();
3333
GroupElement[][] precmp = new GroupElement[32][8];
@@ -70,7 +70,7 @@ else if (line.equals("},")) {
7070
}
7171

7272
public static GroupElement[] getDoublePrecomputation(String fileName) {
73-
EdDSANamedCurveSpec ed25519 = EdDSANamedCurveTable.getByName("Ed25519");
73+
EdDSANamedCurveSpec ed25519 = EdDSANamedCurveTable.getByName(EdDSANamedCurveTable.ED_25519);
7474
Curve curve = ed25519.getCurve();
7575
Field field = curve.getField();
7676
GroupElement[] dblPrecmp = new GroupElement[8];

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@
3030
*/
3131
public class BigIntegerScalarOpsTest {
3232

33-
static final EdDSANamedCurveSpec ed25519 = EdDSANamedCurveTable.getByName("Ed25519");
33+
static final EdDSANamedCurveSpec ed25519 = EdDSANamedCurveTable.getByName(EdDSANamedCurveTable.ED_25519);
3434
static final Field ed25519Field = ed25519.getCurve().getField();
3535

3636
/**

0 commit comments

Comments
 (0)