Red Hat Application Migration Toolkit
package iaik.security.cipher; import iaik.security.cipher.RC2; import iaik.security.pbe.PBEGenParameterSpec; import iaik.security.spec.PBEKeyAndParameterSpec; import iaik.utils.InternalErrorException; import java.security.AlgorithmParameterGenerator; import java.security.AlgorithmParameters; import java.security.InvalidAlgorithmParameterException; import java.security.InvalidKeyException; import java.security.Key; import java.security.NoSuchAlgorithmException; import java.security.SecureRandom; import java.security.spec.AlgorithmParameterSpec; import java.security.spec.InvalidParameterSpecException; import javax.crypto.KeyGenerator; import javax.crypto.NoSuchPaddingException; import javax.crypto.SecretKey; import javax.crypto.spec.IvParameterSpec; import javax.crypto.spec.PBEParameterSpec; public class PbeWithSHAAnd40BitRC2_CBC extends RC2 { // $FF: synthetic field static Class a; protected AlgorithmParameters params; static Class a(String var0) { try { return Class.forName(var0); } catch (ClassNotFoundException var2) { throw new NoClassDefFoundError(var2.getMessage()); } } protected void initCipher(int var1, Key var2, SecureRandom var3) throws InvalidAlgorithmParameterException, InvalidKeyException { if(var2 != null && var2.getAlgorithm().equals("PBE") && var2.getFormat().equals("RAW_BMP")) { byte[] var4 = var2.getEncoded(); PBEParameterSpec var5; try { var5 = (PBEParameterSpec)this.params.getParameterSpec(a != null?a:(a = a("javax.crypto.spec.PBEParameterSpec"))); } catch (InvalidParameterSpecException var12) { throw new InvalidAlgorithmParameterException(var12.getMessage()); } PBEKeyAndParameterSpec var6 = new PBEKeyAndParameterSpec(var4, var5.getSalt(), var5.getIterationCount(), 5); try { KeyGenerator var7 = KeyGenerator.getInstance("PKCS#12"); var7.init(var6); SecretKey var8 = var7.generateKey(); var7 = KeyGenerator.getInstance("PKCS#12-IV"); var6 = new PBEKeyAndParameterSpec(var4, var5.getSalt(), var5.getIterationCount(), 8); var7.init(var6); iaik.security.cipher.SecretKey var9 = (iaik.security.cipher.SecretKey)var7.generateKey(); IvParameterSpec var10 = new IvParameterSpec(var9.getEncoded()); super.engineInit(var1, var8, var10, var3); } catch (NoSuchAlgorithmException var11) { throw new InternalErrorException(var11); } } else { throw new InvalidKeyException("Must be a PBEKey in RAW_BMP format."); } } public void engineSetPadding(String var1) throws NoSuchPaddingException { } public void engineSetMode(String var1) throws NoSuchAlgorithmException { } public void engineInit(int var1, Key var2, AlgorithmParameterSpec var3, SecureRandom var4) throws InvalidAlgorithmParameterException, InvalidKeyException { if(var3 == null) { this.engineInit(var1, var2, var4); } else { if(var3 instanceof PBEParameterSpec) { try { this.params.init(var3); } catch (InvalidParameterSpecException var7) { throw new InvalidAlgorithmParameterException("Error setting algorithm parameters."); } } else { if(!(var3 instanceof PBEGenParameterSpec)) { throw new InvalidAlgorithmParameterException("Parameters must be an instance of PBEParameterSpec or PBEGenParameterSpec."); } try { AlgorithmParameterGenerator var5 = AlgorithmParameterGenerator.getInstance("PBE"); var5.init(var3, var4); this.params = var5.generateParameters(); } catch (NoSuchAlgorithmException var6) { throw new InvalidAlgorithmParameterException("Error setting algorithm parameters."); } } this.initCipher(var1, var2, var4); } } public void engineInit(int var1, Key var2, SecureRandom var3) throws InvalidKeyException { try { AlgorithmParameterGenerator var4 = AlgorithmParameterGenerator.getInstance("PBE"); var4.init(8, var3); this.params = var4.generateParameters(); this.initCipher(var1, var2, var3); } catch (NoSuchAlgorithmException var5) { throw new InvalidKeyException(var5.getMessage()); } catch (InvalidAlgorithmParameterException var6) { throw new InvalidKeyException(var6.getMessage()); } } public void engineInit(int var1, Key var2, AlgorithmParameters var3, SecureRandom var4) throws InvalidAlgorithmParameterException, InvalidKeyException { if(var3 != null && var3.getAlgorithm() == "PBE") { this.params = var3; this.initCipher(var1, var2, var4); } else { throw new InvalidAlgorithmParameterException("Parameters must be of type PBEParameters."); } } public AlgorithmParameters engineGetParameters() { return this.params; } public PbeWithSHAAnd40BitRC2_CBC() throws NoSuchPaddingException, NoSuchAlgorithmException { super.engineSetPadding("PKCS5Padding"); super.engineSetMode("CBC"); this.params = AlgorithmParameters.getInstance("PBE"); } }