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:
authorPeter Dettman <peter.dettman@bouncycastle.org>2013-09-23 18:05:05 +0400
committerPeter Dettman <peter.dettman@bouncycastle.org>2013-09-23 18:05:05 +0400
commit272398d61616ab54dfcbc7ecc6409bd565f3076b (patch)
tree9d9f0aa602d467f7774a16ceb196870437e8852a /core/src/main/java/org/bouncycastle/crypto/signers
parentc8f6229673823b664f2c244966b7087b0f15cca1 (diff)
Update various EC algorithms and tests to use normalize and
getAffine[XY]Coord when working with curves that might now be using non-affine coordinates internally
Diffstat (limited to 'core/src/main/java/org/bouncycastle/crypto/signers')
-rw-r--r--core/src/main/java/org/bouncycastle/crypto/signers/DSTU4145Signer.java6
-rw-r--r--core/src/main/java/org/bouncycastle/crypto/signers/ECDSASigner.java8
-rw-r--r--core/src/main/java/org/bouncycastle/crypto/signers/ECGOST3410Signer.java8
-rw-r--r--core/src/main/java/org/bouncycastle/crypto/signers/ECNRSigner.java8
4 files changed, 15 insertions, 15 deletions
diff --git a/core/src/main/java/org/bouncycastle/crypto/signers/DSTU4145Signer.java b/core/src/main/java/org/bouncycastle/crypto/signers/DSTU4145Signer.java
index a12e4012..ee3cf34d 100644
--- a/core/src/main/java/org/bouncycastle/crypto/signers/DSTU4145Signer.java
+++ b/core/src/main/java/org/bouncycastle/crypto/signers/DSTU4145Signer.java
@@ -72,7 +72,7 @@ public class DSTU4145Signer
do
{
e = generateRandomInteger(key.getParameters().getN(), random);
- Fe = key.getParameters().getG().multiply(e).getX();
+ Fe = key.getParameters().getG().multiply(e).normalize().getAffineXCoord();
}
while (Fe.isZero());
@@ -105,7 +105,7 @@ public class DSTU4145Signer
h = key.getParameters().getCurve().fromBigInteger(ONE);
}
- ECPoint R = ECAlgorithms.sumOfTwoMultiplies(key.getParameters().getG(), s, ((ECPublicKeyParameters)key).getQ(), r);
+ ECPoint R = ECAlgorithms.sumOfTwoMultiplies(key.getParameters().getG(), s, ((ECPublicKeyParameters)key).getQ(), r).normalize();
// components must be bogus.
if (R.isInfinity())
@@ -113,7 +113,7 @@ public class DSTU4145Signer
return false;
}
- ECFieldElement y = h.multiply(R.getX());
+ ECFieldElement y = h.multiply(R.getAffineXCoord());
return fieldElement2Integer(key.getParameters().getN(), y).compareTo(r) == 0;
}
diff --git a/core/src/main/java/org/bouncycastle/crypto/signers/ECDSASigner.java b/core/src/main/java/org/bouncycastle/crypto/signers/ECDSASigner.java
index 7dd3bf97..9156de40 100644
--- a/core/src/main/java/org/bouncycastle/crypto/signers/ECDSASigner.java
+++ b/core/src/main/java/org/bouncycastle/crypto/signers/ECDSASigner.java
@@ -78,10 +78,10 @@ public class ECDSASigner
}
while (k.equals(ZERO) || k.compareTo(n) >= 0);
- ECPoint p = key.getParameters().getG().multiply(k);
+ ECPoint p = key.getParameters().getG().multiply(k).normalize();
// 5.3.3
- BigInteger x = p.getX().toBigInteger();
+ BigInteger x = p.getAffineXCoord().toBigInteger();
r = x.mod(n);
}
@@ -135,7 +135,7 @@ public class ECDSASigner
ECPoint G = key.getParameters().getG();
ECPoint Q = ((ECPublicKeyParameters)key).getQ();
- ECPoint point = ECAlgorithms.sumOfTwoMultiplies(G, u1, Q, u2);
+ ECPoint point = ECAlgorithms.sumOfTwoMultiplies(G, u1, Q, u2).normalize();
// components must be bogus.
if (point.isInfinity())
@@ -143,7 +143,7 @@ public class ECDSASigner
return false;
}
- BigInteger v = point.getX().toBigInteger().mod(n);
+ BigInteger v = point.getAffineXCoord().toBigInteger().mod(n);
return v.equals(r);
}
diff --git a/core/src/main/java/org/bouncycastle/crypto/signers/ECGOST3410Signer.java b/core/src/main/java/org/bouncycastle/crypto/signers/ECGOST3410Signer.java
index 7256d353..f6d7f4fa 100644
--- a/core/src/main/java/org/bouncycastle/crypto/signers/ECGOST3410Signer.java
+++ b/core/src/main/java/org/bouncycastle/crypto/signers/ECGOST3410Signer.java
@@ -82,9 +82,9 @@ public class ECGOST3410Signer
}
while (k.equals(ECConstants.ZERO));
- ECPoint p = key.getParameters().getG().multiply(k);
+ ECPoint p = key.getParameters().getG().multiply(k).normalize();
- BigInteger x = p.getX().toBigInteger();
+ BigInteger x = p.getAffineXCoord().toBigInteger();
r = x.mod(n);
}
@@ -143,7 +143,7 @@ public class ECGOST3410Signer
ECPoint G = key.getParameters().getG(); // P
ECPoint Q = ((ECPublicKeyParameters)key).getQ();
- ECPoint point = ECAlgorithms.sumOfTwoMultiplies(G, z1, Q, z2);
+ ECPoint point = ECAlgorithms.sumOfTwoMultiplies(G, z1, Q, z2).normalize();
// components must be bogus.
if (point.isInfinity())
@@ -151,7 +151,7 @@ public class ECGOST3410Signer
return false;
}
- BigInteger R = point.getX().toBigInteger().mod(n);
+ BigInteger R = point.getAffineXCoord().toBigInteger().mod(n);
return R.equals(r);
}
diff --git a/core/src/main/java/org/bouncycastle/crypto/signers/ECNRSigner.java b/core/src/main/java/org/bouncycastle/crypto/signers/ECNRSigner.java
index 07e8ca7b..72bbbcb4 100644
--- a/core/src/main/java/org/bouncycastle/crypto/signers/ECNRSigner.java
+++ b/core/src/main/java/org/bouncycastle/crypto/signers/ECNRSigner.java
@@ -101,8 +101,8 @@ public class ECNRSigner
// BigInteger Vx = tempPair.getPublic().getW().getAffineX();
ECPublicKeyParameters V = (ECPublicKeyParameters)tempPair.getPublic(); // get temp's public key
- BigInteger Vx = V.getQ().getX().toBigInteger(); // get the point's x coordinate
-
+ BigInteger Vx = V.getQ().normalize().getAffineXCoord().toBigInteger(); // get the point's x coordinate
+
r = Vx.add(e).mod(n);
}
while (r.equals(ECConstants.ZERO));
@@ -172,7 +172,7 @@ public class ECNRSigner
ECPoint G = pubKey.getParameters().getG();
ECPoint W = pubKey.getQ();
// calculate P using Bouncy math
- ECPoint P = ECAlgorithms.sumOfTwoMultiplies(G, s, W, r);
+ ECPoint P = ECAlgorithms.sumOfTwoMultiplies(G, s, W, r).normalize();
// components must be bogus.
if (P.isInfinity())
@@ -180,7 +180,7 @@ public class ECNRSigner
return false;
}
- BigInteger x = P.getX().toBigInteger();
+ BigInteger x = P.getAffineXCoord().toBigInteger();
BigInteger t = r.subtract(x).mod(n);
return t.equals(e);