Information

1
Story Points

Technologies

Decompiled Java File
package iaik.x509.extensions;

import iaik.asn1.ASN;
import iaik.asn1.ASN1Object;
import iaik.asn1.CON_SPEC;
import iaik.asn1.CodingException;
import iaik.asn1.ObjectID;
import iaik.asn1.SEQUENCE;
import iaik.asn1.structures.GeneralSubtree;
import iaik.x509.V3Extension;
import iaik.x509.X509ExtensionException;

public class NameConstraints extends V3Extension {
   // $FF: synthetic field
   static Class c;
   GeneralSubtree[] b;
   GeneralSubtree[] a;
   public static final ObjectID oid = new ObjectID("2.5.29.30", "NameConstraints");

   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();
      int var2;
      if(this.a != null) {
         var1.append("permitted subtrees:\n");

         for(var2 = 0; var2 < this.a.length; ++var2) {
            var1.append(var2 + 1 + ": ");
            var1.append(this.a[var2]);
            var1.append("\n");
         }
      }

      if(this.b != null) {
         var1.append("excluded subtrees:\n");

         for(var2 = 0; var2 < this.b.length; ++var2) {
            var1.append(var2 + 1 + ": ");
            var1.append(this.b[var2]);
            var1.append("\n");
         }
      }

      var1.setLength(var1.length() - 1);
      return var1.toString();
   }

   public ASN1Object toASN1Object() throws X509ExtensionException {
      boolean var1 = true;
      SEQUENCE var2 = new SEQUENCE();

      try {
         ASN1Object var3;
         if(this.a != null) {
            var3 = ASN.createSequenceOf(this.a);
            var2.addComponent(new CON_SPEC(0, var3, var1));
         }

         if(this.b != null) {
            var3 = ASN.createSequenceOf(this.b);
            var2.addComponent(new CON_SPEC(1, var3, var1));
         }

         return var2;
      } catch (CodingException var4) {
         throw new X509ExtensionException(var4.toString());
      }
   }

   public void setPermittedSubtrees(GeneralSubtree[] var1) {
      this.a = var1;
   }

   public void setExcludedSubtrees(GeneralSubtree[] var1) {
      this.b = var1;
   }

   public void init(ASN1Object var1) throws X509ExtensionException {
      try {
         if(!var1.isA(ASN.SEQUENCE)) {
            throw new X509ExtensionException("NameConstraints has to be a SEQUENCE!");
         } else {
            int var2 = 0;
            int var3 = var1.countComponents();
            if(var3 > 2) {
               throw new X509ExtensionException("NameConstraints cannot include more than two components!");
            } else {
               for(; var2 < var3; ++var2) {
                  CON_SPEC var4 = (CON_SPEC)var1.getComponentAt(var2);
                  boolean var5 = false;
                  if(var4.countComponents() > 1) {
                     var4.forceImplicitlyTagged(ASN.SEQUENCE);
                     var5 = true;
                  }

                  if(!var5) {
                     ASN1Object var6 = var4.getComponentAt(0).getComponentAt(0);
                     if(!var6.isA(ASN.SEQUENCE)) {
                        var4.forceImplicitlyTagged(ASN.SEQUENCE);
                     }
                  }

                  switch(var4.getAsnType().getTag()) {
                  case 0:
                     this.a = (GeneralSubtree[])ASN.parseSequenceOf((ASN1Object)var4.getValue(), c != null?c:(c = a("iaik.asn1.structures.GeneralSubtree")));
                     break;
                  case 1:
                     this.b = (GeneralSubtree[])ASN.parseSequenceOf((ASN1Object)var4.getValue(), c != null?c:(c = a("iaik.asn1.structures.GeneralSubtree")));
                  }
               }

            }
         }
      } catch (Exception var7) {
         throw new X509ExtensionException(var7.toString());
      }
   }

   public int hashCode() {
      return oid.hashCode();
   }

   public GeneralSubtree[] getPermittedSubtrees() {
      return this.a;
   }

   public ObjectID getObjectID() {
      return oid;
   }

   public GeneralSubtree[] getExcludedSubtrees() {
      return this.b;
   }
}
Page generated: Oct 19, 2017 2:34:21 PM