summaryrefslogtreecommitdiffstats
path: root/pki/base/util/src/netscape/security/x509/GeneralNames.java
diff options
context:
space:
mode:
Diffstat (limited to 'pki/base/util/src/netscape/security/x509/GeneralNames.java')
-rw-r--r--pki/base/util/src/netscape/security/x509/GeneralNames.java118
1 files changed, 58 insertions, 60 deletions
diff --git a/pki/base/util/src/netscape/security/x509/GeneralNames.java b/pki/base/util/src/netscape/security/x509/GeneralNames.java
index ac54f6d60..767e0fe3e 100644
--- a/pki/base/util/src/netscape/security/x509/GeneralNames.java
+++ b/pki/base/util/src/netscape/security/x509/GeneralNames.java
@@ -25,15 +25,12 @@ import netscape.security.util.DerOutputStream;
import netscape.security.util.DerValue;
/**
- * This object class represents the GeneralNames type required in X509
- * certificates.
- * <p>
- * The ASN.1 syntax for this is:
- *
+ * This object class represents the GeneralNames type required in
+ * X509 certificates.
+ * <p>The ASN.1 syntax for this is:
* <pre>
* GeneralNames ::= SEQUENCE SIZE (1..MAX) OF GeneralName
* </pre>
- *
* @author Amit Kapoor
* @author Hemma Prafullchandra
* @version 1.7
@@ -46,22 +43,23 @@ public class GeneralNames extends Vector {
/**
* Create the GeneralNames, decoding from the passed DerValue.
- *
- * <b>Caution when using this constructor. It may be broken! Better to call
- * addElement(gni) directly where gni is a GeneralNameInterface object </b>
- *
+ *
+ * <b>Caution when using this constructor. It may be broken!
+ * Better to call addElement(gni) directly where gni is
+ * a GeneralNameInterface object </b>
+ *
* @param derVal the DerValue to construct the GeneralNames from.
* @exception GeneralNamesException on decoding error.
* @exception IOException on error.
*/
- public GeneralNames(DerValue derVal) throws IOException,
- GeneralNamesException {
+ public GeneralNames(DerValue derVal)
+ throws IOException, GeneralNamesException {
if (derVal.tag != DerValue.tag_Sequence) {
throw new IOException("Invalid encoding for GeneralNames.");
}
if (derVal.data.available() == 0) {
throw new GeneralNamesException("No data available in "
- + "passed DER encoded value.");
+ + "passed DER encoded value.");
}
// Decode all the GeneralName's
while (derVal.data.available() != 0) {
@@ -72,41 +70,42 @@ public class GeneralNames extends Vector {
}
}
- /**
- * Create the GeneralNames
- *
- * @param names a non-empty array of names to put into the generalNames
- */
+ /**
+ * Create the GeneralNames
+ *
+ * @param names a non-empty array of names to put into the
+ * generalNames
+ */
+
+ public GeneralNames(GeneralNameInterface[] names)
+ throws GeneralNamesException {
+ if (names == null || names.length==0)
+ throw new GeneralNamesException("Cannot create empty GeneralNames");
+
+ for (int i=0;i<names.length;i++) {
+ addElement(names[i]);
+ }
+ }
- public GeneralNames(GeneralNameInterface[] names)
- throws GeneralNamesException {
- if (names == null || names.length == 0)
- throw new GeneralNamesException("Cannot create empty GeneralNames");
- for (int i = 0; i < names.length; i++) {
- addElement(names[i]);
- }
- }
/**
* The default constructor for this class.
*/
public GeneralNames() {
- super(1, 1);
+ super(1,1);
}
/**
* Write the extension to the DerOutputStream.
- *
+ *
* @param out the DerOutputStream to write the extension to.
* @exception GeneralNamesException on encoding error.
* @exception IOException on error.
*/
- public void encode(DerOutputStream out) throws IOException,
- GeneralNamesException {
- if (size() == 0) {
- return;
- }
+ public void encode(DerOutputStream out)
+ throws IOException, GeneralNamesException {
+ if (size() == 0) { return; }
Enumeration names = elements();
DerOutputStream temp = new DerOutputStream();
@@ -114,35 +113,34 @@ public class GeneralNames extends Vector {
while (names.hasMoreElements()) {
Object obj = names.nextElement();
if (!(obj instanceof GeneralNameInterface)) {
- throw new GeneralNamesException("Element in GeneralNames "
- + "not of type GeneralName.");
- }
- GeneralNameInterface intf = (GeneralNameInterface) obj;
- if (obj instanceof GeneralName) {
- intf.encode(temp);
- } else {
- DerOutputStream gname = new DerOutputStream();
- intf.encode(gname);
- int nameType = intf.getType();
- // constructed form
- if (nameType == GeneralNameInterface.NAME_ANY
- || nameType == GeneralNameInterface.NAME_X400
- || nameType == GeneralNameInterface.NAME_EDI) {
-
- temp.writeImplicit(DerValue.createTag(DerValue.TAG_CONTEXT,
- true, (byte) nameType), gname);
- } else if (nameType == GeneralNameInterface.NAME_DIRECTORY) {
- // EXPLICIT tag because directoryName is a CHOICE
- temp.write(DerValue.createTag(DerValue.TAG_CONTEXT, true,
- (byte) nameType), gname);
- } else
- // primitive form
- temp.writeImplicit(DerValue.createTag(DerValue.TAG_CONTEXT,
- false, (byte) nameType), gname);
+ throw new GeneralNamesException("Element in GeneralNames "
+ + "not of type GeneralName.");
}
+ GeneralNameInterface intf = (GeneralNameInterface)obj;
+ if (obj instanceof GeneralName) {
+ intf.encode(temp);
+ } else {
+ DerOutputStream gname = new DerOutputStream();
+ intf.encode(gname);
+ int nameType = intf.getType();
+ // constructed form
+ if (nameType == GeneralNameInterface.NAME_ANY ||
+ nameType == GeneralNameInterface.NAME_X400 ||
+ nameType == GeneralNameInterface.NAME_EDI) {
- }
+ temp.writeImplicit(DerValue.createTag(DerValue.TAG_CONTEXT,
+ true, (byte)nameType), gname);
+ } else if ( nameType == GeneralNameInterface.NAME_DIRECTORY ) {
+ // EXPLICIT tag because directoryName is a CHOICE
+ temp.write(DerValue.createTag(DerValue.TAG_CONTEXT,
+ true, (byte)nameType), gname);
+ } else // primitive form
+ temp.writeImplicit(DerValue.createTag(DerValue.TAG_CONTEXT,
+ false, (byte)nameType), gname);
+ }
- out.write(DerValue.tag_Sequence, temp);
+ }
+
+ out.write(DerValue.tag_Sequence,temp);
}
}