Information

0
Story Points

Technologies

Decompiled Java File
package iaik.asn1;

import iaik.asn1.ASN1Object;
import iaik.asn1.ASN1Type;
import iaik.asn1.CodingException;
import iaik.asn1.SEQUENCE;
import iaik.asn1.SET;
import iaik.asn1.a;
import iaik.utils.InternalErrorException;
import java.lang.reflect.Array;
import java.util.Enumeration;
import java.util.Vector;

public class ASN implements Cloneable {
   // $FF: synthetic field
   static Class f;
   // $FF: synthetic field
   static Class u;
   // $FF: synthetic field
   static Class i;
   // $FF: synthetic field
   static Class j;
   // $FF: synthetic field
   static Class z;
   // $FF: synthetic field
   static Class r;
   // $FF: synthetic field
   static Class e;
   // $FF: synthetic field
   static Class g;
   // $FF: synthetic field
   static Class w;
   // $FF: synthetic field
   static Class s;
   // $FF: synthetic field
   static Class h;
   // $FF: synthetic field
   static Class k;
   // $FF: synthetic field
   static Class n;
   // $FF: synthetic field
   static Class m;
   // $FF: synthetic field
   static Class o;
   // $FF: synthetic field
   static Class p;
   // $FF: synthetic field
   static Class q;
   // $FF: synthetic field
   static Class d;
   // $FF: synthetic field
   static Class t;
   // $FF: synthetic field
   static Class l;
   // $FF: synthetic field
   static Class v;
   // $FF: synthetic field
   static Class x;
   // $FF: synthetic field
   static Class y;
   protected String name;
   protected int tag_class;
   protected int tag;
   private static final ASN b;
   public static final ASN CON_SPEC;
   public static final ASN BMPString;
   public static final ASN UNIString;
   public static final ASN GeneralString;
   public static final ASN VisibleString;
   public static final ASN GeneralizedTime;
   public static final ASN UTCTime;
   public static final ASN IA5String;
   public static final ASN T61String;
   public static final ASN PrintableString;
   public static final ASN NumericString;
   public static final ASN SET;
   public static final ASN SEQUENCE;
   public static final ASN UTF8String;
   public static final ASN ENUMERATED;
   public static final ASN EXTERNAL;
   public static final ASN OBJECT_DESCRIPTOR;
   public static final ASN ObjectID;
   public static final ASN NULL;
   public static final ASN OCTET_STRING;
   public static final ASN BIT_STRING;
   public static final ASN INTEGER;
   public static final ASN BOOLEAN;
   public static final ASN UNKNOWN;
   public static final int PRIVATE = 192;
   public static final int CONTEXT_SPECIFIC = 128;
   public static final int APPLICATION = 64;
   public static final int UNIVERSAL = 0;
   private static final Class c;
   static final a a = new a();

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

   public String toString() {
      StringBuffer var1 = new StringBuffer();
      var1.append("ASN.1 Type [");
      var1.append(this.tag);
      var1.append(",");
      var1.append(this.name);
      var1.append(",");
      if(this.tag_class == 192) {
         var1.append("PRIVATE");
      } else if(this.tag_class == 64) {
         var1.append("APPLICATION");
      } else if(this.tag_class == 128) {
         var1.append("CONTEXT_SPECIFIC");
      } else {
         var1.append("UNIVERSAL");
      }

      var1.append("]");
      return var1.toString();
   }

   public static void register(ASN var0, Class var1) {
      a.register(c, var0, var1);
   }

   public static ASN1Type[] parseSequenceOf(ASN1Object var0, Class var1) throws CodingException {
      ASN1Type[] var2 = null;
      int var3 = var0.countComponents();

      try {
         var2 = (ASN1Type[])Array.newInstance(var1, var3);

         for(int var4 = 0; var4 < var3; ++var4) {
            var2[var4] = (ASN1Type)var1.newInstance();
            var2[var4].decode(var0.getComponentAt(var4));
         }

         return var2;
      } catch (InstantiationException var5) {
         throw new InternalErrorException(var5);
      } catch (IllegalAccessException var6) {
         throw new InternalErrorException(var6);
      }
   }

   public int hashCode() {
      return this.tag | this.tag_class << 24;
   }

   public int getTagClass() {
      return this.tag_class;
   }

   public int getTag() {
      return this.tag;
   }

   public String getName() {
      return this.name;
   }

   public boolean equals(Object var1) {
      if(!(var1 instanceof ASN)) {
         return false;
      } else {
         ASN var2 = (ASN)var1;
         return this.tag == var2.tag && this.tag_class == var2.tag_class;
      }
   }

   public static ASN1Object createSetOf(ASN1Type[] var0, boolean var1) throws CodingException {
      SET var2 = new SET(var1);
      if(var0 == null) {
         return var2;
      } else {
         for(int var3 = 0; var3 < var0.length; ++var3) {
            var2.addComponent(var0[var3].toASN1Object());
         }

         return var2;
      }
   }

   public static ASN1Object createSetOf(ASN1Type[] var0) throws CodingException {
      return createSetOf(var0, false);
   }

   public static ASN1Object createSetOf(Vector var0) throws CodingException {
      ASN1Type[] var1 = new ASN1Type[var0.size()];
      int var2 = 0;

      for(Enumeration var3 = var0.elements(); var3.hasMoreElements(); ++var2) {
         var1[var2] = (ASN1Type)var3.nextElement();
      }

      return createSetOf(var1);
   }

   public static ASN1Object createSequenceOf(ASN1Type[] var0) throws CodingException {
      SEQUENCE var1 = new SEQUENCE();
      if(var0 != null && var0.length != 0) {
         for(int var2 = 0; var2 < var0.length; ++var2) {
            var1.addComponent(var0[var2].toASN1Object());
         }

         return var1;
      } else {
         return var1;
      }
   }

   public static ASN1Object createSequenceOf(Vector var0) throws CodingException {
      ASN1Type[] var1 = new ASN1Type[var0.size()];
      int var2 = 0;

      for(Enumeration var3 = var0.elements(); var3.hasMoreElements(); ++var2) {
         var1[var2] = (ASN1Type)var3.nextElement();
      }

      return createSequenceOf(var1);
   }

   public static ASN1Object create(ASN var0, Object var1) throws InstantiationException {
      ASN1Object var2 = create(var0);
      var2.setValue(var1);
      return var2;
   }

   public static ASN1Object create(ASN var0) throws InstantiationException {
      if(var0 == null) {
         var0 = NULL;
      }

      ASN1Object var1;
      if(var0.tag_class == 128) {
         var1 = (ASN1Object)a.create(c, b, false);
         var1.asnType.tag = var0.tag;
      } else {
         var1 = (ASN1Object)a.create(c, var0, false);
      }

      return var1;
   }

   public Object clone() {
      ASN var1 = new ASN(this.tag, this.name, this.tag_class);
      return var1;
   }

   public ASN(int var1, String var2, int var3) {
      this.tag = var1;
      this.name = var2;
      this.tag_class = var3;
   }

   public ASN(int var1, String var2) {
      this.tag = var1;
      this.name = var2;
      this.tag_class = 0;
   }

   static {
      c = y != null?y:(y = a("iaik.asn1.ASN1Object"));
      UNKNOWN = new ASN(0, "UNKNOWN");
      BOOLEAN = new ASN(1, "BOOLEAN");
      INTEGER = new ASN(2, "INTEGER");
      BIT_STRING = new ASN(3, "BIT STRING");
      OCTET_STRING = new ASN(4, "OCTET STRING");
      NULL = new ASN(5, "NULL");
      ObjectID = new ASN(6, "OBJECT ID");
      OBJECT_DESCRIPTOR = new ASN(7, "OBJECT DESCRIPTOR");
      EXTERNAL = new ASN(8, "EXTERNAL");
      ENUMERATED = new ASN(10, "ENUMERATED");
      UTF8String = new ASN(12, "UTF8String");
      SEQUENCE = new ASN(16, "SEQUENCE");
      SET = new ASN(17, "SET");
      NumericString = new ASN(18, "NumericString");
      PrintableString = new ASN(19, "PrintableString");
      T61String = new ASN(20, "T61String");
      IA5String = new ASN(22, "IA5String");
      UTCTime = new ASN(23, "UTCTime");
      GeneralizedTime = new ASN(24, "GeneralizedTime");
      VisibleString = new ASN(26, "VisibleString");
      GeneralString = new ASN(27, "GeneralString");
      UNIString = new ASN(28, "UNIString");
      BMPString = new ASN(30, "BMPString");
      CON_SPEC = new ASN(128, "CONTEXTSPECIFIC", 128);
      b = new ASN(0, "CONTEXTSPECIFIC", 128);
      register(BIT_STRING, x != null?x:(x = a("iaik.asn1.BIT_STRING")));
      register(BOOLEAN, v != null?v:(v = a("iaik.asn1.BOOLEAN")));
      register(ObjectID, l != null?l:(l = a("iaik.asn1.ObjectID")));
      register(ENUMERATED, t != null?t:(t = a("iaik.asn1.ENUMERATED")));
      register(UTF8String, d != null?d:(d = a("iaik.asn1.UTF8String")));
      register(IA5String, q != null?q:(q = a("iaik.asn1.IA5String")));
      register(INTEGER, p != null?p:(p = a("iaik.asn1.INTEGER")));
      register(NULL, o != null?o:(o = a("iaik.asn1.NULL")));
      register(OCTET_STRING, m != null?m:(m = a("iaik.asn1.OCTET_STRING")));
      register(NumericString, n != null?n:(n = a("iaik.asn1.NumericString")));
      register(PrintableString, k != null?k:(k = a("iaik.asn1.PrintableString")));
      register(T61String, h != null?h:(h = a("iaik.asn1.T61String")));
      register(GeneralString, s != null?s:(s = a("iaik.asn1.GeneralString")));
      register(BMPString, w != null?w:(w = a("iaik.asn1.BMPString")));
      register(UNIString, g != null?g:(g = a("iaik.asn1.UNIString")));
      register(UTCTime, e != null?e:(e = a("iaik.asn1.UTCTime")));
      register(GeneralizedTime, r != null?r:(r = a("iaik.asn1.GeneralizedTime")));
      register(VisibleString, z != null?z:(z = a("iaik.asn1.VisibleString")));
      register(SEQUENCE, j != null?j:(j = a("iaik.asn1.SEQUENCE")));
      register(SET, i != null?i:(i = a("iaik.asn1.SET")));
      register(b, u != null?u:(u = a("iaik.asn1.CON_SPEC")));
      register(UNKNOWN, f != null?f:(f = a("iaik.asn1.UNKNOWN")));
   }
}
Page generated: Oct 19, 2017 2:34:58 PM