1 package org.bouncycastle.asn1.x509;
3 import java.math.BigInteger;
5 import org.bouncycastle.asn1.*;
7 public class BasicConstraints
8 implements DEREncodable
10 DERBoolean cA = new DERBoolean(false);
11 DERInteger pathLenConstraint = null;
13 public static BasicConstraints getInstance(
17 return getInstance(ASN1Sequence.getInstance(obj, explicit));
20 public static BasicConstraints getInstance(
23 if (obj instanceof BasicConstraints)
25 return (BasicConstraints)obj;
27 else if (obj instanceof ASN1Sequence)
29 return new BasicConstraints((ASN1Sequence)obj);
32 throw new IllegalArgumentException("unknown object in factory");
35 public BasicConstraints(
40 this.cA = (DERBoolean)seq.getObjectAt(0);
41 this.pathLenConstraint = (DERInteger)seq.getObjectAt(1);
45 public BasicConstraints(
47 int pathLenConstraint)
49 this.cA = new DERBoolean(cA);
50 this.pathLenConstraint = new DERInteger(pathLenConstraint);
53 public BasicConstraints(
56 this.cA = new DERBoolean(cA);
57 this.pathLenConstraint = null;
65 public BigInteger getPathLenConstraint()
67 if (pathLenConstraint != null)
69 return pathLenConstraint.getValue();
77 * BasicConstraints := SEQUENCE {
78 * cA BOOLEAN DEFAULT FALSE,
79 * pathLenConstraint INTEGER (0..MAX) OPTIONAL
83 public DERObject getDERObject()
85 DERConstructedSequence seq = new DERConstructedSequence();
89 if (pathLenConstraint != null)
91 seq.addObject(pathLenConstraint);
97 public String toString()
99 return "BasicConstraints: isCa(" + this.isCA() + "), pathLenConstraint = " + pathLenConstraint.getValue();