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.INTEGER;
import iaik.asn1.ObjectID;
import iaik.asn1.SEQUENCE;
import iaik.x509.V3Extension;
import iaik.x509.X509ExtensionException;
import java.math.BigInteger;

public class PolicyConstraints extends V3Extension {
   int b = -1;
   int a = -1;
   public static final ObjectID oid = new ObjectID("2.5.29.36", "PolicyConstraints");

   public String toString() {
      StringBuffer var1 = new StringBuffer();
      if(this.a != -1) {
         var1.append("require explicit policy: " + this.a + "\n");
      }

      if(this.b != -1) {
         var1.append("inhibit policy mapping: " + this.b + "\n");
      }

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

   public ASN1Object toASN1Object() {
      boolean var1 = true;
      SEQUENCE var2 = new SEQUENCE();
      if(this.a != -1) {
         var2.addComponent(new CON_SPEC(0, new INTEGER(this.a), var1));
      }

      if(this.b != -1) {
         var2.addComponent(new CON_SPEC(1, new INTEGER(this.b), var1));
      }

      return var2;
   }

   public void setRequireExplicitPolicy(int var1) {
      this.a = var1;
   }

   public void setInhibitPolicyMapping(int var1) {
      this.b = var1;
   }

   public void setInhibitExplicitPolicy(int var1) {
      this.setInhibitPolicyMapping(var1);
   }

   public void init(ASN1Object var1) throws X509ExtensionException {
      try {
         if(!var1.isA(ASN.SEQUENCE)) {
            throw new X509ExtensionException("PolicyConstraints has to be a SEQUENCE!");
         } else {
            int var2 = var1.countComponents();
            if(var2 > 2) {
               throw new X509ExtensionException("PolicyConstraints cannot have more than 2 components!");
            } else {
               for(int var3 = 0; var3 < var1.countComponents(); ++var3) {
                  CON_SPEC var4 = (CON_SPEC)var1.getComponentAt(var3);
                  if(var4.isImplicitlyTagged()) {
                     var4.forceImplicitlyTagged(ASN.INTEGER);
                  }

                  switch(var4.getAsnType().getTag()) {
                  case 0:
                     this.a = ((BigInteger)((ASN1Object)var4.getValue()).getValue()).intValue();
                     break;
                  case 1:
                     this.b = ((BigInteger)((ASN1Object)var4.getValue()).getValue()).intValue();
                  }
               }

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

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

   public int getRequireExplicitPolicy() {
      return this.a;
   }

   public ObjectID getObjectID() {
      return oid;
   }

   public int getInhibitPolicyMapping() {
      return this.b;
   }

   public int getInhibitExplicitPolicy() {
      return this.getInhibitPolicyMapping();
   }
}
Page generated: Oct 19, 2017 2:34:35 PM