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()); } } }