Information

0
Story Points

Technologies

Decompiled Java File
package iaik.security.cipher;

import iaik.security.cipher.CAST128ParameterSpec;
import iaik.security.cipher.CAST128WrapParameterSpec;
import iaik.security.cipher.o;
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.SecretKeySpec;

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

   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), "CAST128");
      } 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 {
      CAST128ParameterSpec var5 = new CAST128ParameterSpec(this.c.getKeyLength(), var3);
      super.engineInit(var1, var2, var5, var4);
   }

   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 CAST128WrapParameterSpec) {
         super.kek = var2;
         super.random = var4;
         super.d = t.a(var1);
         this.c = (CAST128WrapParameterSpec)var3;
         byte[] var5 = (byte[])super.keyWrapIV.clone();
         if(super.d == 1) {
            this.getRandom().nextBytes(var5);
         }

         CAST128ParameterSpec var6 = new CAST128ParameterSpec(this.c.getKeyLength(), var5);
         super.engineInit(var1, var2, var6, var4);
      } else {
         throw new InvalidAlgorithmParameterException("Invalid Parameters; expected CAST128WrapParameterSpec!");
      }
   }

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

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

   public AlgorithmParameters engineGetParameters() {
      try {
         AlgorithmParameters var1;
         if(this.c == null) {
            var1 = super.a.d();
            CAST128ParameterSpec var2 = (CAST128ParameterSpec)var1.getParameterSpec(b != null?b:(b = a("iaik.security.cipher.CAST128ParameterSpec")));
            this.c = new CAST128WrapParameterSpec(var2.getKeyLength());
         }

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

   public CAST128KeyWrap() {
      super(new o(), "CAST128WrapCAST128", -1, (byte[])u.CMS_KEY_WRAP_IV.clone());
   }
}
Page generated: Oct 19, 2017 2:34:35 PM