Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/quite/humla-spongycastle.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--core/src/main/java/org/bouncycastle/crypto/ec/CustomNamedCurves.java19
-rw-r--r--core/src/main/java/org/bouncycastle/math/ec/custom/djb/Curve25519FieldElement.java2
-rw-r--r--core/src/main/java/org/bouncycastle/math/ec/custom/djb/Curve25519Point.java10
-rw-r--r--core/src/test/java/org/bouncycastle/math/ec/test/ECPointPerformanceTest.java10
4 files changed, 23 insertions, 18 deletions
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)
diff --git a/core/src/test/java/org/bouncycastle/math/ec/test/ECPointPerformanceTest.java b/core/src/test/java/org/bouncycastle/math/ec/test/ECPointPerformanceTest.java
index 47e7566f..a5e45dab 100644
--- a/core/src/test/java/org/bouncycastle/math/ec/test/ECPointPerformanceTest.java
+++ b/core/src/test/java/org/bouncycastle/math/ec/test/ECPointPerformanceTest.java
@@ -183,10 +183,16 @@ public class ECPointPerformanceTest extends TestCase
{
String name = (String)it.next();
ASN1ObjectIdentifier oid = ECNamedCurveTable.getOID(name);
- if (oids.add(oid))
+ if (oid == null)
{
- randMult(name);
+ oid = CustomNamedCurves.getOID(name);
}
+ if (oid != null && !oids.add(oid))
+ {
+ continue;
+ }
+
+ randMult(name);
}
}
}