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:
Diffstat (limited to 'core/src/main/java/org/bouncycastle/crypto/generators/ECKeyPairGenerator.java')
-rw-r--r--core/src/main/java/org/bouncycastle/crypto/generators/ECKeyPairGenerator.java84
1 files changed, 0 insertions, 84 deletions
diff --git a/core/src/main/java/org/bouncycastle/crypto/generators/ECKeyPairGenerator.java b/core/src/main/java/org/bouncycastle/crypto/generators/ECKeyPairGenerator.java
deleted file mode 100644
index 4f46a38d..00000000
--- a/core/src/main/java/org/bouncycastle/crypto/generators/ECKeyPairGenerator.java
+++ /dev/null
@@ -1,84 +0,0 @@
-package org.bouncycastle.crypto.generators;
-
-import java.math.BigInteger;
-import java.security.SecureRandom;
-
-import org.bouncycastle.crypto.AsymmetricCipherKeyPair;
-import org.bouncycastle.crypto.AsymmetricCipherKeyPairGenerator;
-import org.bouncycastle.crypto.KeyGenerationParameters;
-import org.bouncycastle.crypto.params.ECDomainParameters;
-import org.bouncycastle.crypto.params.ECKeyGenerationParameters;
-import org.bouncycastle.crypto.params.ECPrivateKeyParameters;
-import org.bouncycastle.crypto.params.ECPublicKeyParameters;
-import org.bouncycastle.math.ec.ECConstants;
-import org.bouncycastle.math.ec.ECMultiplier;
-import org.bouncycastle.math.ec.ECPoint;
-import org.bouncycastle.math.ec.FixedPointCombMultiplier;
-import org.bouncycastle.math.ec.WNafUtil;
-
-public class ECKeyPairGenerator
- implements AsymmetricCipherKeyPairGenerator, ECConstants
-{
- ECDomainParameters params;
- SecureRandom random;
-
- public void init(
- KeyGenerationParameters param)
- {
- ECKeyGenerationParameters ecP = (ECKeyGenerationParameters)param;
-
- this.random = ecP.getRandom();
- this.params = ecP.getDomainParameters();
-
- if (this.random == null)
- {
- this.random = new SecureRandom();
- }
- }
-
- /**
- * Given the domain parameters this routine generates an EC key
- * pair in accordance with X9.62 section 5.2.1 pages 26, 27.
- */
- public AsymmetricCipherKeyPair generateKeyPair()
- {
- BigInteger n = params.getN();
- int nBitLength = n.bitLength();
- int minWeight = nBitLength >>> 2;
-
- BigInteger d;
- for (;;)
- {
- d = new BigInteger(nBitLength, random);
-
- if (d.compareTo(TWO) < 0 || (d.compareTo(n) >= 0))
- {
- continue;
- }
-
- /*
- * Require a minimum weight of the NAF representation, since low-weight primes may be
- * weak against a version of the number-field-sieve for the discrete-logarithm-problem.
- *
- * See "The number field sieve for integers of low weight", Oliver Schirokauer.
- */
- if (WNafUtil.getNafWeight(d) < minWeight)
- {
- continue;
- }
-
- break;
- }
-
- ECPoint Q = createBasePointMultiplier().multiply(params.getG(), d);
-
- return new AsymmetricCipherKeyPair(
- new ECPublicKeyParameters(Q, params),
- new ECPrivateKeyParameters(d, params));
- }
-
- protected ECMultiplier createBasePointMultiplier()
- {
- return new FixedPointCombMultiplier();
- }
-}