From b7a6b8b749c8159eb29371f6bc3b1c91467e8d63 Mon Sep 17 00:00:00 2001 From: Peter Dettman Date: Mon, 17 Mar 2014 15:39:54 +0700 Subject: A few small follow-ups to the Curve25519 stuff --- .../org/bouncycastle/crypto/ec/CustomNamedCurves.java | 19 +++++++++++++------ .../math/ec/custom/djb/Curve25519FieldElement.java | 2 +- .../math/ec/custom/djb/Curve25519Point.java | 10 +--------- 3 files changed, 15 insertions(+), 16 deletions(-) (limited to 'core/src/main/java/org/bouncycastle') diff --git a/core/src/main/java/org/bouncycastle/crypto/ec/CustomNamedCurves.java b/core/src/main/java/org/bouncycastle/crypto/ec/CustomNamedCurves.java index 6d88f1be..5bfe96d7 100644 --- a/core/src/main/java/org/bouncycastle/crypto/ec/CustomNamedCurves.java +++ b/core/src/main/java/org/bouncycastle/crypto/ec/CustomNamedCurves.java @@ -245,6 +245,13 @@ public class CustomNamedCurves oidToCurve.put(oid, holder); } + static void defineCurveAlias(String alias, ASN1ObjectIdentifier oid) + { + alias = Strings.toLowerCase(alias); + nameToOID.put(alias, oid); + nameToCurve.put(alias, oidToCurve.get(oid)); + } + static { defineCurve("curve25519", curve25519); @@ -258,16 +265,16 @@ public class CustomNamedCurves defineCurveWithOID("secp384r1", SECObjectIdentifiers.secp384r1, secp384r1); defineCurveWithOID("secp521r1", SECObjectIdentifiers.secp521r1, secp521r1); - nameToOID.put(Strings.toLowerCase("P-192"), SECObjectIdentifiers.secp192r1); - nameToOID.put(Strings.toLowerCase("P-224"), SECObjectIdentifiers.secp224r1); - nameToOID.put(Strings.toLowerCase("P-256"), SECObjectIdentifiers.secp256r1); - nameToOID.put(Strings.toLowerCase("P-384"), SECObjectIdentifiers.secp384r1); - nameToOID.put(Strings.toLowerCase("P-521"), SECObjectIdentifiers.secp521r1); + defineCurveAlias("P-192", SECObjectIdentifiers.secp192r1); + defineCurveAlias("P-224", SECObjectIdentifiers.secp224r1); + defineCurveAlias("P-256", SECObjectIdentifiers.secp256r1); + defineCurveAlias("P-384", SECObjectIdentifiers.secp384r1); + defineCurveAlias("P-521", SECObjectIdentifiers.secp521r1); } public static X9ECParameters getByName(String name) { - X9ECParametersHolder holder = (X9ECParametersHolder)nameToCurve.get(name); + X9ECParametersHolder holder = (X9ECParametersHolder)nameToCurve.get(Strings.toLowerCase(name)); return holder == null ? null : holder.getParameters(); } diff --git a/core/src/main/java/org/bouncycastle/math/ec/custom/djb/Curve25519FieldElement.java b/core/src/main/java/org/bouncycastle/math/ec/custom/djb/Curve25519FieldElement.java index 470b92c8..6e3d9cfa 100644 --- a/core/src/main/java/org/bouncycastle/math/ec/custom/djb/Curve25519FieldElement.java +++ b/core/src/main/java/org/bouncycastle/math/ec/custom/djb/Curve25519FieldElement.java @@ -141,7 +141,7 @@ public class Curve25519FieldElement extends ECFieldElement * { 251 1s } { 1 0s } * * Therefore we need an addition chain containing 251 (the lengths of the repunits) - * We use: 1, 2, 3, 4, 7, 11, 15, 30, 60, 120, 131, 251 + * We use: 1, 2, 3, 4, 7, 11, 15, 30, 60, 120, 131, [251] */ int[] x1 = this.x; diff --git a/core/src/main/java/org/bouncycastle/math/ec/custom/djb/Curve25519Point.java b/core/src/main/java/org/bouncycastle/math/ec/custom/djb/Curve25519Point.java index f2341314..2913af99 100644 --- a/core/src/main/java/org/bouncycastle/math/ec/custom/djb/Curve25519Point.java +++ b/core/src/main/java/org/bouncycastle/math/ec/custom/djb/Curve25519Point.java @@ -253,15 +253,7 @@ public class Curve25519Point extends ECPoint return this; } - ECCurve curve = this.getCurve(); - int coord = curve.getCoordinateSystem(); - - if (ECCurve.COORD_AFFINE != coord) - { - return new Curve25519Point(curve, this.x, this.y.negate(), this.zs, this.withCompression); - } - - return new Curve25519Point(curve, this.x, this.y.negate(), this.withCompression); + return new Curve25519Point(this.getCurve(), this.x, this.y.negate(), this.zs, this.withCompression); } protected ECFieldElement calculateJacobianModifiedW(ECFieldElement Z, ECFieldElement ZSquared) -- cgit v1.2.3