BasicConstraints.java
上传用户:lior1029
上传日期:2013-05-07
资源大小:209k
文件大小:2k
源码类别:

CA认证

开发平台:

Java

  1. package org.bouncycastle.asn1.x509;
  2. import java.math.BigInteger;
  3. import org.bouncycastle.asn1.*;
  4. public class BasicConstraints
  5.     implements DEREncodable
  6. {
  7.     DERBoolean  cA = new DERBoolean(false);
  8.     DERInteger  pathLenConstraint = null;
  9.     public static BasicConstraints getInstance(
  10.         ASN1TaggedObject obj,
  11.         boolean          explicit)
  12.     {
  13.         return getInstance(ASN1Sequence.getInstance(obj, explicit));
  14.     }
  15.     public static BasicConstraints getInstance(
  16.         Object  obj)
  17.     {
  18.         if (obj instanceof BasicConstraints)
  19.         {
  20.             return (BasicConstraints)obj;
  21.         }
  22.         else if (obj instanceof ASN1Sequence)
  23.         {
  24.             return new BasicConstraints((ASN1Sequence)obj);
  25.         }
  26.         throw new IllegalArgumentException("unknown object in factory");
  27.     }
  28.     public BasicConstraints(
  29.         ASN1Sequence   seq)
  30.     {
  31.         this.cA = (DERBoolean)seq.getObjectAt(0);
  32.         if (seq.size() > 1)
  33.         {
  34.             this.pathLenConstraint = (DERInteger)seq.getObjectAt(1);
  35.         }
  36.     }
  37.     public BasicConstraints(
  38.         boolean cA,
  39.         int     pathLenConstraint)
  40.     {
  41.         this.cA = new DERBoolean(cA);
  42.         this.pathLenConstraint = new DERInteger(pathLenConstraint);
  43.     }
  44.     public BasicConstraints(
  45.         boolean cA)
  46.     {
  47.         this.cA = new DERBoolean(cA);
  48.         this.pathLenConstraint = null;
  49.     }
  50.     public boolean isCA()
  51.     {
  52.         return cA.isTrue();
  53.     }
  54.     public BigInteger getPathLenConstraint()
  55.     {
  56.         if (pathLenConstraint != null)
  57.         {
  58.             return pathLenConstraint.getValue();
  59.         }
  60.         return null;
  61.     }
  62.     /**
  63.      * <pre>
  64.      * BasicConstraints := SEQUENCE {
  65.      *    cA                  BOOLEAN DEFAULT FALSE,
  66.      *    pathLenConstraint   INTEGER (0..MAX) OPTIONAL
  67.      * }
  68.      * </pre>
  69.      */
  70.     public DERObject getDERObject()
  71.     {
  72.         ASN1EncodableVector  v = new ASN1EncodableVector();
  73.         v.add(cA);
  74.         if (pathLenConstraint != null)
  75.         {
  76.             v.add(pathLenConstraint);
  77.         }
  78.         return new DERSequence(v);
  79.     }
  80.     public String toString()
  81.     {
  82.         return "BasicConstraints: isCa(" + this.isCA() + "), pathLenConstraint = " + pathLenConstraint.getValue();
  83.     }
  84. }