Red Hat Application Migration Toolkit
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]);
}
}
}