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