aboutsummaryrefslogtreecommitdiffstats
path: root/libraries/spongycastle/core/src/main/j2me/java/security/SecureRandom.java
diff options
context:
space:
mode:
Diffstat (limited to 'libraries/spongycastle/core/src/main/j2me/java/security/SecureRandom.java')
-rw-r--r--libraries/spongycastle/core/src/main/j2me/java/security/SecureRandom.java141
1 files changed, 0 insertions, 141 deletions
diff --git a/libraries/spongycastle/core/src/main/j2me/java/security/SecureRandom.java b/libraries/spongycastle/core/src/main/j2me/java/security/SecureRandom.java
deleted file mode 100644
index a6a562a4d..000000000
--- a/libraries/spongycastle/core/src/main/j2me/java/security/SecureRandom.java
+++ /dev/null
@@ -1,141 +0,0 @@
-package java.security;
-
-import java.util.Random;
-
-import org.spongycastle.crypto.digests.SHA1Digest;
-import org.spongycastle.crypto.digests.SHA256Digest;
-import org.spongycastle.crypto.prng.RandomGenerator;
-import org.spongycastle.crypto.prng.DigestRandomGenerator;
-
-/**
- * An implementation of SecureRandom specifically for the light-weight API, JDK
- * 1.0, and the J2ME. Random generation is based on the traditional SHA1 with
- * counter. Calling setSeed will always increase the entropy of the hash.
- * <p>
- * <b>Do not use this class without calling setSeed at least once</b>! There
- * are some example seed generators in the org.spongycastle.prng package.
- */
-public class SecureRandom extends java.util.Random
-{
- // Note: all objects of this class should be deriving their random data from
- // a single generator appropriate to the digest being used.
- private static final RandomGenerator sha1Generator = new DigestRandomGenerator(new SHA1Digest());
- private static final RandomGenerator sha256Generator = new DigestRandomGenerator(new SHA256Digest());
-
- protected RandomGenerator generator;
-
- // public constructors
- public SecureRandom()
- {
- this(sha1Generator);
- setSeed(System.currentTimeMillis());
- }
-
- public SecureRandom(byte[] inSeed)
- {
- this(sha1Generator);
- setSeed(inSeed);
- }
-
- protected SecureRandom(
- RandomGenerator generator)
- {
- super(0);
- this.generator = generator;
- }
-
- // protected constructors
- // protected SecureRandom(SecureRandomSpi srs, Provider provider);
-
- // public class methods
- public static SecureRandom getInstance(String algorithm)
- {
- if (algorithm.equals("SHA1PRNG"))
- {
- return new SecureRandom(sha1Generator);
- }
- if (algorithm.equals("SHA256PRNG"))
- {
- return new SecureRandom(sha256Generator);
- }
- return new SecureRandom(); // follow old behaviour
- }
-
- public static SecureRandom getInstance(String algorithm, String provider)
- {
- return getInstance(algorithm);
- }
-
- public static byte[] getSeed(int numBytes)
- {
- byte[] rv = new byte[numBytes];
-
- sha1Generator.addSeedMaterial(System.currentTimeMillis());
- sha1Generator.nextBytes(rv);
-
- return rv;
- }
-
- // public instance methods
- public byte[] generateSeed(int numBytes)
- {
- byte[] rv = new byte[numBytes];
-
- nextBytes(rv);
-
- return rv;
- }
-
- // public final Provider getProvider();
- public void setSeed(byte[] inSeed)
- {
- generator.addSeedMaterial(inSeed);
- }
-
- // public methods overriding random
- public void nextBytes(byte[] bytes)
- {
- generator.nextBytes(bytes);
- }
-
- public void setSeed(long rSeed)
- {
- if (rSeed != 0) // to avoid problems with Random calling setSeed in construction
- {
- generator.addSeedMaterial(rSeed);
- }
- }
-
- public int nextInt()
- {
- byte[] intBytes = new byte[4];
-
- nextBytes(intBytes);
-
- int result = 0;
-
- for (int i = 0; i < 4; i++)
- {
- result = (result << 8) + (intBytes[i] & 0xff);
- }
-
- return result;
- }
-
- protected final int next(int numBits)
- {
- int size = (numBits + 7) / 8;
- byte[] bytes = new byte[size];
-
- nextBytes(bytes);
-
- int result = 0;
-
- for (int i = 0; i < size; i++)
- {
- result = (result << 8) + (bytes[i] & 0xff);
- }
-
- return result & ((1 << numBits) - 1);
- }
-}