⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 x500principal.java

📁 Mobile 应用程序使用 Java Micro Edition (Java ME) 平台
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
	    IllegalArgumentException iae = new IllegalArgumentException			("improperly specified input stream");	    iae.initCause(e);	    throw iae;	}    }    /**     * Returns a string representation of the X.500 distinguished name using     * the format defined in RFC 2253.     *     * <p>This method is equivalent to calling     * <code>getName(X500Principal.RFC2253)</code>.     *     * @return the distinguished name of this <code>X500Principal</code>     */    public String getName() {	return getName(X500Principal.RFC2253);    }    /**     * Returns a string representation of the X.500 distinguished name     * using the specified format. Valid values for the format are     * "RFC1779", "RFC2253", and "CANONICAL" (case insensitive).     *     * <p> If "RFC1779" is specified as the format,     * this method emits the attribute type keywords defined in     * RFC 1779 (CN, L, ST, O, OU, C, STREET).     * Any other attribute type is emitted as an OID.     *     * <p> If "RFC2253" is specified as the format,     * this method emits the attribute type keywords defined in     * RFC 2253 (CN, L, ST, O, OU, C, STREET, DC, UID).     * Any other attribute type is emitted as an OID.     * Under a strict reading, RFC 2253 only specifies a UTF-8 string     * representation. The String returned by this method is the     * Unicode string achieved by decoding this UTF-8 representation.     *     * <p> If "CANONICAL" is specified as the format,     * this method returns an RFC 2253 conformant string representation     * with the following additional canonicalizations:     *     * <p><ol>     * <li> Leading zeros are removed from attribute types     *		that are encoded as dotted decimal OIDs     * <li> DirectoryString attribute values of type     *		PrintableString and UTF8String are not     *		output in hexadecimal format     * <li> DirectoryString attribute values of types     *		other than PrintableString and UTF8String     *		are output in hexadecimal format     * <li> Leading and trailing white space characters     *		are removed from non-hexadecimal attribute values     *		(unless the value consists entirely of white space characters)     * <li> Internal substrings of one or more white space characters are     *		converted to a single space in non-hexadecimal     *		attribute values     * <li> Relative Distinguished Names containing more than one     *		Attribute Value Assertion (AVA) are output in the     *		following order: an alphabetical ordering of AVAs     *		containing standard keywords, followed by a numeric     *		ordering of AVAs containing OID keywords.     * <li> The only characters in attribute values that are escaped are     *		those which section 2.4 of RFC 2253 states must be escaped     *		(they are escaped using a preceding backslash character)     * <li> The entire name is converted to upper case     *		using <code>String.toUpperCase(Locale.US)</code>     * <li> The entire name is converted to lower case     *		using <code>String.toLowerCase(Locale.US)</code>     * <li> The name is finally normalized using normalization form KD,     *		as described in the Unicode Standard and UAX #15     * </ol>     *     * <p> Additional standard formats may be introduced in the future.     *     * @param format the format to use     *     * @return a string representation of this <code>X500Principal</code>     *		using the specified format     * @throws IllegalArgumentException if the specified format is invalid     *          or null     */    public String getName(String format) {	if (format != null) {	    if (format.equalsIgnoreCase(RFC1779)) {		return thisX500Name.getRFC1779Name();	    } else if (format.equalsIgnoreCase(RFC2253)) {		return thisX500Name.getRFC2253Name();	    } else if (format.equalsIgnoreCase(CANONICAL)) {		return thisX500Name.getRFC2253CanonicalName();	    }	}        throw new IllegalArgumentException("invalid format specified");    }    /**     * Returns a string representation of the X.500 distinguished name     * using the specified format. Valid values for the format are     * "RFC1779" and "RFC2253" (case insensitive). "CANONICAL" is not     * permitted and an <code>IllegalArgumentException</code> will be thrown.     *     * <p>This method returns Strings in the format as specified in     * {@link #getName(String)} and also emits additional attribute type     * keywords for OIDs that have entries in the <code>oidMap</code>     * parameter. OID entries in the oidMap take precedence over the default     * OIDs recognized by <code>getName(String)</code>.     * Improperly specified OIDs are ignored; however if an OID     * in the name maps to an improperly specified keyword, an     * <code>IllegalArgumentException</code> is thrown.     *     * <p> Additional standard formats may be introduced in the future.     *     * <p> Warning: additional attribute type keywords may not be recognized     * by other implementations; therefore do not use this method if     * you are unsure if these keywords will be recognized by other     * implementations.     *     * @param format the format to use     * @param oidMap an OID map, where each key is an object identifier in     *  String form (a sequence of nonnegative integers separated by periods)     *  that maps to a corresponding attribute type keyword String.     *  The map may be empty but never <code>null</code>.     * @return a string representation of this <code>X500Principal</code>     *          using the specified format     * @throws IllegalArgumentException if the specified format is invalid,      *  null, or an OID in the name maps to an improperly specified keyword     * @throws NullPointerException if <code>oidMap</code> is <code>null</code>     * @since 1.6     */    public String getName(String format, Map<String, String> oidMap) {	if (oidMap == null) {	    throw new NullPointerException		(sun.security.util.ResourcesMgr.getString		("provided null OID map"));	}	if (format != null) {	    if (format.equalsIgnoreCase(RFC1779)) {		return thisX500Name.getRFC1779Name(oidMap);	    } else if (format.equalsIgnoreCase(RFC2253)) {		return thisX500Name.getRFC2253Name(oidMap);	    }	}        throw new IllegalArgumentException("invalid format specified");    }    /**     * Returns the distinguished name in ASN.1 DER encoded form. The ASN.1     * notation for this structure is supplied in the documentation for     * {@link #X500Principal(byte[] name) X500Principal(byte[] name)}.     *     * <p>Note that the byte array returned is cloned to protect against     * subsequent modifications.     *     * @return a byte array containing the distinguished name in ASN.1 DER      * encoded form     */    public byte[] getEncoded() {	try {	    return thisX500Name.getEncoded();	} catch (IOException e) {            throw new RuntimeException("unable to get encoding", e);	}    }    /**     * Return a user-friendly string representation of this     * <code>X500Principal</code>.     *     * @return a string representation of this <code>X500Principal</code>     */    public String toString() {	return thisX500Name.toString();    }    /**     * Compares the specified <code>Object</code> with this      * <code>X500Principal</code> for equality.     *     * <p> Specifically, this method returns <code>true</code> if     * the <code>Object</code> <i>o</i> is an <code>X500Principal</code>     * and if the respective canonical string representations     * (obtained via the <code>getName(X500Principal.CANONICAL)</code> method)     * of this object and <i>o</i> are equal.     *     * <p> This implementation is compliant with the requirements of RFC 2459.     *     * @param o Object to be compared for equality with this     *		<code>X500Principal</code>     *     * @return <code>true</code> if the specified <code>Object</code> is equal      *		to this <code>X500Principal</code>, <code>false</code> otherwise     */    public boolean equals(Object o) {        if (this == o) {            return true;	}	if (o instanceof X500Principal == false) {	    return false;	}	X500Principal other = (X500Principal)o;	return this.thisX500Name.equals(other.thisX500Name);    }     /**     * Return a hash code for this <code>X500Principal</code>.     *     * <p> The hash code is calculated via:     * <code>getName(X500Principal.CANONICAL).hashCode()</code>     *     * @return a hash code for this <code>X500Principal</code>     */    public int hashCode() {	return thisX500Name.hashCode();    }    /**     * Save the X500Principal object to a stream.     *     * @serialData this <code>X500Principal</code> is serialized     *		by writing out its DER-encoded form     *		(the value of <code>getEncoded</code> is serialized).     */     private void writeObject(java.io.ObjectOutputStream s)	throws IOException {	s.writeObject(thisX500Name.getEncodedInternal());    }    /**     * Reads this object from a stream (i.e., deserializes it).     */    private void readObject(java.io.ObjectInputStream s)	throws java.io.IOException,	       java.io.NotActiveException,	       ClassNotFoundException {	// re-create thisX500Name	thisX500Name = new X500Name((byte[])s.readObject());    }}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -