|
JavaTM Platform Standard Ed. 6 |
|||||||||
前のクラス 次のクラス | フレームあり フレームなし | |||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |
java.lang.Object java.security.cert.X509CertSelector
public class X509CertSelector
指定した基準すべてに一致する 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 2459 を参照してください。
並行アクセス
特に断らないかぎり、このクラスで定義されているメソッドはスレッドセーフではありません。単一のオブジェクトに並行アクセスする必要のある複数スレッドは、スレッド間で同期をとり、必要に応じてロックする必要があります。複数のスレッドがそれぞれ個別のオブジェクトを処理する場合、それらのスレッドは同期する必要はありません。
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 のプリント可能表現を返します。 |
クラス java.lang.Object から継承されたメソッド |
---|
equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
コンストラクタの詳細 |
---|
public X509CertSelector()
X509CertSelector
を作成します。最初は条件が設定されていないため、どの X509Certificate
でも一致します。
メソッドの詳細 |
---|
public void setCertificate(X509Certificate cert)
X509Certificate
は、match
メソッドに渡された X509Certificate
と同じでないといけません。null
の場合、このチェックは行われません。
このメソッドは、単一の証明書と一致させる必要があるときに特に役立ちます。この certificateEquals 基準に加えてほかの基準を指定することも可能ですが、通常の場合そうすることは必要ないか、または実用的ではありません。
cert
- 一致させる X509Certificate
。または null
getCertificate()
public void setSerialNumber(BigInteger serial)
X509Certificate
の証明書シリアル番号と一致する必要があります。null
の場合、任意の証明書シリアル番号と一致します。
serial
- 一致させる証明書シリアル番号。または null
getSerialNumber()
public void setIssuer(X500Principal issuer)
X509Certificate
の発行者識別名と一致する必要があります。null
の場合は、任意の発行者識別名が一致することになります。
issuer
- X500Principal としての識別名または null
public void setIssuer(String issuerDN) throws IOException
発行者の基準値を設定します。指定した識別名は、X509Certificate
の発行者識別名と一致する必要があります。null
の場合は、任意の発行者識別名と一致すればよいことになります。
issuerDN
が null
でない場合は、RFC 2253 形式で識別名が含まれなければなりません。
issuerDN
- RFC 2253 形式の識別名。または null
IOException
- 構文解析エラーが発生した場合 (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 符号化形式による識別名を含むバイト配列。または null
IOException
- 符号化エラーが発生した場合 (DN の不正な形式)public void setSubject(X500Principal subject)
X509Certificate
の被認証者識別名と一致する必要があります。null
の場合、任意の被認証者識別名と一致します。
subject
- X500Principal としての識別名または null
public void setSubject(String subjectDN) throws IOException
被認証者の基準値を設定します。指定した識別名は、X509Certificate
の被認証者識別名と一致する必要があります。null
の場合、任意の被認証者識別名と一致します。
subjectDN
が null
でない場合は、RFC 2253 形式で識別名が含まれなければなりません。
subjectDN
- RFC 2253 形式の識別名。または null
IOException
- 構文解析エラーが発生した場合 (DN の不正な形式)public void setSubject(byte[] subjectDN) throws IOException
X509Certificate
の被認証者識別名と一致する必要があります。null
の場合、任意の被認証者識別名と一致します。
subjectDN
が null
ではない場合、X.501 で定義されている DER 符号化された単一識別名が含まれる必要があります。この構造体の ASN.1 表記については、setIssuer(byte [] issuerDN)
を参照してください。
subjectDN
- ASN.1 DER 形式による識別名を含むバイト配列。または null
IOException
- 符号化エラーが発生した場合 (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
- 被認証者の鍵識別子。または null
getSubjectKeyIdentifier()
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
- 権限の鍵識別子。または null
getAuthorityKeyIdentifier()
public void setCertificateValid(Date certValid)
X509Certificate
の証明書有効期間内でなければいけません。null
の場合、certificateValid のチェックは行われません。
以後の変更から保護するために、ここで提供される Date
は複製されています。
certValid
- チェック対象の Date
。または null
getCertificateValid()
public void setPrivateKeyValid(Date privateKeyValid)
X509Certificate
の非公開鍵有効期間内でなければいけません。null
の場合、privateKeyValid のチェックは行われません。
以後の変更から保護するために、ここで提供される Date
は複製されています。
privateKeyValid
- チェック対象の Date
。または null
getPrivateKeyValid()
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
- チェック対象の被認証者の公開鍵。または null
getSubjectPublicKey()
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 形式による被認証者の公開鍵を含むバイト配列。または null
IOException
- 符号化エラーが発生した場合 (被認証者の公開鍵の不正な形式)getSubjectPublicKey()
public void setKeyUsage(boolean[] keyUsage)
X509Certificate
で有効になっている必要があります。null
の場合、keyUsage のチェックは行われません。keyUsage 機能拡張のない X509Certificate
では、すべての keyUsage の値が暗黙的に有効です。 以後の変更から保護するために、ここで提供される boolean 型配列は複製されています。
keyUsage
- X509Certificate.getKeyUsage()
によって返される boolean 型配列と同じ形式の boolean 型配列。
または null
getKeyUsage()
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
で、この 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
。または null
IOException
- 構文解析エラーが発生した場合getSubjectAlternativeNames()
public void addSubjectAlternativeName(int type, String name) throws IOException
X509Certificate
には、subjectAlternativeNames フラグの値に応じて、指定した subjectAlternativeNames のすべて、または少なくとも 1 つが含まれている必要があります (setMatchAllSubjectAltNames
を参照)。 このメソッドでは、呼び出し側が名前を被認証者の代替名のセットに追加できます。指定した名前は、subjectAlternativeNames 基準で先に存在する値に追加されます。指定した名前が重複する場合は無視されます。
名前は文字列形式で与えられます。RFC 822、DNS、URI の各名前では、RFC 2459 に含まれる制限に従って、明確に定義された文字列形式が用いられます。IPv4 アドレス名はドットで 4 つに区切られた表記法が使用されます。OID名は、ピリオドで区切られた負にならない一連の整数として表されます。ディレクトリ名 (識別名) は RFC 2253 文字列形式になります。otherName、X.400 名、EDI 相手名、IPv6 アドレス名、そのほかのタイプの名前には、標準の文字列形式はありません。これらの名前は addSubjectAlternativeName(int type, byte [] name)
メソッドを使用して指定する必要があります。
注: 識別名については、代わりに addSubjectAlternativeName(int, byte[]) を使用してください。このメソッドの実行結果を信用しないでください。 RFC 2253 文字列形式で記述された一部の識別名では、符号化情報の損失により、証明書の一致処理に失敗する可能性があるためです。
type
- 名前のタイプ (0 〜 8、RFC 2459 のセクション 4.2.1.7 で指定されている)name
- 文字列形式の名前。null
ではない
IOException
- 構文解析エラーが発生した場合public void addSubjectAlternativeName(int type, byte[] name) throws IOException
X509Certificate
には、subjectAlternativeNames フラグの値に応じて、指定した subjectAlternativeNames のすべて、または少なくとも 1 つが含まれている必要があります (setMatchAllSubjectAltNames
を参照)。 このメソッドでは、呼び出し側が名前を被認証者の代替名のセットに追加できます。指定した名前は、subjectAlternativeNames 基準で先に存在する値に追加されます。指定した名前が重複する場合は無視されます。
名前はバイト配列で指定されます。このバイト配列には、RFC 2459 と 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 2459 と 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
で、この 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
。または null
IOException
- 構文解析エラーが発生した場合getPathToNames()
public void addPathToName(int type, String name) throws IOException
X509Certificate
に含まれていてはいけません。
このメソッドでは、呼び出し側が名前を X509Certificates
の名前制約が許容される必要のある、名前のセットに追加できます。指定した名前は、pathToNames 基準値で先に存在する値に追加されます。名前が重複する場合は無視されます。
名前は文字列形式で与えられます。RFC 822、DNS、URI の各名前では、RFC 2459 に含まれる制限に従って、明確に定義された文字列形式が用いられます。IPv4 アドレス名はドットで 4 つに区切られた表記法が使用されます。OID名は、ピリオドで区切られた負にならない一連の整数として表されます。ディレクトリ名 (識別名) は RFC 2253 文字列形式になります。otherName、X.400 名、EDI 相手名、IPv6 アドレス名、そのほかのタイプの名前には、標準の文字列形式はありません。これらの名前は addPathToName(int type, byte [] name)
メソッドを使用して指定される必要があります。
注: 識別名については、代わりに addPathToName(int, byte[]) を使用してください。このメソッドの実行結果を信用しないでください。 RFC 2253 文字列形式で記述された一部の識別名では、符号化情報の損失により、証明書の一致処理に失敗する可能性があるためです。
type
- 名前のタイプ (0 〜 8、RFC 2459 のセクション 4.2.1.7 で指定されている)name
- 文字列形式の名前
IOException
- 構文解析エラーが発生した場合public void addPathToName(int type, byte[] name) throws IOException
X509Certificate
に含まれていてはいけません。
このメソッドでは、呼び出し側が名前を X509Certificates
の名前制約が許容される必要のある、名前のセットに追加できます。指定した名前は、pathToNames 基準値で先に存在する値に追加されます。名前が重複する場合は無視されます。
名前はバイト配列で指定されます。このバイト配列には、RFC 2459 と X.509 で定義されている GeneralName 構造体にあるような、DER 符号化した名前が含まれている必要があります。この構造体の ASN.1 定義は、addSubjectAlternativeName(int type, byte [] name)
で説明しています。
以後の変更から保護するために、ここで提供されるバイト配列は複製されています。
type
- 名前のタイプ (0 〜 8、RFC 2459 のセクション 4.2.1.7 で指定されている)name
- ASN.1 DER 符号化形式による名前を含むバイト配列
IOException
- 構文解析エラーが発生した場合public X509Certificate getCertificate()
X509Certificate
は、match
メソッドに渡された X509Certificate
と同じでないといけません。null
の場合、このチェックは行われません。
X509Certificate
。または null
setCertificate(java.security.cert.X509Certificate)
public BigInteger getSerialNumber()
X509Certificate
の証明書シリアル番号と一致する必要があります。null
の場合、任意の証明書シリアル番号と一致します。
null
setSerialNumber(java.math.BigInteger)
public X500Principal getIssuer()
X500Principal
として返します。この識別名は、X509Certificate
の発行者識別名と一致する必要があります。null
の場合、発行者の基準値は無効になり、任意の発行者識別名と一致します。
null
public String getIssuerAsString()
発行者の基準値を String
として返します。この識別名は、X509Certificate
の発行者識別名と一致する必要があります。null
の場合、発行者の基準値は無効になり、任意の発行者識別名と一致します。
返された値が null
でない場合は、RFC 2253 形式の識別名になります。
null
public byte[] getIssuerAsBytes() throws IOException
X509Certificate
の発行者識別名と一致する必要があります。null
の場合、発行者の基準値は無効になり、任意の発行者識別名と一致します。
返された値が null
ではない場合、X.501 で定義されている DER 符号化された単一識別名を含むバイト配列になります。この構造体の ASN.1 表記については、setIssuer(byte [] issuerDN)
を参照してください。
以降の変更から保護するために、返されるバイト配列の複製が作成されます。
null
IOException
- 符号化エラーが発生した場合public X500Principal getSubject()
X500Principal
として返します。この識別名は、X509Certificate
の被認証者識別名と一致する必要があります。null
の場合、被認証者の基準値は無効になり、任意の被認証者識別名と一致します。
null
public String getSubjectAsString()
被認証者の基準値を String
として返します。この識別名は、X509Certificate
の被認証者識別名と一致する必要があります。null
の場合、被認証者の基準値は無効になり、任意の被認証者識別名と一致します。
返された値が null
でない場合は、RFC 2253 形式の識別名になります。
null
public byte[] getSubjectAsBytes() throws IOException
X509Certificate
の被認証者識別名と一致する必要があります。null
の場合、被認証者の基準値は無効になり、任意の被認証者識別名と一致すればよいことになります。
返された値が null
ではない場合、X.501 で定義されている DER 符号化された単一識別名を含むバイト配列になります。この構造体の ASN.1 表記については、setSubject(byte [] subjectDN)
を参照してください。
以降の変更から保護するために、返されるバイト配列の複製が作成されます。
null
IOException
- 符号化エラーが発生した場合public byte[] getSubjectKeyIdentifier()
X509Certificate
には、指定した値を持つ SubjectKeyIdentifier 機能拡張が含まれる必要があります。null
の場合、subjectKeyIdentifier のチェックは行われません。 以降の変更から保護するために、返されるバイト配列の複製が作成されます。
null
setSubjectKeyIdentifier(byte[])
public byte[] getAuthorityKeyIdentifier()
X509Certificate
には、指定した値を持つ AuthorityKeyIdentifier 機能拡張が含まれる必要があります。null
の場合、authorityKeyIdentifier のチェックは行われません。 以降の変更から保護するために、返されるバイト配列の複製が作成されます。
null
setAuthorityKeyIdentifier(byte[])
public Date getCertificateValid()
X509Certificate
の証明書有効期間内でなければいけません。null
の場合、certificateValid のチェックは行われません。
以後の変更から保護するために、返される Date
は複製されています。
Date
。または null
setCertificateValid(java.util.Date)
public Date getPrivateKeyValid()
X509Certificate
の非公開鍵有効期間内でなければいけません。null
の場合、privateKeyValid のチェックは行われません。
以後の変更から保護するために、返される Date
は複製されています。
Date
。または null
setPrivateKeyValid(java.util.Date)
public String getSubjectPublicKeyAlgID()
X509Certificate
には、指定したアルゴリズムによる被認証者の公開鍵が含まれなければいけません。null
の場合、subjectPublicKeyAlgID のチェックは行われません。
null
。
OID はピリオドで区切られた負でない整数の組で表されるsetSubjectPublicKeyAlgID(java.lang.String)
public PublicKey getSubjectPublicKey()
X509Certificate
には、指定した被認証者の公開鍵が含まれなければいけません。null
の場合、subjectPublicKey のチェックは行われません。
null
setSubjectPublicKey(java.security.PublicKey)
public boolean[] getKeyUsage()
X509Certificate
で有効になっている必要があります。null の場合、keyUsage の確認は行われません。 以後の変更から保護するために、返される boolean 型配列は複製されています。
X509Certificate.getKeyUsage()
によって返される boolean 型配列と同じ形式の boolean 型配列。
または null
setKeyUsage(boolean[])
public Set<String> getExtendedKeyUsage()
X509Certificate
の拡張鍵使用法の機能拡張で有効になっている必要があります。返される keyPurposeSet
が空か null
の場合、extendedKeyUsage のチェックは行われません。extendedKeyUsage 機能拡張のない X509Certificate
では、すべての鍵目的が暗黙的に有効です。
Set
、または null
setExtendedKeyUsage(java.util.Set)
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
で、この 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
。または null
setSubjectAlternativeNames(java.util.Collection>)
public byte[] getNameConstraints()
X509Certificate
には、指定した名前制約を満たすような被認証者と被認証者の代替名がなければいけません。
名前制約はバイト配列で返されます。このバイト配列には、RFC 2459 と X.509 で定義されている NameConstraints 構造体にあるような、名前制約の DER 符号化形式が含まれています。この構造体の ASN.1 表記は、「setNameConstraints(byte [] bytes)
」で説明しています。
以降の変更から保護するために、返されるバイト配列の複製が作成されます。
null
setNameConstraints(byte[])
public int getBasicConstraints()
X509Certificates
に含まれている必要があります。値が -2 の場合、エンドエンティティーの証明書だけが許容されます。-1 の場合、basicConstraints のチェックは行われません。
setBasicConstraints(int)
public Set<String> getPolicy()
X509Certificate
には、その証明書ポリシー機能拡張内に指定したポリシーが少なくとも 1 つ含まれている必要があります。返された Set
が空の場合、X509Certificate
には、その証明書ポリシー機能拡張内に指定したポリシーが複数含まれている必要があります。返された Set
が null
の場合、ポリシーのチェックは行われません。
Set
、または null
setPolicy(java.util.Set)
public Collection<List<?>> getPathToNames()
X509Certificate
に含まれてはいけません。返された値が null
の場合、pathToNames のチェックは行われません。
返される値が null
でない場合、pathToNames 基準値に含まれている名前ごとに 1 エントリとなる Collection
になります。各エントリは List
で、この 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
。または null
setPathToNames(java.util.Collection>)
public String toString()
CertSelector
のプリント可能表現を返します。
Object
内の toString
CertSelector
の内容を表す String
public boolean match(Certificate cert)
Certificate
が選択されるかどうかを判断します。
CertSelector
内の match
cert
- チェック対象の Certificate
Certificate
が選択される場合は true
、そうでない場合は false
public Object clone()
CertSelector
内の clone
Object
内の clone
Cloneable
|
JavaTM Platform Standard Ed. 6 |
|||||||||
前のクラス 次のクラス | フレームあり フレームなし | |||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |
Copyright 2006 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms. Documentation Redistribution Policy も参照してください。