Red Hat Application Migration Toolkit
package iaik.security.cipher;
import java.security.InvalidKeyException;
import java.security.spec.InvalidKeySpecException;
import java.security.spec.KeySpec;
import javax.crypto.KeyGenerator;
import javax.crypto.SecretKey;
import javax.crypto.SecretKeyFactorySpi;
import javax.crypto.spec.DESKeySpec;
import javax.crypto.spec.DESedeKeySpec;
import javax.crypto.spec.SecretKeySpec;
public class GeneralKeyFactory extends SecretKeyFactorySpi {
// $FF: synthetic field
static Class a;
// $FF: synthetic field
static Class b;
// $FF: synthetic field
static Class c;
static Class a(String var0) {
try {
return Class.forName(var0);
} catch (ClassNotFoundException var2) {
throw new NoClassDefFoundError(var2.getMessage());
}
}
protected SecretKey engineTranslateKey(SecretKey var1) throws InvalidKeyException {
if(var1 == null) {
throw new InvalidKeyException("Cannot translate a null key!");
} else {
return new iaik.security.cipher.SecretKey(var1);
}
}
protected KeySpec engineGetKeySpec(SecretKey var1, Class var2) throws InvalidKeySpecException {
try {
if((c != null?c:(c = a("javax.crypto.spec.DESKeySpec"))).isAssignableFrom(var2)) {
return new DESKeySpec(var1.getEncoded());
} else if((b != null?b:(b = a("javax.crypto.spec.DESedeKeySpec"))).isAssignableFrom(var2)) {
return new DESedeKeySpec(var1.getEncoded());
} else if((a != null?a:(a = a("javax.crypto.spec.SecretKeySpec"))).isAssignableFrom(var2)) {
return new SecretKeySpec(var1.getEncoded(), var1.getAlgorithm());
} else {
throw new InvalidKeySpecException("Can\'t convert key to KeySpec.");
}
} catch (InvalidKeyException var3) {
throw new InvalidKeySpecException("Invalid KeySpec or key.");
}
}
protected SecretKey engineGenerateSecret(KeySpec var1) throws InvalidKeySpecException {
if(var1 instanceof DESKeySpec) {
return new iaik.security.cipher.SecretKey(((DESKeySpec)var1).getKey(), "DES");
} else if(var1 instanceof DESedeKeySpec) {
return new iaik.security.cipher.SecretKey(((DESedeKeySpec)var1).getKey(), "DESede");
} else {
try {
if(var1 instanceof SecretKeySpec) {
SecretKeySpec var2 = (SecretKeySpec)var1;
byte[] var3 = var2.getEncoded();
String var4 = var2.getAlgorithm();
KeyGenerator var5 = KeyGenerator.getInstance(var4, "IAIK");
var5.init(var3.length << 3);
int var6 = var5.generateKey().getEncoded().length;
byte[] var7 = new byte[var6];
System.arraycopy(var3, 0, var7, 0, var3.length >= var6?var6:var3.length);
return new iaik.security.cipher.SecretKey(var7, var4);
}
} catch (Exception var8) {
throw new InvalidKeySpecException("Could not convert key: " + var8.toString());
}
throw new InvalidKeySpecException("Unsupported type of keyspec: " + var1.getClass().getName());
}
}
}