|
JavaTM 2 Platform Std. Ed. v1.4.0 |
||||||||||
前のクラス 次のクラス | フレームあり フレームなし | ||||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |
java.lang.Object | +--java.security.cert.X509CertSelector
指定した基準すべてに一致する X509Certificates
を選択する CertSelector
です。PKIX 準拠の証明書パスを構築するために CertStore
から証明書を選択するときに、特に役立ちます。
最初に X509CertSelector
が構築されたときには有効な基準はなく、それぞれの get
メソッドはデフォルト値 (null
か getBasicConstraints
メソッドでは -1
) を返します。そのため、どの X509Certificate
に対しても match
メソッドは true
を返します。通常、複数の基準が有効であり (たとえば setIssuer
や setKeyUsage
を呼び出すことによる)、X509CertSelector
は 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 |
getExtendedKeyUsage()
extendedKeyUsage 基準値を返します。 |
byte[] |
getIssuerAsBytes()
発行者の基準値をバイト配列として返します。 |
String |
getIssuerAsString()
発行者の基準値を String として返します。 |
boolean[] |
getKeyUsage()
keyUsage 基準値を返します。 |
boolean |
getMatchAllSubjectAltNames()
setSubjectAlternativeNames メソッドや addSubjectAlternativeName メソッドで指定された subjectAlternativeNames がすべて、または少なくとも 1 つ、X509Certificate
|
byte[] |
getNameConstraints()
名前制約の基準値を返します。 |
Collection |
getPathToNames()
pathToNames 基準値の複製を返します。 |
Set |
getPolicy()
ポリシー基準値を返します。 |
Date |
getPrivateKeyValid()
privateKeyValid 基準値を返します。 |
BigInteger |
getSerialNumber()
serialNumber 基準値を返します。 |
Collection |
getSubjectAlternativeNames()
subjectAlternativeNames 基準値のコピーを返します。 |
byte[] |
getSubjectAsBytes()
被認証者の基準値をバイト配列として返します。 |
String |
getSubjectAsString()
被認証者の基準値を String として返します。 |
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 keyPurposeSet)
extendedKeyUsage 基準値を設定します。 |
void |
setIssuer(byte[] issuerDN)
発行者の基準値を設定します。 |
void |
setIssuer(String issuerDN)
発行者の基準値を設定します。 |
void |
setKeyUsage(boolean[] keyUsage)
keyUsage 基準値を設定します。 |
void |
setMatchAllSubjectAltNames(boolean matchAllNames)
setSubjectAlternativeNames メソッドや addSubjectAlternativeName メソッドで指定したすべての subjectAlternativeNames の照合を使用可能または使用不可にします。 |
void |
setNameConstraints(byte[] bytes)
名前制約の基準値を設定します。 |
void |
setPathToNames(Collection names)
pathToNames 基準値を設定します。 |
void |
setPolicy(Set certPolicySet)
ポリシー制約を設定します。 |
void |
setPrivateKeyValid(Date privateKeyValid)
privateKeyValid 基準値を設定します。 |
void |
setSerialNumber(BigInteger serial)
serialNumber 基準値を設定します。 |
void |
setSubject(byte[] subjectDN)
被認証者の基準値を設定します。 |
void |
setSubject(String subjectDN)
被認証者の基準値を設定します。 |
void |
setSubjectAlternativeNames(Collection 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(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(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 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 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)
を参照してください。
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)
メソッドを使用して指定されなければなりません。
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 構造体の名前に関連付けられたタグが含まれていてはなりません。この構造体の 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 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 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)
を参照してください。
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 party○名、IPv6 アドレス名、そのほかのタイプの名前には、標準の文字列形式はありません。これらの名前は addPathToName(int type, byte [] name)
メソッドを使用して指定されなければなりません。
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 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 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 getExtendedKeyUsage()
X509Certificate の拡張鍵使用法の機能拡張で有効でなければなりません。返される keyPurposeSet
が空か null
の場合、extendedKeyUsage のチェックは行われません。extendedKeyUsage 機能拡張のない X509Certificate
では、すべての鍵目的が暗黙的に有効です。
- 戻り値:
- 文字列形式による鍵目的 OID の不変な
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 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 getPolicy()
X509Certificate には、その証明書ポリシー機能拡張内に指定したポリシーが少なくとも 1 つ含まれていなければなりません。返された Set
が空の場合、X509Certificate
には、その証明書ポリシー機能拡張内に指定したポリシーが複数含まれている必要があります。返された Set
が null
の場合、ポリシーのチェックは行われません。
- 戻り値:
- 文字列形式による鍵目的 OID の不変な
Set
、または null
- 関連項目:
setPolicy(java.util.Set)
public Collection 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
|
JavaTM 2 Platform Std. Ed. v1.4.0 |
||||||||||
前のクラス 次のクラス | フレームあり フレームなし | ||||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |
Java、Java 2D、および JDBC は米国ならびにその他の国における米国 Sun Microsystems, Inc. の商標もしくは登録商標です。
Copyright 1993-2002 Sun Microsystems, Inc. 901 San Antonio Road
Palo Alto, California, 94303, U.S.A. All Rights Reserved.