Information

0
Story Points

Technologies

Decompiled Java File
package iaik.security.cipher;

import iaik.security.cipher.RC2WrapParameterSpec;
import iaik.security.cipher.f;
import iaik.security.cipher.t;
import iaik.security.cipher.u;
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.BadPaddingException;
import javax.crypto.spec.IvParameterSpec;
import javax.crypto.spec.RC2ParameterSpec;
import javax.crypto.spec.SecretKeySpec;

public class RC2KeyWrap extends u {
   // $FF: synthetic field
   static Class c;
   // $FF: synthetic field
   static Class b;
   private RC2WrapParameterSpec a;

   static Class a(String var0) {
      try {
         return Class.forName(var0);
      } catch (ClassNotFoundException var2) {
         throw new NoClassDefFoundError(var2.getMessage());
      }
   }

   protected byte[] prepareWrap(Key var1) throws InvalidKeyException {
      return this.computeLCEKPAD(var1);
   }

   protected Key finishUnWrap(byte[] var1, String var2, int var3) throws InvalidKeyException {
      try {
         return new SecretKeySpec(this.decomposeLCEKPAD(var1), "RC2");
      } catch (BadPaddingException var5) {
         throw new InvalidKeyException("Could not unwrap key: " + var5.getMessage());
      }
   }

   protected void engineInit(int var1, Key var2, byte[] var3, SecureRandom var4) throws InvalidAlgorithmParameterException, InvalidKeyException {
      if(this.a != null) {
         RC2ParameterSpec var5 = new RC2ParameterSpec(this.a.getEffectiveKeyBits(), var3);
         super.engineInit(var1, var2, var5, var4);
      } else {
         super.engineInit(var1, var2, new IvParameterSpec(var3), var4);
         this.engineGetParameters();
      }
   }

   public void engineInit(int var1, Key var2, AlgorithmParameterSpec var3, SecureRandom var4) throws InvalidAlgorithmParameterException, InvalidKeyException {
      if(var3 == null) {
         this.engineInit(var1, var2, var4);
         this.engineGetParameters();
      } else if(var3 instanceof RC2WrapParameterSpec) {
         super.kek = var2;
         super.random = var4;
         super.d = t.a(var1);
         this.a = (RC2WrapParameterSpec)var3;
         byte[] var5 = (byte[])super.keyWrapIV.clone();
         if(super.d == 1) {
            this.getRandom().nextBytes(var5);
         }

         RC2ParameterSpec var6 = new RC2ParameterSpec(this.a.getEffectiveKeyBits(), var5);
         super.engineInit(var1, var2, var6, var4);
      } else {
         throw new InvalidAlgorithmParameterException("Invalid Parameters; expected RC2WrapParameterSpec!");
      }
   }

   public void engineInit(int var1, Key var2, AlgorithmParameters var3, SecureRandom var4) throws InvalidAlgorithmParameterException, InvalidKeyException {
      try {
         if(var3 != null) {
            this.a = (RC2WrapParameterSpec)var3.getParameterSpec(c != null?c:(c = a("iaik.security.cipher.RC2WrapParameterSpec")));
         }

         this.engineInit(var1, var2, (AlgorithmParameterSpec)this.a, var4);
      } catch (InvalidParameterSpecException var6) {
         throw new InvalidAlgorithmParameterException("Invalid parameters: " + var6.getMessage());
      }
   }

   public AlgorithmParameters engineGetParameters() {
      try {
         AlgorithmParameters var1;
         if(this.a == null) {
            var1 = super.a.d();
            RC2ParameterSpec var2 = (RC2ParameterSpec)var1.getParameterSpec(b != null?b:(b = a("javax.crypto.spec.RC2ParameterSpec")));
            this.a = new RC2WrapParameterSpec(var2.getEffectiveKeyBits());
         }

         var1 = AlgorithmParameters.getInstance("RC2WrapRC2", "IAIK");
         var1.init(this.a);
         return var1;
      } catch (Exception var3) {
         return null;
      }
   }

   public RC2KeyWrap() {
      super(new f(), "RC2WrapRC2", -1, (byte[])u.CMS_KEY_WRAP_IV.clone());
   }
}
Page generated: Oct 19, 2017 2:34:21 PM