Red Hat Application Migration Toolkit
package iaik.security.cipher; import iaik.security.cipher.CAST128ParameterSpec; import iaik.security.cipher.DESParameterSpec; import iaik.security.cipher.GOSTParameterSpec; import iaik.security.random.SecRandom; import java.security.AlgorithmParameters; import java.security.InvalidAlgorithmParameterException; import java.security.InvalidKeyException; import java.security.Key; import java.security.SecureRandom; import java.security.spec.AlgorithmParameterSpec; import java.security.spec.InvalidParameterSpecException; import javax.crypto.IllegalBlockSizeException; import javax.crypto.spec.IvParameterSpec; import javax.crypto.spec.RC2ParameterSpec; import javax.crypto.spec.RC5ParameterSpec; abstract class l { // $FF: synthetic field static Class b; int d; String e; byte[] a; int c = 1; static final int l = 6; static final int f = 5; static final int j = 4; static final int g = 3; static final int k = 2; static final int i = 1; static final int h = 0; static Class a(String var0) { try { return Class.forName(var0); } catch (ClassNotFoundException var2) { throw new NoClassDefFoundError(var2.getMessage()); } } boolean a(int var1, int var2) { if(var1 == 1) { this.c = var1; return true; } else { this.c = 0; return false; } } final String e() { switch(this.c) { case 2: return this.e + " in CBC mode"; case 3: return this.e + " in " + this.d * 8 + "-bit OFB mode"; case 4: return this.e + " in " + this.d * 8 + "-bit CFB mode"; case 5: return this.e + " in PCBC mode"; case 6: return this.e + " in CTR mode"; default: return this.e; } } static byte[] a(int var0, AlgorithmParameterSpec var1, SecureRandom var2, int var3) throws InvalidAlgorithmParameterException { byte[] var4 = null; if(var1 != null) { if(var1 instanceof IvParameterSpec) { var4 = ((IvParameterSpec)var1).getIV(); } else if(var1 instanceof RC2ParameterSpec) { var4 = ((RC2ParameterSpec)var1).getIV(); } else if(var1 instanceof RC5ParameterSpec) { var4 = ((RC5ParameterSpec)var1).getIV(); } else if(var1 instanceof DESParameterSpec) { var4 = ((DESParameterSpec)var1).getIV(); } else if(var1 instanceof GOSTParameterSpec) { var4 = ((GOSTParameterSpec)var1).getIV(); } else if(var1 instanceof CAST128ParameterSpec) { var4 = ((CAST128ParameterSpec)var1).getIV(); } if(var4 != null && var3 != -1 && var4.length != var3) { throw new InvalidAlgorithmParameterException("IV must be the same length as block size of the underlying cipher."); } } if(var4 == null && var3 != -1) { if(var0 != 1) { throw new InvalidAlgorithmParameterException("You have to specify an IV in decrypt mode!"); } if(var2 == null) { var2 = SecRandom.getDefault(); } var4 = new byte[var3]; var2.nextBytes(var4); } return var4; } abstract void a(int var1, Key var2, AlgorithmParameterSpec var3, SecureRandom var4) throws InvalidAlgorithmParameterException, InvalidKeyException; void a(int var1, Key var2, AlgorithmParameters var3, SecureRandom var4) throws InvalidAlgorithmParameterException, InvalidKeyException { try { AlgorithmParameterSpec var5 = var3.getParameterSpec(b != null?b:(b = a("javax.crypto.spec.IvParameterSpec"))); this.a(var1, var2, var5, var4); } catch (InvalidParameterSpecException var6) { throw new InvalidAlgorithmParameterException(var6.toString()); } } AlgorithmParameters d() { byte[] var1 = this.engineGetIV(); if(var1 == null) { return null; } else { try { IvParameterSpec var2 = new IvParameterSpec(var1); AlgorithmParameters var3 = AlgorithmParameters.getInstance(this.e, "IAIK"); var3.init(var2); return var3; } catch (Exception var4) { return null; } } } int a(Key var1) throws InvalidKeyException { return var1.getEncoded().length << 3; } byte[] engineGetIV() { return this.a; } final int c() { return this.d; } abstract void b(byte[] var1, int var2, int var3, byte[] var4, int var5) throws IllegalBlockSizeException; abstract void a(byte[] var1, int var2, int var3, byte[] var4, int var5) throws IllegalBlockSizeException; l(String var1, int var2) { this.e = var1; this.d = var2; this.a = null; } }