Information

0
Story Points

Technologies

Decompiled Java File
package iaik.security.random;

import iaik.security.random.JDKSeedGenerator;
import iaik.security.random.MetaSeedGenerator;
import iaik.security.random.RandomException;
import iaik.security.random.SeedGenListener;

public abstract class SeedGenerator {
   // $FF: synthetic field
   static Class b;
   protected SeedGenListener seedGenListener;
   private static Class a;
   private static final boolean c = false;

   static Class a(String var0) {
      try {
         return Class.forName(var0);
      } catch (ClassNotFoundException var2) {
         throw new NoClassDefFoundError(var2.getMessage());
      }
   }

   public void setSeedGenListener(SeedGenListener var1) {
      this.seedGenListener = var1;
      this.callSeedGenListener();
   }

   public static void setDefaultSeedGenerator(SeedGenerator var0) throws RandomException {
      setDefault(var0.getClass());
   }

   public static void setDefault(Class var0) {
      SeedGenerator var1 = a(var0);
      if(!var1.seedAvailable()) {
         throw new RandomException("This seed generator cannot be used as default.");
      } else {
         a = var0;
      }
   }

   public final boolean seedAvailable() {
      int[] var1 = this.getStatus();
      return var1[0] == var1[1];
   }

   protected static byte[] longToBytes(long var0) {
      byte[] var2 = new byte[8];

      for(int var3 = 7; var3 > 0; --var3) {
         var2[var3] = (byte)((int)var0);
         var0 >>>= 8;
      }

      return var2;
   }

   public abstract int[] getStatus();

   public abstract byte[] getSeed();

   private static SeedGenerator a(Class var0) {
      try {
         return (SeedGenerator)var0.newInstance();
      } catch (Exception var2) {
         throw new RandomException("Internal error instantiating SeedGenerator: " + var2.getMessage());
      }
   }

   public static SeedGenerator getDefaultSeedGenerator() {
      return getDefault();
   }

   public static synchronized SeedGenerator getDefault() {
      if(a == null) {
         MetaSeedGenerator.setSeed((new JDKSeedGenerator(160)).getSeed());
         a = b != null?b:(b = a("iaik.security.random.MetaSeedGenerator"));
      }

      return a(a);
   }

   protected void callSeedGenListener() {
      if(this.seedGenListener != null) {
         int[] var1 = this.getStatus();
         this.seedGenListener.bitsGenerated(var1[0], var1[1]);
      }

   }
}
Page generated: Oct 19, 2017 2:34:25 PM