home *** CD-ROM | disk | FTP | other *** search
- package java.security;
-
- class SeedGenerator {
- private static int sleepTime;
- private static final int TARGET_SPIN_COUNT = 55000;
- private static final int MIN_SPIN_COUNT = 33000;
- private static final int MAX_SPIN_COUNT = 110000;
-
- private static void setSleepTime() {
- sleepTime = 55000000 / genSeed(1000);
- Security.debug("Resetting sleep time for seed generation: " + sleepTime + " ms.");
- }
-
- public static synchronized int genSeed() {
- int var0;
- for(var0 = genSeed(sleepTime); var0 < 33000; var0 = genSeed(sleepTime)) {
- Security.debug("Candidate seed too low: " + var0 + " ms.");
- setSleepTime();
- }
-
- if (var0 > 110000) {
- Security.debug("Candidate seed too high: " + var0 + " ms.");
- setSleepTime();
- }
-
- return var0;
- }
-
- private static int genSeed(int var0) {
- int var1 = 0;
- Sleeper var2 = new Sleeper(var0);
- ((Thread)var2).start();
-
- while(((Thread)var2).isAlive()) {
- ++var1;
- Thread.yield();
- }
-
- return var1;
- }
-
- static {
- setSleepTime();
- }
- }
-