KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > com > ca > commons > security > cert > extensions > NameConstraints


1
2 package com.ca.commons.security.cert.extensions;
3
4 import com.ca.commons.security.asn1.*;
5
6 /**
7  * <pre>
8  * NameConstraints ::= SEQUENCE {
9  * permittedSubtrees [0] GeneralSubtrees OPTIONAL,
10  * excludedSubtrees [1] GeneralSubtrees OPTIONAL }
11  *
12  * GeneralSubtrees ::= SEQUENCE SIZE (1..MAX) OF GeneralSubtree
13  *
14  * GeneralSubtree ::= SEQUENCE {
15  * base GeneralName,
16  * minimum [0] BaseDistance DEFAULT 0,
17  * maximum [1] BaseDistance OPTIONAL }
18  *
19  * BaseDistance ::= INTEGER (0..MAX)
20  * </pre>
21  *
22  * @author vbui
23  */

24 public class NameConstraints implements V3Extension
25 {
26     String JavaDoc value = null;
27
28     public void init(ASN1Object asn1object) throws Exception JavaDoc
29     {
30         if (!asn1object.isASN1Type(ASN1Type.SEQUENCE))
31             throw new Exception JavaDoc("Wrong ASN.1 type for NameConstraints");
32
33         if (asn1object.size() >= 1)
34         {
35             value = "permittedSubtrees: " + getSubtrees(asn1object.getComponent(0));
36         }
37
38         if (asn1object.size() >= 2)
39         {
40             value = value + "\nexcludedSubtrees: " + getSubtrees(asn1object.getComponent(0));
41         }
42     }
43
44     public String JavaDoc getSubtrees(ASN1Object obj)
45     {
46         StringBuffer JavaDoc buff = new StringBuffer JavaDoc();
47
48         for (int i = 0; i < obj.size(); i++)
49         {
50             buff.append("\n generalSubtree");
51             ASN1Object gsubtree = obj.getComponent(i);
52             if (gsubtree.size() >= 1)
53             {
54                 buff.append("\n\tbase: " + IssuerAltName.getGNameString(gsubtree.getComponent(0)));
55             }
56             if (gsubtree.size() >= 2)
57             {
58                 buff.append("\n\tminimum: " + gsubtree.getComponent(1).getValue());
59             }
60             if (gsubtree.size() >= 3)
61             {
62                 buff.append("\n\tmaximum: " + gsubtree.getComponent(2).getValue());
63             }
64         }
65
66         return buff.toString();
67     }
68
69     public String JavaDoc toString()
70     {
71         return value;
72     }
73 }
74
75
Popular Tags