Clover Coverage Report
Coverage timestamp: Sun Mar 23 2008 08:24:39 GMT
17   192   2   1.42
0   54   0.76   12
12     1.08  
1    
 
 
  IssuedOnBehalfOf       Line # 58 17 2 48.3% 0.4827586
 
  (1)
 
1    /*
2    * Copyright (c) 2006, University of Kent
3    * All rights reserved.
4    *
5    * Redistribution and use in source and binary forms, with or without
6    * modification, are permitted provided that the following conditions are met:
7    *
8    * Redistributions of source code must retain the above copyright notice, this
9    * list of conditions and the following disclaimer.
10    *
11    * Redistributions in binary form must reproduce the above copyright notice,
12    * this list of conditions and the following disclaimer in the documentation
13    * and/or other materials provided with the distribution.
14    *
15    * 1. Neither the name of the University of Kent nor the names of its
16    * contributors may be used to endorse or promote products derived from this
17    * software without specific prior written permission.
18    *
19    * 2. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
20    * IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
21    * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
22    * PURPOSE ARE DISCLAIMED.
23    *
24    * 3. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
25    * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
26    * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
27    * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
28    * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
29    * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
30    * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
31    * POSSIBILITY OF SUCH DAMAGE.
32    *
33    * 4. YOU AGREE THAT THE EXCLUSIONS IN PARAGRAPHS 2 AND 3 ABOVE ARE REASONABLE
34    * IN THE CIRCUMSTANCES. IN PARTICULAR, YOU ACKNOWLEDGE (1) THAT THIS
35    * SOFTWARE HAS BEEN MADE AVAILABLE TO YOU FREE OF CHARGE, (2) THAT THIS
36    * SOFTWARE IS NOT "PRODUCT" QUALITY, BUT HAS BEEN PRODUCED BY A RESEARCH
37    * GROUP WHO DESIRE TO MAKE THIS SOFTWARE FREELY AVAILABLE TO PEOPLE WHO WISH
38    * TO USE IT, AND (3) THAT BECAUSE THIS SOFTWARE IS NOT OF "PRODUCT" QUALITY
39    * IT IS INEVITABLE THAT THERE WILL BE BUGS AND ERRORS, AND POSSIBLY MORE
40    * SERIOUS FAULTS, IN THIS SOFTWARE.
41    *
42    * 5. This license is governed, except to the extent that local laws
43    * necessarily apply, by the laws of England and Wales.
44    */
45   
46    package issrg.ac.attributes;
47    import iaik.asn1.*;
48    import iaik.asn1.structures.*;
49    import iaik.utils.RFC2253NameParser;
50    import iaik.utils.RFC2253NameParserException;
51    import issrg.utils.RFC2253ParsingException;
52   
53   
54    /**
55    *
56    * @author anhnt
57    */
 
58    public class IssuedOnBehalfOf extends issrg.ac.Extension implements Cloneable {
59   
60    /**
61    *The string stores the standard OID for the IssuedOnBehalfOf extension: 2.5.29.64
62    */
63   
64    public static final String ISSUED_ON_BEHALF_OF_OID = "2.5.29.64";
65    private GeneralName iobo;
66    private String issuerDN;
67   
68    /**
69    * This method registers this extension as an extension with a specific
70    * OID. After it has been registered, Extensions can recognise
71    * the extension with this OID.
72    */
73   
 
74  19 toggle public static void registerMe() {
75  19 issrg.ac.Extensions.registerExtension(ISSUED_ON_BEHALF_OF_OID, IssuedOnBehalfOf.class);
76    }
77   
78   
79    /** Creates a new instance of IssuedOnBehalfOf based on an
80    *existing IssuedOnBehalfOf extension
81    *
82    *@param e is an existing IssuedOnBehalfOf extension
83    */
84   
 
85  0 toggle public IssuedOnBehalfOf(IssuedOnBehalfOf e) throws iaik.asn1.CodingException {
86  0 super(ISSUED_ON_BEHALF_OF_OID, e.isCritical(), e.getExtensionValue());
87    }
88   
89    /** Creates a new instance of IssuedOnBehalfOf based on paramters.
90    *
91    *@param critical is a boolean value. It is a flag of the extension that tells
92    *the criticality of the extension.
93    *@param iobo is a GeneralName object that stores the ID of the requester.
94    *@return an IssuedOnBehalfOf object.
95    *
96    */
97   
 
98  20 toggle public IssuedOnBehalfOf (boolean critical, iaik.asn1.structures.GeneralName iobo) {
99  20 super(ISSUED_ON_BEHALF_OF_OID, critical);
100  20 setIssuedOnBehalfOf(iobo);
101    }
102   
 
103  0 toggle public Object clone(){
104  0 try {
105  0 return new IssuedOnBehalfOf(this);
106    } catch (iaik.asn1.CodingException ce) {
107  0 return null;
108    }
109    }
110   
111    /**
112    * This method constructs an IssuedOnBehalfOf extension based on an ASN1Object object
113    *@param ao is the ASN1Object object that is used to construct the IssuedOnBehalfOf object.
114    */
115   
 
116  538 toggle public IssuedOnBehalfOf(ASN1Object ao) throws CodingException{
117  538 super(ao);
118    }
119   
120    /**
121    * This method encodes the extension value of the IssuedOnBehalfOf object
122    *to an ASN1Object.
123    *
124    *@return an ASN1Object.
125    */
126   
 
127  40 toggle public ASN1Object encodeValue() throws CodingException{
128  40 return iobo.toASN1Object();
129   
130    }
131   
132    /**
133    *This methods decodes an ASN1Object to get an extension value of
134    *the IssuedOnBehalfOf object.
135    *
136    *@param ao is an ASN1Object to be decoded.
137    */
138   
 
139  538 toggle public void decodeValue(ASN1Object ao) throws CodingException {
140  538 setIssuedOnBehalfOf(new GeneralName(ao));
141    }
142   
143   
144    /**
145    *This method is used for setting the GeneralName of the requester.
146    *
147    *@param gn is the GeneralName of the requester.
148    */
 
149  558 toggle public void setIssuedOnBehalfOf(GeneralName gn){
150  558 iobo=gn;
151  558 issuerDN=((Name)iobo.getName()).getName();
152    }
153   
154    /**
155    *This method set the requester's DN. It also creates a GeneralName object
156    *according to this DN.
157    *@param dn is a string that represents the requester's DN.
158    */
159   
 
160  0 toggle public void setIssuerDN(String dn) throws iaik.utils.RFC2253NameParserException{
161  0 issuerDN=dn;
162  0 iobo=new GeneralName(GeneralName.directoryName, new iaik.utils.RFC2253NameParser(dn).parse());
163    }
164   
165    /**
166    *This method returns the requestor's DN
167    *@return a string that represents the requestor's DN
168    */
169   
 
170  0 toggle public String getIssuerDN() {
171  0 return issuerDN;
172    }
173   
174    /**
175    *This method returns a GeneralName object that represents the requestor
176    *@return a GeneralName object
177    */
178   
 
179  0 toggle public GeneralName getIssuedOnBehalfOf(){
180  0 return iobo;
181    }
182   
183    /**
184    *This method returns a string that represents the requestor's DN in the form: "IssuedOnBehalfOf" + requestor's DN
185    *This method is used for debuging purposes
186    *@return a string that represents the requestor's DN
187    */
188   
 
189  0 toggle public String extensionValueToString(String indent){
190  0 return "IssuedOnBehalfOf "+issuerDN;
191    }
192    }