- すべての実装されたインタフェース:
- Serializable,- Principal
public final class X500Principal extends Object implements Principal, Serializable
 このクラスは、X.500 Principalを表します。 X500Principalは「CN=Duke, OU=JavaSoft, O=Sun Microsystems, C=US」のような識別名で表されます。 
 
このクラスは、識別名の文字列表現を使用するか、識別名のASN.1 DERエンコード・バイト表現を使用してインスタンス化されます。 識別名の文字列表現についての現在の仕様は、RFC 2253: Lightweight Directory Access Protocol (v3): UTF-8 String Representation of Distinguished Namesで定義されています。 ただし、このクラスでは、RFC 2253とRFC 1779: A String Representation of Distinguished Namesの両方に記述された文字列形式も使用可能であり、また、RFC 5280: Internet X.509 Public Key Infrastructure Certificate and CRL ProfileでOID (Object Identifier)が定義されている属性の型キーワードも認識します。
 このX500Principalの文字列表現は、getNameメソッドを呼び出すことで取得できます。
 
 X509CertificateのgetSubjectX500PrincipalメソッドとgetIssuerX500Principalメソッドは、証明書の発行者とサブジェクトのフィールドを表すX500Principalsを返します。
- 導入されたバージョン:
- 1.4
- 関連項目:
- X509Certificate, 直列化された形式
- 
フィールドのサマリー
- 
コンストラクタのサマリーコンストラクタ コンストラクタ 説明 X500Principal(byte[] name)ASN.1 DERエンコード形式の識別名からX500Principalを作成します。X500Principal(InputStream is)ASN.1 DERエンコード形式の識別名を含むInputStreamからX500Principalを作成します。X500Principal(String name)X.500識別名(例: CN=Duke、OU=JavaSoft、O=Sun Microsystems、C=US)の文字列表現からX500Principalを作成します。X500Principal(String name, Map<String,String> keywordMap)X.500識別名(例: CN=Duke、OU=JavaSoft、O=Sun Microsystems、C=US)の文字列表現からX500Principalを作成します。
- 
メソッドのサマリー修飾子と型 メソッド 説明 booleanequals(Object o)指定されたObjectをこのX500Principalと比較して等しいかどうかを調べます。byte[]getEncoded()ASN.1 DERエンコード形式の識別名を返します。StringgetName()RFC 2253で定義された形式で、X.500識別名の文字列形式を返します。StringgetName(String format)指定した形式でX.500識別名の文字列形式を返します。StringgetName(String format, Map<String,String> oidMap)指定した形式でX.500識別名の文字列形式を返します。inthashCode()X500Principalのハッシュ・コードを返します。StringtoString()このX500Principalの、ユーザーが使いやすい文字列表現を返します。
- 
フィールド詳細
- 
コンストラクタの詳細- 
X500Principalpublic X500Principal(String name)X.500識別名(例: CN=Duke、OU=JavaSoft、O=Sun Microsystems、C=US)の文字列表現からX500Principalを作成します。 識別名はRFC 1779かRFC 2253 (どちらも可)で定義された文法を使用して指定する必要があります。このコンストラクタは、RFC 1779およびRFC 2253 ( getName(String format)にリストされています)で定義されている属性型キーワードと、オブジェクト識別子(OID)がRFC 5280で定義されているT、DNQまたはDNQUALIFIER、SURNAME、GIVENNAME、INITIALS、GENERATION、EMAILADDRESS、およびSERIALNUMBERキーワードを認識します。 そのほかの属性の型はOIDで指定する必要があります。この実装では、RFC 1779および2253で規定されたOID構文よりも制限の強い構文が適用されます。 RFC 4512で規定されたより正しい構文(OIDには次のように少なくとも2つの桁が含まれるという仕様)が使用されます。 numericoid = number 1*( DOT number )- パラメータ:
- name- RFC 1779形式またはRFC 2253形式のX.500識別名
- 例外:
- NullPointerException-- nameが- nullである場合
- IllegalArgumentException-- nameの指定が正しくない場合
 
- 
X500PrincipalX.500識別名(例: CN=Duke、OU=JavaSoft、O=Sun Microsystems、C=US)の文字列表現からX500Principalを作成します。 識別名はRFC 1779かRFC 2253 (どちらも可)で定義された文法を使用して指定する必要があります。このコンストラクタは、 X500Principal(String)に指定された属性の型キーワードと、keywordMapパラメータ内にエントリを持つその他のキーワードを認識します。X500Principal(String)によって認識されるデフォルトのキーワードより、keywordMap内のキーワード・エントリのほうが優先されます。 キーワードはすべて大文字で指定してください。大文字で指定しなかった場合、そのキーワードは無視されます。 正しく指定されていないキーワードは無視されますが、名前に含まれるキーワードが、正しく指定されていないオブジェクト識別子(OID)にマップされている場合は、IllegalArgumentExceptionがスローされます。 単一のOIDに、最大2つの異なったキーワードをマップできます。この実装では、RFC 1779および2253で規定されたOID構文よりも制限の強い構文が適用されます。 RFC 4512で規定されたより正しい構文(OIDには次のように少なくとも2つの桁が含まれるという仕様)が使用されます。 numericoid = number 1*( DOT number )- パラメータ:
- name- RFC 1779形式またはRFC 2253形式のX.500識別名
- keywordMap- 属性の型キーワード・マップ。各キーは、String形式(ピリオドで区切られたゼロ以上の整数の並び)で表された対応するオブジェクト識別子にマップされるキーワードString。 マップは空であってもよいが、- nullは不可。
- 例外:
- NullPointerException-- nameまたは- keywordMapが- nullの場合
- IllegalArgumentException-- nameが正しく指定されていない場合、または- nameに含まれるキーワードに対応するOIDが正しい形式でない場合
- 導入されたバージョン:
- 1.6
 
- 
X500Principalpublic X500Principal(byte[] name)ASN.1 DERエンコード形式の識別名からX500Principalを作成します。 この構造体のASN.1表記は次のようになります。Name ::= CHOICE { RDNSequence } RDNSequence ::= SEQUENCE OF RelativeDistinguishedName RelativeDistinguishedName ::= SET SIZE (1 .. MAX) OF AttributeTypeAndValue AttributeTypeAndValue ::= SEQUENCE { type AttributeType, value AttributeValue } AttributeType ::= OBJECT IDENTIFIER AttributeValue ::= ANY DEFINED BY AttributeType .... DirectoryString ::= CHOICE { teletexString TeletexString (SIZE (1..MAX)), printableString PrintableString (SIZE (1..MAX)), universalString UniversalString (SIZE (1..MAX)), utf8String UTF8String (SIZE (1.. MAX)), bmpString BMPString (SIZE (1..MAX)) }- パラメータ:
- name- ASN.1 DERエンコード形式の識別名を含むバイト配列
- 例外:
- IllegalArgumentException- エンコーディング・エラーが発生した場合(DNの不正な形式)
 
- 
X500Principalpublic X500Principal(InputStream is)ASN.1 DERエンコード形式の識別名を含むInputStreamからX500Principalを作成します。 この構造体のASN.1表記については、X500Principal(byte[] name)のドキュメントを参照してください。入力ストリームの読込み位置は、エンコードした識別名のあとに来る、次の利用可能なバイトになります。 - パラメータ:
- is- ASN.1 DERエンコード形式の識別名を含む- InputStream
- 例外:
- NullPointerException-- InputStreamが- nullである場合
- IllegalArgumentException- エンコーディング・エラーが発生した場合(DNの不正な形式)
 
 
- 
- 
メソッドの詳細- 
getNamepublic String getName()RFC 2253で定義された形式で、X.500識別名の文字列形式を返します。このメソッドは、 getName(X500Principal.RFC2253)を呼び出すのと同等です。
- 
getName指定した形式でX.500識別名の文字列形式を返します。 形式に指定する有効な値は「RFC1779」、「RFC2253」、「CANONICAL」(大文字と小文字を区別しない)のどれかです。形式に「RFC1779」を指定した場合、このメソッドはRFC 1779で定義されている属性の型キーワード(CN、L、ST、O、OU、C、STREET)を発行します。 そのほかの属性の型は、OIDとして発行されます。 形式に「RFC2253」を指定した場合、このメソッドはRFC 2253で定義されている属性の型キーワード(CN、L、ST、O、OU、C、STREET)を発行します。 そのほかの属性の型は、OIDとして発行されます。 厳密に解釈すると、RFC 2253では、UTF-8文字列表現だけを指定できます。 このメソッドが返すStringは、このUTF-8表現をデコードすることで得られるUnicode文字列になります。 形式に"CANONICAL"を指定した場合、このメソッドはRFC 2253に適合し、次のように正規化された文字列表現を返します。 - 先頭の0は、ドット区切りの10進OIDとしてエンコードされた属性の型から取り除かれる。
- PrintableString型およびUTF8String型のDirectoryString属性値は、16進数形式では出力されない。
- PrintableStringおよびUTF8String以外の型のDirectoryString属性値は、16進数形式で出力される。
- 前後の空白文字が、16進数以外の属性値から取り除かれる(値が空白文字を含めて構成されている場合以外)。
- 1つ以上の空白文字からなる内部の部分文字列は、16進数以外の属性値では1つの空白文字に変換される。
- 複数のAttribute Value Assertion (AVA)を含むRelative Distinguished Nameは、標準キーワードを含むAVAのアルファベット順、そしてOIDキーワードを含むAVAの数字順に出力される。
- エスケープされる属性値の文字は、RFC 2253のセクション2.4でエスケープされると記述されている文字だけである(バックスラッシュ文字を前に付けることでエスケープされる)。
-  名前全体はString.toUpperCase(Locale.US)を使用して大文字に変換される。
-  名前全体はString.toLowerCase(Locale.US)を使用して小文字に変換される。
- 名前は、Unicode StandardとUAX#15に記述されている正規化形式KDを使用して、最終的に正規化される。
 将来、標準形式が追加導入される可能性があります。 - パラメータ:
- format- 使用する形式
- 戻り値:
- 指定した形式を使用した、このX500Principalの文字列表現
- 例外:
- IllegalArgumentException- 指定された形式が無効であるか、nullの場合
 
- 
getName指定した形式でX.500識別名の文字列形式を返します。 形式に指定する有効な値は「RFC1779」と「RFC2253」(大文字と小文字を区別しない)です。 「CANONICAL」は許可されていません。この値を指定した場合、IllegalArgumentExceptionがスローされます。このメソッドは、 getName(String)に指定された形式でStringを返します。また、oidMapパラメータ内にエントリがあるOIDのその他の属性の型キーワードを発行します。getName(String)が認識するデフォルトのOIDより、oidMap内のOIDエントリのほうが優先されます。 正しく指定されていないOIDは無視されるだけですが、名前に含まれるOIDに対応するキーワードが正しく指定されていない場合は、IllegalArgumentExceptionがスローされます。将来、標準形式が追加導入される可能性があります。 警告: その他の属性の型キーワードは、その他の実装によって認識されない可能性があります。これらのキーワードがその他の実装によって認識されるかどうか不明な場合は、このメソッドを使用しないでください。 - パラメータ:
- format- 使用する形式
- oidMap- OIDマップ。各キーは、対応する属性の型キーワードStringにマップされる、String形式(ピリオドで区切られたゼロ以上の整数の並び)で表されたオブジェクト識別子。 マップは空であってもよいが、- nullは不可。
- 戻り値:
- 指定した形式を使用した、このX500Principalの文字列表現
- 例外:
- IllegalArgumentException- 指定された形式が無効であるか、nullであるか、名前に含まれるOIDが不正なキーワードに対応している場合
- NullPointerException-- oidMapが- nullである場合
- 導入されたバージョン:
- 1.6
 
- 
getEncodedpublic byte[] getEncoded()ASN.1 DERエンコード形式の識別名を返します。 この構造体のASN.1表記については、X500Principal(byte[] name)のドキュメントを参照してください。以降の変更から保護するために、返されるバイト配列の複製が作成されます。 - 戻り値:
- ASN.1 DERエンコード形式の識別名を含むバイト配列
 
- 
toStringpublic String toString()このX500Principalの、ユーザーが使いやすい文字列表現を返します。
- 
equalspublic boolean equals(Object o)指定されたObjectをこのX500Principalと比較して等しいかどうかを調べます。特に、 ObjectoがX500Principalであり、このオブジェクトとoの正規の文字列表現(getName(X500Principal.CANONICAL)メソッドで取得)が等しい場合に、このメソッドはtrueを返します。この実装は、RFC 5280の要件に準拠しています。 
- 
hashCodepublic int hashCode()X500Principalのハッシュ・コードを返します。ハッシュ・コードは getName(X500Principal.CANONICAL).hashCode()によって計算されます。- 定義:
- hashCode、インタフェース:- Principal
- オーバーライド:
- hashCode、クラス:- Object
- 戻り値:
- このX500Principalのハッシュ・コード
- 関連項目:
- Object.equals(java.lang.Object),- System.identityHashCode(java.lang.Object)
 
 
-