/*
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* under the terms of the GNU General Public License version 2 only, as
* published by the Free Software Foundation. Oracle designates this
* particular file as subject to the "Classpath" exception as provided
* by Oracle in the LICENSE file that accompanied this code.
*
* This code is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
* version 2 for more details (a copy is included in the LICENSE file that
* accompanied this code).
*
* You should have received a copy of the GNU General Public License version
* 2 along with this work; if not, write to the Free Software Foundation,
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
*
* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
* or visit www.oracle.com if you need additional information or have any
* questions.
*/
/**
* This class implements the ASN.1 GeneralName object class.
* <p>
* The ASN.1 syntax for this is:
* <pre>
* GeneralName ::= CHOICE {
* otherName [0] OtherName,
* rfc822Name [1] IA5String,
* dNSName [2] IA5String,
* x400Address [3] ORAddress,
* directoryName [4] Name,
* ediPartyName [5] EDIPartyName,
* uniformResourceIdentifier [6] IA5String,
* iPAddress [7] OCTET STRING,
* registeredID [8] OBJECT IDENTIFIER
* }
* </pre>
* @author Amit Kapoor
* @author Hemma Prafullchandra
*/
public class GeneralName {
// Private data members
/**
* Default constructor for the class.
*
* @param name the selected CHOICE from the list.
* @throws NullPointerException if name is null
*/
throw new NullPointerException("GeneralName must not be null");
}
}
/**
* Create the object from its DER encoded value.
*
* @param encName the DER encoded GeneralName.
*/
this(encName, false);
}
/**
* Create the object from its DER encoded value.
*
* @param encName the DER encoded GeneralName.
* @param nameConstraint true if general name is a name constraint
*/
throws IOException {
// All names except for NAME_DIRECTORY should be encoded with the
// IMPLICIT tag.
switch (tag) {
case GeneralNameInterface.NAME_ANY:
} else {
throw new IOException("Invalid encoding of Other-Name");
}
break;
} else {
throw new IOException("Invalid encoding of RFC822 name");
}
break;
case GeneralNameInterface.NAME_DNS:
} else {
throw new IOException("Invalid encoding of DNS name");
}
break;
case GeneralNameInterface.NAME_URI:
} else {
throw new IOException("Invalid encoding of URI");
}
break;
case GeneralNameInterface.NAME_IP:
} else {
throw new IOException("Invalid encoding of IP address");
}
break;
case GeneralNameInterface.NAME_OID:
} else {
throw new IOException("Invalid encoding of OID name");
}
break;
} else {
throw new IOException("Invalid encoding of Directory name");
}
break;
case GeneralNameInterface.NAME_EDI:
} else {
throw new IOException("Invalid encoding of EDI name");
}
break;
default:
throw new IOException("Unrecognized GeneralName tag, ("
+ tag +")");
}
}
/**
* Return the type of the general name.
*/
public int getType() {
}
/**
* Return the GeneralNameInterface name.
*/
//XXXX May want to consider cloning this
return name;
}
/**
* Return the name as user readable string
*/
}
/**
* Compare this GeneralName with another
*
* @param other GeneralName to compare to this
* @returns true if match
*/
if (this == other) {
return true;
}
if (!(other instanceof GeneralName))
return false;
try {
} catch (UnsupportedOperationException ioe) {
return false;
}
}
/**
* Returns the hash code for this GeneralName.
*
* @return a hash code value.
*/
public int hashCode() {
}
/**
* Encode the name to the specified DerOutputStream.
*
* @param out the DerOutputStream to encode the the GeneralName to.
* @exception IOException on encoding errors.
*/
// implicit, constructed form
// explicit, constructed form since underlying tag is CHOICE
// (see X.680 section 30.6, part c)
} else {
// implicit, primitive form
}
}
}