Information

0
Story Points

Technologies

Decompiled Java File
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;
   }
}
Page generated: Oct 19, 2017 2:34:48 PM