home *** CD-ROM | disk | FTP | other *** search
/ Symantec Visual Cafe for Java 2.5 / symantec-visual-cafe-2.5-database-dev-edition.iso / VPage / Java.bin / CLASSES.ZIP / java / security / SeedGenerator.class (.txt) < prev    next >
Encoding:
Java Class File  |  1997-07-08  |  1.4 KB  |  46 lines

  1. package java.security;
  2.  
  3. class SeedGenerator {
  4.    private static int sleepTime;
  5.    private static final int TARGET_SPIN_COUNT = 55000;
  6.    private static final int MIN_SPIN_COUNT = 33000;
  7.    private static final int MAX_SPIN_COUNT = 110000;
  8.  
  9.    private static void setSleepTime() {
  10.       sleepTime = 55000000 / genSeed(1000);
  11.       Security.debug("Resetting sleep time for seed generation: " + sleepTime + " ms.");
  12.    }
  13.  
  14.    public static synchronized int genSeed() {
  15.       int var0;
  16.       for(var0 = genSeed(sleepTime); var0 < 33000; var0 = genSeed(sleepTime)) {
  17.          Security.debug("Candidate seed too low: " + var0 + " ms.");
  18.          setSleepTime();
  19.       }
  20.  
  21.       if (var0 > 110000) {
  22.          Security.debug("Candidate seed too high: " + var0 + " ms.");
  23.          setSleepTime();
  24.       }
  25.  
  26.       return var0;
  27.    }
  28.  
  29.    private static int genSeed(int var0) {
  30.       int var1 = 0;
  31.       Sleeper var2 = new Sleeper(var0);
  32.       ((Thread)var2).start();
  33.  
  34.       while(((Thread)var2).isAlive()) {
  35.          ++var1;
  36.          Thread.yield();
  37.       }
  38.  
  39.       return var1;
  40.    }
  41.  
  42.    static {
  43.       setSleepTime();
  44.    }
  45. }
  46.