Skip to content

Commit 7dfc91c

Browse files
committed
Use the canonical name "Ed25519" in the named curve table
Ref: https://tools.ietf.org/html/draft-ietf-curdle-pkix-04 section 8
1 parent 8497fa1 commit 7dfc91c

File tree

11 files changed

+28
-32
lines changed

11 files changed

+28
-32
lines changed

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

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

5454
public EdDSAPrivateKey(PKCS8EncodedKeySpec spec) throws InvalidKeySpecException {
5555
this(new EdDSAPrivateKeySpec(decode(spec.getEncoded()),
56-
EdDSANamedCurveTable.getByName(EdDSANamedCurveTable.CURVE_ED25519_SHA512)));
56+
EdDSANamedCurveTable.getByName("Ed25519")));
5757
}
5858

5959
@Override
@@ -105,7 +105,7 @@ public String getFormat() {
105105
*/
106106
@Override
107107
public byte[] getEncoded() {
108-
if (!edDsaSpec.equals(EdDSANamedCurveTable.getByName(EdDSANamedCurveTable.CURVE_ED25519_SHA512)))
108+
if (!edDsaSpec.equals(EdDSANamedCurveTable.getByName("Ed25519")))
109109
return null;
110110
int totlen = 17 + seed.length;
111111
byte[] rv = new byte[totlen];

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

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

4949
public EdDSAPublicKey(X509EncodedKeySpec spec) throws InvalidKeySpecException {
5050
this(new EdDSAPublicKeySpec(decode(spec.getEncoded()),
51-
EdDSANamedCurveTable.getByName(EdDSANamedCurveTable.CURVE_ED25519_SHA512)));
51+
EdDSANamedCurveTable.getByName("Ed25519")));
5252
}
5353

5454
@Override
@@ -86,7 +86,7 @@ public String getFormat() {
8686
*/
8787
@Override
8888
public byte[] getEncoded() {
89-
if (!edDsaSpec.equals(EdDSANamedCurveTable.getByName(EdDSANamedCurveTable.CURVE_ED25519_SHA512)))
89+
if (!edDsaSpec.equals(EdDSANamedCurveTable.getByName("Ed25519")))
9090
return null;
9191
int totlen = 15 + Abyte.length;
9292
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(DEFAULT_KEYSIZE), new EdDSAGenParameterSpec(EdDSANamedCurveTable.CURVE_ED25519_SHA512));
43+
edParameters.put(Integer.valueOf(256), new EdDSAGenParameterSpec("Ed25519"));
4444
}
4545

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

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

Lines changed: 5 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -26,8 +26,6 @@
2626
*
2727
*/
2828
public class EdDSANamedCurveTable {
29-
public static final String CURVE_ED25519_SHA512 = "ed25519-sha-512";
30-
3129
private static final Field ed25519field = new Field(
3230
256, // b
3331
Utils.hexToBytes("edffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f"), // q
@@ -37,8 +35,8 @@ public class EdDSANamedCurveTable {
3735
Utils.hexToBytes("a3785913ca4deb75abd841414d0a700098e879777940c78c73fe6f2bee6c0352"), // d
3836
ed25519field.fromByteArray(Utils.hexToBytes("b0a00e4a271beec478e42fad0618432fa7d7fb3d99004d2b0bdfc14f8024832b"))); // I
3937

40-
private static final EdDSANamedCurveSpec ed25519sha512 = new EdDSANamedCurveSpec(
41-
CURVE_ED25519_SHA512,
38+
private static final EdDSANamedCurveSpec ed25519 = new EdDSANamedCurveSpec(
39+
"Ed25519",
4240
ed25519curve,
4341
"SHA-512", // H
4442
new Ed25519ScalarOps(), // l
@@ -48,8 +46,8 @@ public class EdDSANamedCurveTable {
4846

4947
private static final Hashtable<String, EdDSANamedCurveSpec> curves = new Hashtable<String, EdDSANamedCurveSpec>();
5048

51-
public static void defineCurve(String name, EdDSANamedCurveSpec curve) {
52-
curves.put(name.toLowerCase(Locale.ENGLISH), curve);
49+
public static void defineCurve(EdDSANamedCurveSpec curve) {
50+
curves.put(curve.getName().toLowerCase(Locale.ENGLISH), curve);
5351
}
5452

5553
static void defineCurveAlias(String name, String alias) {
@@ -61,10 +59,8 @@ static void defineCurveAlias(String name, String alias) {
6159
}
6260

6361
static {
64-
defineCurve(CURVE_ED25519_SHA512, ed25519sha512);
65-
6662
// RFC 8032
67-
defineCurveAlias(CURVE_ED25519_SHA512, "Ed25519");
63+
defineCurve(ed25519);
6864
}
6965

7066
public static EdDSANamedCurveSpec getByName(String name) {

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(EdDSANamedCurveTable.CURVE_ED25519_SHA512);
49+
EdDSAParameterSpec spec = EdDSANamedCurveTable.getByName("Ed25519");
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(EdDSANamedCurveTable.CURVE_ED25519_SHA512);
67+
EdDSAParameterSpec spec = EdDSANamedCurveTable.getByName("Ed25519");
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(EdDSANamedCurveTable.CURVE_ED25519_SHA512);
87+
EdDSAParameterSpec spec = EdDSANamedCurveTable.getByName("Ed25519");
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(EdDSANamedCurveTable.CURVE_ED25519_SHA512);
103+
EdDSAParameterSpec spec = EdDSANamedCurveTable.getByName("Ed25519");
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(EdDSANamedCurveTable.CURVE_ED25519_SHA512);
120+
EdDSAParameterSpec spec = EdDSANamedCurveTable.getByName("Ed25519");
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(EdDSANamedCurveTable.CURVE_ED25519_SHA512);
137+
EdDSAParameterSpec spec = EdDSANamedCurveTable.getByName("Ed25519");
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(EdDSANamedCurveTable.CURVE_ED25519_SHA512);
151+
EdDSAParameterSpec spec = EdDSANamedCurveTable.getByName("Ed25519");
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(EdDSANamedCurveTable.CURVE_ED25519_SHA512);
165+
EdDSAParameterSpec spec = EdDSANamedCurveTable.getByName("Ed25519");
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(EdDSANamedCurveTable.CURVE_ED25519_SHA512);
181+
EdDSAParameterSpec spec = EdDSANamedCurveTable.getByName("Ed25519");
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(EdDSANamedCurveTable.CURVE_ED25519_SHA512);
197+
EdDSAParameterSpec spec = EdDSANamedCurveTable.getByName("Ed25519");
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(EdDSANamedCurveTable.CURVE_ED25519_SHA512);
208+
EdDSAParameterSpec spec = EdDSANamedCurveTable.getByName("Ed25519");
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(EdDSANamedCurveTable.CURVE_ED25519_SHA512);
34+
static final EdDSANamedCurveSpec ed25519 = EdDSANamedCurveTable.getByName("Ed25519");
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(EdDSANamedCurveTable.CURVE_ED25519_SHA512);
37+
static final EdDSANamedCurveSpec ed25519 = EdDSANamedCurveTable.getByName("Ed25519");
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(EdDSANamedCurveTable.CURVE_ED25519_SHA512);
29+
private static final EdDSANamedCurveSpec ed25519 = EdDSANamedCurveTable.getByName("Ed25519");
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(EdDSANamedCurveTable.CURVE_ED25519_SHA512);
30+
EdDSANamedCurveSpec ed25519 = EdDSANamedCurveTable.getByName("Ed25519");
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(EdDSANamedCurveTable.CURVE_ED25519_SHA512);
73+
EdDSANamedCurveSpec ed25519 = EdDSANamedCurveTable.getByName("Ed25519");
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(EdDSANamedCurveTable.CURVE_ED25519_SHA512);
33+
static final EdDSANamedCurveSpec ed25519 = EdDSANamedCurveTable.getByName("Ed25519");
3434
static final Field ed25519Field = ed25519.getCurve().getField();
3535

3636
/**

0 commit comments

Comments
 (0)