public class X509CertSelector extends Object implements CertSelector
X509Certificates を選択する CertSelector です。このクラスは、PKIX 準拠の証明書パスを構築するために CertStore から証明書を選択するときに、特に役立ちます。
最初に構築された X509CertSelector には有効な基準が含まれていないため、各 get メソッドはデフォルト値 (null。getBasicConstraints メソッドの場合は -1) を返します。したがって、match メソッドは、X509Certificate に対して true を返します。通常、X509CertSelector は、setIssuer や setKeyUsage を呼び出していくつかの基準を有効にしたあと、CertStore.getCertificates や類似のメソッドに渡されます。
match メソッドが通常的に単一の X509Certificate と一意に一致するように、いくつかの基準を (たとえば setIssuer や setSerialNumber を呼び出すことで) 有効にできます。通常、2 つの発行 CA で同じ識別名を持つことができるため、それぞれは同じシリアル番号で証明書を発行します。ほかの一意の組み合わせには、発行者、サブジェクト、subjectKeyIdentifier そして subjectPublicKey 基準が含まれます。
これから説明する X.509 証明書機能拡張の定義については、RFC 3280「Internet X.509 Public Key Infrastructure Certificate and CRL Profile」を参照してください。
並行アクセス
特に断らないかぎり、このクラスで定義されているメソッドはスレッドセーフではありません。単一のオブジェクトに並行アクセスする必要のある複数スレッドは、スレッド間で同期をとり、必要に応じてロックする必要があります。複数のスレッドがそれぞれ個別のオブジェクトを処理する場合、それらのスレッドは同期する必要はありません。
CertSelector, X509Certificate| コンストラクタと説明 |
|---|
X509CertSelector()
X509CertSelector を作成します。 |
| 修飾子と型 | メソッドと説明 |
|---|---|
void |
addPathToName(int type, byte[] name)
pathToNames 基準値に名前を追加します。
|
void |
addPathToName(int type, String name)
pathToNames 基準値に名前を追加します。
|
void |
addSubjectAlternativeName(int type, byte[] name)
subjectAlternativeNames 基準値に名前を追加します。
|
void |
addSubjectAlternativeName(int type, String name)
subjectAlternativeNames 基準値に名前を追加します。
|
Object |
clone()
このオブジェクトの複製を返します。
|
byte[] |
getAuthorityKeyIdentifier()
authorityKeyIdentifier 基準値を返します。
|
int |
getBasicConstraints()
基本制約に対する制約を返します。
|
X509Certificate |
getCertificate()
certificateEquals 基準値を返します。
|
Date |
getCertificateValid()
certificateValid 基準値を返します。
|
Set<String> |
getExtendedKeyUsage()
extendedKeyUsage 基準値を返します。
|
X500Principal |
getIssuer()
発行者の基準値を
X500Principal として返します。 |
byte[] |
getIssuerAsBytes()
発行者の基準値をバイト配列として返します。
|
String |
getIssuerAsString()
バグ: 代わりに getIssuer() または getIssuerAsBytes() を使用してください。
|
boolean[] |
getKeyUsage()
keyUsage 基準値を返します。
|
boolean |
getMatchAllSubjectAltNames()
setSubjectAlternativeNames メソッドや addSubjectAlternativeName メソッドで指定された subjectAlternativeNames がすべて、または少なくとも 1 つ、X509Certificate に含まれていなければならないかどうかを示します。 |
byte[] |
getNameConstraints()
名前制約の基準値を返します。
|
Collection<List<?>> |
getPathToNames()
pathToNames 基準値の複製を返します。
|
Set<String> |
getPolicy()
ポリシー基準値を返します。
|
Date |
getPrivateKeyValid()
privateKeyValid 基準値を返します。
|
BigInteger |
getSerialNumber()
serialNumber 基準値を返します。
|
X500Principal |
getSubject()
サブジェクトの基準値を
X500Principal として返します。 |
Collection<List<?>> |
getSubjectAlternativeNames()
subjectAlternativeNames 基準値のコピーを返します。
|
byte[] |
getSubjectAsBytes()
サブジェクトの基準値をバイト配列として返します。
|
String |
getSubjectAsString()
バグ: 代わりに getSubject() または getSubjectAsBytes() を使用してください。
|
byte[] |
getSubjectKeyIdentifier()
subjectKeyIdentifier 基準値を返します。
|
PublicKey |
getSubjectPublicKey()
subjectPublicKey 基準値を返します。
|
String |
getSubjectPublicKeyAlgID()
subjectPublicKeyAlgID 基準値を返します。
|
boolean |
match(Certificate cert)
Certificate が選択されるかどうかを判断します。 |
void |
setAuthorityKeyIdentifier(byte[] authorityKeyID)
authorityKeyIdentifier 基準値を設定します。
|
void |
setBasicConstraints(int minMaxPathLen)
基本制約に対する制約を設定します。
|
void |
setCertificate(X509Certificate cert)
certificateEquals 基準値を設定します。
|
void |
setCertificateValid(Date certValid)
certificateValid 基準値を設定します。
|
void |
setExtendedKeyUsage(Set<String> keyPurposeSet)
extendedKeyUsage 基準値を設定します。
|
void |
setIssuer(byte[] issuerDN)
発行者の基準値を設定します。
|
void |
setIssuer(String issuerDN)
バグ: 代わりに setIssuer(X500Principal) または setIssuer(byte[]) を使用してください。
|
void |
setIssuer(X500Principal issuer)
発行者の基準値を設定します。
|
void |
setKeyUsage(boolean[] keyUsage)
keyUsage 基準値を設定します。
|
void |
setMatchAllSubjectAltNames(boolean matchAllNames)
setSubjectAlternativeNames メソッドや addSubjectAlternativeName メソッドで指定されたすべての subjectAlternativeNames の照合を使用可能または使用不可にします。 |
void |
setNameConstraints(byte[] bytes)
名前制約の基準値を設定します。
|
void |
setPathToNames(Collection<List<?>> names)
pathToNames 基準値を設定します。
|
void |
setPolicy(Set<String> certPolicySet)
ポリシー制約を設定します。
|
void |
setPrivateKeyValid(Date privateKeyValid)
privateKeyValid 基準値を設定します。
|
void |
setSerialNumber(BigInteger serial)
serialNumber 基準値を設定します。
|
void |
setSubject(byte[] subjectDN)
サブジェクトの基準値を設定します。
|
void |
setSubject(String subjectDN)
バグ: 代わりに setSubject(X500Principal) または setSubject(byte[]) を使用してください。
|
void |
setSubject(X500Principal subject)
サブジェクトの基準値を設定します。
|
void |
setSubjectAlternativeNames(Collection<List<?>> names)
subjectAlternativeNames 基準値を設定します。
|
void |
setSubjectKeyIdentifier(byte[] subjectKeyID)
subjectKeyIdentifier 基準値を設定します。
|
void |
setSubjectPublicKey(byte[] key)
subjectPublicKey 基準値を設定します。
|
void |
setSubjectPublicKey(PublicKey key)
subjectPublicKey 基準値を設定します。
|
void |
setSubjectPublicKeyAlgID(String oid)
subjectPublicKeyAlgID 基準値を設定します。
|
String |
toString()
CertSelector のプリント可能表現を返します。 |
public X509CertSelector()
X509CertSelector を作成します。最初は条件が設定されていないため、どの X509Certificate でも一致します。public void setCertificate(X509Certificate cert)
X509Certificate は、match メソッドに渡された X509Certificate と同じでないといけません。null の場合、このチェックは行われません。
このメソッドは、単一の証明書と一致させる必要があるときに特に役立ちます。この certificateEquals 基準に加えてほかの基準を指定することも可能ですが、通常の場合そうすることは必要ないか、または実用的ではありません。
cert - 一致させる X509Certificate。または nullgetCertificate()public void setSerialNumber(BigInteger serial)
X509Certificate の証明書シリアル番号と一致する必要があります。null の場合、証明書シリアル番号は問われません。serial - 一致させる証明書シリアル番号。または nullgetSerialNumber()public void setIssuer(X500Principal issuer)
X509Certificate の発行者識別名と一致する必要があります。null の場合、発行者識別名は問われません。issuer - X500Principal としての識別名または nullpublic void setIssuer(String issuerDN) throws IOException
発行者の基準値を設定します。指定した識別名は、X509Certificate の発行者識別名と一致する必要があります。null の場合、発行者識別名は問われません。
issuerDN が null でない場合は、RFC 2253 形式で識別名が含まれなければいけません。
issuerDN - RFC 2253 形式の識別名。または nullIOException - 構文解析エラーが発生した場合 (DN の不正な形式)public void setIssuer(byte[] issuerDN)
throws IOException
X509Certificate の発行者識別名と一致する必要があります。null の場合、発行者の基準値は無効になり、任意の発行者識別名と一致します。
issuerDN が null ではない場合、X.501 で定義されている DER 符号化された単一識別名が含まれる必要があります。この構造体の 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)) }
以後の変更から保護するために、ここで指定されるバイト配列は複製されています。
issuerDN - ASN.1 DER 符号化形式による識別名を含むバイト配列。または nullIOException - 符号化エラーが発生した場合 (DN の不正な形式)public void setSubject(X500Principal subject)
X509Certificate のサブジェクト識別名と一致する必要があります。null の場合、サブジェクト識別名は問われません。subject - X500Principal としての識別名または nullpublic void setSubject(String subjectDN) throws IOException
サブジェクトの基準値を設定します。指定した識別名は、X509Certificate のサブジェクト識別名と一致する必要があります。null の場合、サブジェクト識別名は問われません。
subjectDN が null でない場合は、RFC 2253 形式で識別名が含まれなければいけません。
subjectDN - RFC 2253 形式の識別名。または nullIOException - 構文解析エラーが発生した場合 (DN の不正な形式)public void setSubject(byte[] subjectDN)
throws IOException
X509Certificate のサブジェクト識別名と一致する必要があります。null の場合、サブジェクト識別名は問われません。
subjectDN が null ではない場合、X.501 で定義されている DER 符号化された単一識別名が含まれる必要があります。この構造体の ASN.1 表記については、setIssuer(byte [] issuerDN) を参照してください。
subjectDN - ASN.1 DER 形式による識別名を含むバイト配列。または nullIOException - 符号化エラーが発生した場合 (DN の不正な形式)public void setSubjectKeyIdentifier(byte[] subjectKeyID)
X509Certificate には、その内容が指定した基準値と一致するような SubjectKeyIdentifier 機能拡張が含まれている必要があります。基準値が null の場合、subjectKeyIdentifier チェックは行われません。
subjectKeyID が null ではない場合、SubjectKeyIdentifier 機能拡張の値 (オブジェクト識別子、クリティカルの程度の設定、カプセル化された OCTET STRING は含まれない) の内容に対応する DER 符号化された値が 1 つ含まれる必要があります。この構造体の ASN.1 表記は次のとおりです。
SubjectKeyIdentifier ::= KeyIdentifier
KeyIdentifier ::= OCTET STRING
サブジェクトの鍵識別子の形式は標準で定義されていないため、サブジェクトの鍵識別子は X509CertSelector で構文解析されません。代わりに、バイトごとに比較することで、値が比較されます。
以後の変更から保護するために、ここで提供されるバイト配列は複製されています。
subjectKeyID - サブジェクトの鍵識別子。または nullgetSubjectKeyIdentifier()public void setAuthorityKeyIdentifier(byte[] authorityKeyID)
X509Certificate には、その内容が指定した基準値と一致するような AuthorityKeyIdentifier 機能拡張が含まれている必要があります。基準値が null の場合、authorityKeyIdentifier チェックは行われません。
authorityKeyID が null ではない場合、AuthorityKeyIdentifier 機能拡張の値 (オブジェクト識別子、クリティカルの程度の設定、カプセル化された OCTET STRING は含まれない) の内容に対応する DER 符号化された値が 1 つ含まれる必要があります。この構造体の ASN.1 表記は次のとおりです。
AuthorityKeyIdentifier ::= SEQUENCE {
keyIdentifier [0] KeyIdentifier OPTIONAL,
authorityCertIssuer [1] GeneralNames OPTIONAL,
authorityCertSerialNumber [2] CertificateSerialNumber OPTIONAL }
KeyIdentifier ::= OCTET STRING
権限の鍵識別子は X509CertSelector で構文解析されません。代わりに、バイトごとに比較することで、値が比較されます。
AuthorityKeyIdentifier の keyIdentifier フィールドが生成されると、通常、その値は発行者の証明書にある SubjectKeyIdentifier 機能拡張から取得されます。しかし、発行者の証明書での X509Certificate.getExtensionValue(<SubjectKeyIdentifier Object Identifier>) の結果が直接 setAuthorityKeyIdentifier の入力に使用されるとは限りません。これは、SubjectKeyIdentifier に含まれるものが KeyIdentifier の OCTET STRING だけであり、KeyIdentifier、GeneralNames、CertificateSerialNumber の SEQUENCE は含まれないためです。発行者の証明書での SubjectKeyIdentifier 機能拡張の値を使用するには、埋め込まれた KeyIdentifier OCTET STRING の値を抽出してから、DER でこの OCTET STRING を SEQUENCE 内に符号化します。SubjectKeyIdentifier の詳細は、setSubjectKeyIdentifier(byte[] subjectKeyID) を参照してください。
また、以後の変更から保護するために、ここで提供されるバイト配列は複製されています。
authorityKeyID - 権限の鍵識別子。または nullgetAuthorityKeyIdentifier()public void setCertificateValid(Date certValid)
X509Certificate の証明書有効期間内でなければいけません。null の場合、certificateValid のチェックは行われません。
以後の変更から保護するために、ここで提供される Date は複製されています。
certValid - チェック対象の Date。または nullgetCertificateValid()public void setPrivateKeyValid(Date privateKeyValid)
X509Certificate の非公開鍵有効期間内でなければいけません。null の場合、privateKeyValid のチェックは行われません。
以後の変更から保護するために、ここで提供される Date は複製されています。
privateKeyValid - チェック対象の Date。または nullgetPrivateKeyValid()public void setSubjectPublicKeyAlgID(String oid) throws IOException
X509Certificate には、指定したアルゴリズムによるサブジェクトの公開鍵が含まれなければいけません。null の場合、subjectPublicKeyAlgID のチェックは行われません。oid - チェック対象のアルゴリズムのオブジェクト識別子 (OID)、または null。OID はピリオドで区切られた負でない整数の組で表されるIOException - 最初のコンポーネントが 0、1、2 のいずれでもなく、2 番目のコンポーネントが 39 よりも大きいというように、OID が無効の場合getSubjectPublicKeyAlgID()public void setSubjectPublicKey(PublicKey key)
X509Certificate には、指定したサブジェクトの公開鍵が含まれなければいけません。null の場合、subjectPublicKey のチェックは行われません。key - チェック対象のサブジェクトの公開鍵。または nullgetSubjectPublicKey()public void setSubjectPublicKey(byte[] key)
throws IOException
X509Certificate には、指定したサブジェクトの公開鍵が含まれなければいけません。null の場合、subjectPublicKey のチェックは行われません。
このメソッドでは公開鍵をバイト配列として指定できるため、不明な鍵タイプに対して使うことができます。
key が null ではない場合、X.509 で定義されている DER 符号化された SubjectPublicKeyInfo 構造体が含まれている必要があります。この構造体の ASN.1 表記は次のようになります。
SubjectPublicKeyInfo ::= SEQUENCE {
algorithm AlgorithmIdentifier,
subjectPublicKey BIT STRING }
AlgorithmIdentifier ::= SEQUENCE {
algorithm OBJECT IDENTIFIER,
parameters ANY DEFINED BY algorithm OPTIONAL }
-- contains a value of the type
-- registered for use with the
-- algorithm object identifier value
以後の変更から保護するために、ここで提供されるバイト配列は複製されています。
key - ASN.1 DER 形式によるサブジェクトの公開鍵を含むバイト配列。または nullIOException - 符号化エラーが発生した場合 (サブジェクトの公開鍵の不正な形式)getSubjectPublicKey()public void setKeyUsage(boolean[] keyUsage)
X509Certificate で有効になっている必要があります。null の場合、keyUsage の確認は行われません。keyUsage 機能拡張のない X509Certificate では、すべての keyUsage の値が暗黙的に有効です。
以後の変更から保護するために、ここで提供される boolean 型配列は複製されています。
keyUsage - X509Certificate.getKeyUsage() によって返される boolean 型配列と同じ形式の boolean 型配列。または nullgetKeyUsage()public void setExtendedKeyUsage(Set<String> keyPurposeSet) throws IOException
X509Certificate の拡張鍵使用法の拡張機能で有効になっている必要があります。keyPurposeSet が空か null の場合、extendedKeyUsage のチェックは行われません。extendedKeyUsage 拡張機能のない X509Certificate では、すべての鍵目的が暗黙的に有効です。
以後の変更から保護するために、Set は複製されています。
keyPurposeSet - 文字列形式の鍵目的 OID の Set、または null。各 OID はピリオドで区切られた負でない整数の組で表されるIOException - 最初のコンポーネントが 0、1、2 のいずれでもなく、2 番目のコンポーネントが 39 よりも大きいというように、OID が無効の場合getExtendedKeyUsage()public void setMatchAllSubjectAltNames(boolean matchAllNames)
setSubjectAlternativeNames メソッドや addSubjectAlternativeName メソッドで指定されたすべての subjectAlternativeNames の照合を使用可能または使用不可にします。使用可能な場合、指定したサブジェクトの代替名がすべて X509Certificate に含まれていなければいけません。使用不可の場合、指定したサブジェクトの代替名が少なくとも 1 つ X509Certificate に含まれていなければいけません。
デフォルトで matchAllNames フラグは true です。
matchAllNames - true の場合はフラグを使用可能にし、false の場合は使用不可にするgetMatchAllSubjectAltNames()public void setSubjectAlternativeNames(Collection<List<?>> names) throws IOException
X509Certificate には、subjectAlternativeNames フラグの値に応じて、指定した subjectAlternativeNames のすべて、または少なくとも 1 つが含まれている必要があります (setMatchAllSubjectAltNames を参照)。
このメソッドを使用すると、1 回のメソッド呼び出しで、呼び出し側が subjectAlternativeNames 基準値に対するサブジェクトの代替名の完全なセットを指定できます。指定した値で subjectAlternativeNames 基準値の前の値が置き換えられます。
null でない names パラメータは、サブジェクトの代替名基準値に含まれている名前ごとに 1 エントリとなる Collection になります。各エントリは List で、その最初のエントリは Integer (名前タイプ、0-8)、2 番目のエントリは String かバイト配列 (それぞれが文字列形式または ASN.1 DER 符号化形式の名前) になります。同じタイプに複数の名前が存在することもあります。この引数の値として null が指定された場合、subjectAlternativeNames のチェックは行われません。
Collection 内の各サブジェクトの代替名は、String または ASN.1 符号化バイト配列として指定できます。使用される形式の詳細は、addSubjectAlternativeName(int type, String name) および addSubjectAlternativeName(int type, byte [] name) を参照してください。
注:識別名は、文字列形式ではなくバイト配列形式で指定してください。詳細は、「addSubjectAlternativeName(int, String)」の注を参照してください。
names パラメータには重複した名前 (同じ名前および名前タイプ) が含まれていますが、この識別名は getSubjectAlternativeNames メソッドで返された名前の Collection から削除できます。
以後の変更から保護するために、Collection にディープコピーが行われます。
names - 名前の Collection。または nullIOException - 構文解析エラーが発生した場合getSubjectAlternativeNames()public void addSubjectAlternativeName(int type,
String name)
throws IOException
X509Certificate には、subjectAlternativeNames フラグの値に応じて、指定した subjectAlternativeNames のすべて、または少なくとも 1 つが含まれている必要があります (setMatchAllSubjectAltNames を参照)。
このメソッドでは、呼び出し側が名前をサブジェクトの代替名のセットに追加できます。指定した名前は、subjectAlternativeNames 基準で先に存在する値に追加されます。指定した名前が重複する場合は無視されます。
名前は文字列形式で与えられます。RFC 822、DNS、URI の各名前では、RFC 3280 に含まれる制限に従って、明確に定義された文字列形式が用いられます。IPv4 アドレス名はドットで 4 つに区切られた表記法が使用されます。OID 名は、ピリオドで区切られた負にならない一連の整数として表されます。ディレクトリ名 (識別名) は RFC 2253 文字列形式になります。otherName、X.400 名、EDI 相手名、IPv6 アドレス名、そのほかのタイプの名前には、標準の文字列形式はありません。これらは、addSubjectAlternativeName(int type, byte [] name) メソッドを使用して指定するようにしてください。
注:識別名については、代わりに addSubjectAlternativeName(int, byte[]) を使用してください。このメソッドの実行結果を信用しないでください。RFC 2253 文字列形式で記述された一部の識別名では、符号化情報の損失により、証明書の一致処理に失敗する可能性があるためです。
type - 名前のタイプ (0-8、RFC 3280 のセクション 4.2.1.7 で指定されている)name - 文字列形式の名前。null ではないIOException - 構文解析エラーが発生した場合public void addSubjectAlternativeName(int type,
byte[] name)
throws IOException
X509Certificate には、subjectAlternativeNames フラグの値に応じて、指定した subjectAlternativeNames のすべて、または少なくとも 1 つが含まれている必要があります (setMatchAllSubjectAltNames を参照)。
このメソッドでは、呼び出し側が名前をサブジェクトの代替名のセットに追加できます。指定した名前は、subjectAlternativeNames 基準で先に存在する値に追加されます。指定した名前が重複する場合は無視されます。
名前はバイト配列で指定されます。このバイト配列には、RFC 3280 と X.509 で定義されている GeneralName 構造体にあるような、DER 符号化した名前が含まれている必要があります。符号化されたバイト配列には名前の符号化された値だけが含まれている必要があり、GeneralName 構造体の名前に関連付けられたタグが含まれていてはいけません。NameConstraints 構造体の ASN.1 定義は次のとおりです。
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}
以後の変更から保護するために、ここで提供されるバイト配列は複製されています。
type - 名前のタイプ (0 - 8、上記のとおり)name - ASN.1 DER 符号化形式による名前を含むバイト配列IOException - 構文解析エラーが発生した場合public void setNameConstraints(byte[] bytes)
throws IOException
X509Certificate には、指定した名前制約を満たすようなサブジェクトとサブジェクトの代替名がなければいけません。
名前制約はバイト配列で指定されます。このバイト配列には、RFC 3280 と X.509 で定義されている NameConstraints 構造体にあるような名前制約の DER 符号化形式が含まれなければいけません。NameConstraints 構造体の ASN.1 定義は次のとおりです。
NameConstraints ::= SEQUENCE {
permittedSubtrees [0] GeneralSubtrees OPTIONAL,
excludedSubtrees [1] GeneralSubtrees OPTIONAL }
GeneralSubtrees ::= SEQUENCE SIZE (1..MAX) OF GeneralSubtree
GeneralSubtree ::= SEQUENCE {
base GeneralName,
minimum [0] BaseDistance DEFAULT 0,
maximum [1] BaseDistance OPTIONAL }
BaseDistance ::= INTEGER (0..MAX)
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}
以後の変更から保護するために、ここで提供されるバイト配列は複製されています。
bytes - 名前制約をチェックするために使用される NameConstraints 拡張情報を ASN.1 DER で符号化した値を含むバイト配列。拡張情報の値だけが含まれ、OID やクリティカルの程度を表すフラグは含まれない。名前制約のチェックを行わない場合は null にする。IOException - 構文解析エラーが発生した場合getNameConstraints()public void setBasicConstraints(int minMaxPathLen)
X509Certificates に含まれている必要があります。値が -2 の場合、エンドエンティティーの証明書だけが許容されます。-1 の場合、チェックは行われません。
順方向 (ターゲットからトラストアンカーへ) の証明書パスを構築するときに、この制約は役立ちます。パスが部分的に構築されている場合、候補証明書の maxPathLen 値は部分パス内の証明書数以上でなければいけません。
minMaxPathLen - 基本制約に対する制約の値IllegalArgumentException - 値が -2 未満の場合getBasicConstraints()public void setPolicy(Set<String> certPolicySet) throws IOException
X509Certificate には、その証明書ポリシー拡張機能内に指定したポリシーが少なくとも 1 つ含まれている必要があります。certPolicySet が空の場合、X509Certificate には、その証明書ポリシー機能拡張内に指定したポリシーが複数含まれている必要があります。certPolicySet が null の場合、ポリシーのチェックは行われません。
以後の変更から保護するために、Set は複製されています。
certPolicySet - 文字列形式の証明書ポリシー OID の Set、または null。各 OID はピリオドで区切られた負でない整数の組で表されるIOException - 最初のコンポーネントが 0、1、2 のどれでもなく、2 番目のコンポーネントが 39 よりも大きいというように、OID の構文解析エラーが発生した場合getPolicy()public void setPathToNames(Collection<List<?>> names) throws IOException
X509Certificate に含まれてはいけません。
このメソッドを使用すると、1 回のメソッド呼び出しで、呼び出し側が X509Certificates の名前制約が許容される必要のある、名前の完全なセットを指定できます。指定した値は pathToNames 基準値の前の値を置き換えます。
順方向 (ターゲットからトラストアンカーへ) の証明書パスを構築するときに、この制約は役立ちます。パスが部分的に構築されている場合、候補証明書の名前制約は部分パス内の名前へのパスを構築できない制約ではいけません。
null でない names パラメータは、pathToNames 基準値に含まれている名前ごとに 1 エントリとなる Collection になります。各エントリは List で、その最初のエントリは Integer (名前タイプ、0-8)、2 番目のエントリは String かバイト配列 (それぞれが文字列形式または ASN.1 DER 符号化形式の名前) になります。同じタイプに複数の名前が存在することもあります。この引数の値として null が指定された場合、pathToNames のチェックは行われません。
Collection 内の各名前は、String か ASN.1 符号化バイト配列として指定できます。使用される形式の詳細は、addPathToName(int type, String name) および addPathToName(int type, byte [] name) を参照してください。
注:識別名は、文字列形式ではなくバイト配列形式で指定してください。詳細は、「addPathToName(int, String)」の注を参照してください。
names パラメータには重複した名前 (同じ名前および名前タイプ) が含まれていますが、この識別名は getPathToNames メソッドで返された名前の Collection から削除できます。
以後の変更から保護するために、Collection にディープコピーが行われます。
names - 名前 1 つあたり 1 エントリの Collection。または nullIOException - 構文解析エラーが発生した場合getPathToNames()public void addPathToName(int type,
String name)
throws IOException
X509Certificate に含まれてはいけません。
このメソッドでは、呼び出し側が名前を X509Certificates の名前制約が許容される必要のある、名前のセットに追加できます。指定した名前は、pathToNames 基準値で先に存在する値に追加されます。名前が重複する場合は無視されます。
名前は文字列形式で与えられます。RFC 822、DNS、URI の各名前では、RFC 3280 に含まれる制限に従って、明確に定義された文字列形式が用いられます。IPv4 アドレス名はドットで 4 つに区切られた表記法が使用されます。OID 名は、ピリオドで区切られた負にならない一連の整数として表されます。ディレクトリ名 (識別名) は RFC 2253 文字列形式になります。otherName、X.400 名、EDI 相手名、IPv6 アドレス名、そのほかのタイプの名前には、標準の文字列形式はありません。これらは、addPathToName(int type, byte [] name) メソッドを使用して指定するようにしてください。
注:識別名については、代わりに addPathToName(int, byte[]) を使用してください。このメソッドの実行結果を信用しないでください。RFC 2253 文字列形式で記述された一部の識別名では、符号化情報の損失により、証明書の一致処理に失敗する可能性があるためです。
type - 名前のタイプ (0-8、RFC 3280 のセクション 4.2.1.7 で指定されている)name - 文字列形式の名前IOException - 構文解析エラーが発生した場合public void addPathToName(int type,
byte[] name)
throws IOException
X509Certificate に含まれてはいけません。
このメソッドでは、呼び出し側が名前を X509Certificates の名前制約が許容される必要のある、名前のセットに追加できます。指定した名前は、pathToNames 基準値で先に存在する値に追加されます。名前が重複する場合は無視されます。
名前はバイト配列で指定されます。このバイト配列には、RFC 3280 と X.509 で定義されている GeneralName 構造体にあるような、DER 符号化した名前が含まれている必要があります。この構造体の ASN.1 定義は、addSubjectAlternativeName(int type, byte [] name) で説明しています。
以後の変更から保護するために、ここで提供されるバイト配列は複製されています。
type - 名前のタイプ (0-8、RFC 3280 のセクション 4.2.1.7 で指定されている)name - ASN.1 DER 符号化形式による名前を含むバイト配列IOException - 構文解析エラーが発生した場合public X509Certificate getCertificate()
X509Certificate は、match メソッドに渡された X509Certificate と同じでないといけません。null の場合、このチェックは行われません。X509Certificate。または nullsetCertificate(java.security.cert.X509Certificate)public BigInteger getSerialNumber()
X509Certificate の証明書シリアル番号と一致する必要があります。null の場合、証明書シリアル番号は問われません。nullsetSerialNumber(java.math.BigInteger)public X500Principal getIssuer()
X500Principal として返します。この識別名は、X509Certificate の発行者識別名と一致する必要があります。null の場合、発行者の基準値は無効になり、発行者識別名は問われません。nullpublic String getIssuerAsString()
発行者の基準値を String として返します。この識別名は、X509Certificate の発行者識別名と一致する必要があります。null の場合、発行者の基準値は無効になり、発行者識別名は問われません。
返された値が null でない場合は、RFC 2253 形式の識別名になります。
nullpublic byte[] getIssuerAsBytes()
throws IOException
X509Certificate の発行者識別名と一致する必要があります。null の場合、発行者の基準値は無効になり、発行者識別名は問われません。
返された値が null ではない場合、X.501 で定義されている DER 符号化された単一識別名を含むバイト配列になります。この構造体の ASN.1 表記については、setIssuer(byte [] issuerDN) のドキュメントを参照してください。
以降の変更から保護するために、返されるバイト配列の複製が作成されます。
nullIOException - 符号化エラーが発生した場合public X500Principal getSubject()
X500Principal として返します。この識別名は、X509Certificate のサブジェクト識別名と一致する必要があります。null の場合、サブジェクトの基準値は無効になり、サブジェクト識別名は問われません。nullpublic String getSubjectAsString()
サブジェクトの基準値を String として返します。この識別名は、X509Certificate のサブジェクト識別名と一致する必要があります。null の場合、サブジェクトの基準値は無効になり、サブジェクト識別名は問われません。
返された値が null でない場合は、RFC 2253 形式の識別名になります。
nullpublic byte[] getSubjectAsBytes()
throws IOException
X509Certificate のサブジェクト識別名と一致する必要があります。null の場合、サブジェクトの基準値は無効になり、サブジェクト識別名は問われません。
返された値が null ではない場合、X.501 で定義されている DER 符号化された単一識別名を含むバイト配列になります。この構造体の ASN.1 表記については、setSubject(byte [] subjectDN) のドキュメントを参照してください。
以降の変更から保護するために、返されるバイト配列の複製が作成されます。
nullIOException - 符号化エラーが発生した場合public byte[] getSubjectKeyIdentifier()
X509Certificate には、指定した値を持つ SubjectKeyIdentifier 機能拡張が含まれる必要があります。null の場合、subjectKeyIdentifier のチェックは行われません。
以降の変更から保護するために、返されるバイト配列の複製が作成されます。
nullsetSubjectKeyIdentifier(byte[])public byte[] getAuthorityKeyIdentifier()
X509Certificate には、指定した値を持つ AuthorityKeyIdentifier 機能拡張が含まれる必要があります。null の場合、authorityKeyIdentifier のチェックは行われません。
以降の変更から保護するために、返されるバイト配列の複製が作成されます。
nullsetAuthorityKeyIdentifier(byte[])public Date getCertificateValid()
X509Certificate の証明書有効期間内でなければいけません。null の場合、certificateValid のチェックは行われません。
以後の変更から保護するために、返される Date は複製されています。
Date。または nullsetCertificateValid(java.util.Date)public Date getPrivateKeyValid()
X509Certificate の非公開鍵有効期間内でなければいけません。null の場合、privateKeyValid のチェックは行われません。
以後の変更から保護するために、返される Date は複製されています。
Date。または nullsetPrivateKeyValid(java.util.Date)public String getSubjectPublicKeyAlgID()
X509Certificate には、指定したアルゴリズムによるサブジェクトの公開鍵が含まれなければいけません。null の場合、subjectPublicKeyAlgID のチェックは行われません。null。OID はピリオドで区切られた負でない整数の組で表されるsetSubjectPublicKeyAlgID(java.lang.String)public PublicKey getSubjectPublicKey()
X509Certificate には、指定したサブジェクトの公開鍵が含まれなければいけません。null の場合、subjectPublicKey のチェックは行われません。nullsetSubjectPublicKey(java.security.PublicKey)public boolean[] getKeyUsage()
X509Certificate で有効になっている必要があります。null の場合、keyUsage の確認は行われません。
以後の変更から保護するために、返される boolean 型配列は複製されています。
X509Certificate.getKeyUsage() によって返される boolean 型配列と同じ形式の boolean 型配列。または nullsetKeyUsage(boolean[])public Set<String> getExtendedKeyUsage()
X509Certificate の拡張鍵使用法の拡張機能で有効になっている必要があります。返される keyPurposeSet が空か null の場合、extendedKeyUsage のチェックは行われません。extendedKeyUsage 拡張機能のない X509Certificate では、すべての鍵目的が暗黙的に有効です。Set、または nullsetExtendedKeyUsage(java.util.Set<java.lang.String>)public boolean getMatchAllSubjectAltNames()
setSubjectAlternativeNames メソッドや addSubjectAlternativeName メソッドで指定された subjectAlternativeNames がすべて、または少なくとも 1 つ、X509Certificate に含まれていなければならないかどうかを示します。true の場合、指定したサブジェクトの代替名がすべて X509Certificate に含まれていなければいけません。false の場合、指定したサブジェクトの代替名が少なくとも 1 つ X509Certificate に含まれていなければいけません。true、使用不可の場合は false。フラグはデフォルトでは true です。setMatchAllSubjectAltNames(boolean)public Collection<List<?>> getSubjectAlternativeNames()
X509Certificate には、subjectAlternativeNames フラグの値に応じて、指定した subjectAlternativeNames のすべて、または少なくとも 1 つが含まれている必要があります (getMatchAllSubjectAltNames を参照)。返された値が null の場合、subjectAlternativeNames のチェックは行われません。
返される値が null ではない場合、サブジェクトの代替名基準値に含まれている名前ごとに 1 エントリとなる Collection になります。各エントリは List で、その最初のエントリは Integer (名前タイプ、0-8)、2 番目のエントリは String かバイト配列 (それぞれが文字列形式または ASN.1 DER 符号化形式の名前) になります。同じタイプに複数の名前が存在することもあります。返される Collection には重複した名前 (同じ名前と名前タイプ) が含まれることもあります。
Collection 内の各サブジェクトの代替名は、String または ASN.1 符号化バイト配列として指定できます。使用される形式の詳細は、addSubjectAlternativeName(int type, String name) および addSubjectAlternativeName(int type, byte [] name) を参照してください。
以後の変更から保護するために、Collection にディープコピーが行われます。
Collection。または nullsetSubjectAlternativeNames(java.util.Collection<java.util.List<?>>)public byte[] getNameConstraints()
X509Certificate には、指定した名前制約を満たすようなサブジェクトとサブジェクトの代替名がなければいけません。
名前制約はバイト配列で返されます。このバイト配列には、RFC 3280 と X.509 で定義されている NameConstraints 構造体にあるような、名前制約の DER 符号化形式が含まれています。この構造体の ASN.1 表記については、setNameConstraints(byte [] bytes) のドキュメントを参照してください。
以降の変更から保護するために、返されるバイト配列の複製が作成されます。
nullsetNameConstraints(byte[])public int getBasicConstraints()
X509Certificates に含まれている必要があります。値が -2 の場合、エンドエンティティーの証明書だけが許容されます。-1 の場合、basicConstraints のチェックは行われません。setBasicConstraints(int)public Set<String> getPolicy()
X509Certificate には、その証明書ポリシー拡張機能内に指定したポリシーが少なくとも 1 つ含まれている必要があります。返された Set が空の場合、X509Certificate には、その証明書ポリシー機能拡張内に指定したポリシーが複数含まれている必要があります。返された Set が null の場合、ポリシーのチェックは行われません。Set、または nullsetPolicy(java.util.Set<java.lang.String>)public Collection<List<?>> getPathToNames()
X509Certificate に含まれてはいけません。返された値が null の場合、pathToNames のチェックは行われません。
返される値が null でない場合、pathToNames 基準値に含まれている名前ごとに 1 エントリとなる Collection になります。各エントリは List で、その最初のエントリは Integer (名前タイプ、0-8)、2 番目のエントリは String かバイト配列 (それぞれが文字列形式または ASN.1 DER 符号化形式の名前) になります。同じタイプに複数の名前が存在することもあります。返される Collection には重複した名前 (同じ名前と名前タイプ) が含まれることもあります。
Collection 内の各名前は、String か ASN.1 符号化バイト配列として指定できます。使用される形式の詳細は、addPathToName(int type, String name) および addPathToName(int type, byte [] name) を参照してください。
以後の変更から保護するために、Collection にディープコピーが行われます。
Collection。または nullsetPathToNames(java.util.Collection<java.util.List<?>>)public String toString()
CertSelector のプリント可能表現を返します。public boolean match(Certificate cert)
Certificate が選択されるかどうかを判断します。match、インタフェース: CertSelectorcert - チェック対象の CertificateCertificate が選択される場合は true、そうでない場合は false バグまたは機能を送信
詳細な API リファレンスおよび開発者ドキュメントについては、Java SE のドキュメントを参照してください。そのドキュメントには、概念的な概要、用語の定義、回避方法、有効なコード例などの、開発者を対象にしたより詳細な説明が含まれています。
Copyright © 1993, 2013, Oracle and/or its affiliates. All rights reserved.