- java.lang.Object
-
- java.security.cert.X509CertSelector
-
- すべての実装されたインタフェース:
Cloneable
,CertSelector
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 5280「Internet X.509 Public Key Infrastructure Certificate and CRL Profile」を参照してください。
並行アクセス
特に断らないかぎり、このクラスで定義されているメソッドはスレッドセーフではありません。 単一のオブジェクトに並行アクセスする必要のある複数スレッドは、スレッド間で同期をとり、必要に応じてロックする必要があります。 複数のスレッドがそれぞれ個別のオブジェクトを処理する場合、それらのスレッドは同期する必要はありません。
- 導入されたバージョン:
- 1.4
- 関連項目:
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
のプリント可能表現を返します。
-
-
-
メソッドの詳細
-
setCertificate
public void setCertificate(X509Certificate cert)
certificateEquals基準値を設定します。 指定したX509Certificate
は、match
メソッドに渡されたX509Certificate
と同じでないといけません。null
の場合、このチェックは行われません。このメソッドは、単一の証明書と一致させる必要があるときに特に役立ちます。 このcertificateEquals基準に加えてほかの基準を指定することも可能ですが、通常の場合そうすることは必要ないか、または実用的ではありません。
- パラメータ:
cert
- 一致させるX509Certificate
。またはnull
- 関連項目:
getCertificate()
-
setSerialNumber
public void setSerialNumber(BigInteger serial)
serialNumber基準値を設定します。 指定したシリアル番号は、X509Certificate
の証明書シリアル番号と一致する必要があります。null
の場合、証明書シリアル番号は問われません。- パラメータ:
serial
- 一致させる証明書シリアル番号。またはnull
- 関連項目:
getSerialNumber()
-
setIssuer
public void setIssuer(X500Principal issuer)
発行者の基準値を設定します。 指定した識別名は、X509Certificate
の発行者識別名と一致する必要があります。null
の場合、発行者識別名は問われません。- パラメータ:
issuer
- X500Principalとしての識別名またはnull
- 導入されたバージョン:
- 1.5
-
setIssuer
public void setIssuer(String issuerDN) throws IOException
非推奨、代わりにsetIssuer(X500Principal)またはsetIssuer(byte[])を使用してください。 このメソッドの実行結果を信用しないでください。RFC 2253文字列形式で記述された一部の識別名では、エンコーディング情報の損失により、証明書の一致処理に失敗する可能性があるためです。発行者の基準値を設定します。 指定した識別名は、
X509Certificate
の発行者識別名と一致する必要があります。null
の場合、発行者識別名は問われません。issuerDN
がnull
でない場合は、RFC 2253形式で識別名が含まれなければいけません。- パラメータ:
issuerDN
- RFC 2253形式の識別名。またはnull
- 例外:
IOException
- 構文解析エラーが発生した場合(DNの不正な形式)
-
setIssuer
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の不正な形式)
-
setSubject
public void setSubject(X500Principal subject)
サブジェクトの基準値を設定します。 指定した識別名は、X509Certificate
のサブジェクト識別名と一致する必要があります。null
の場合、サブジェクト識別名は問われません。- パラメータ:
subject
- X500Principalとしての識別名またはnull
- 導入されたバージョン:
- 1.5
-
setSubject
public void setSubject(String subjectDN) throws IOException
非推奨、代わりにsetSubject(X500Principal)またはsetSubject(byte[])を使用してください。 このメソッドの実行結果を信用しないでください。RFC 2253文字列形式で記述された一部の識別名では、符号化情報の損失により、証明書の一致処理に失敗する可能性があるためです。サブジェクトの基準値を設定します。 指定した識別名は、
X509Certificate
のサブジェクト識別名と一致する必要があります。null
の場合、サブジェクト識別名は問われません。subjectDN
がnull
でない場合は、RFC 2253形式で識別名が含まれなければいけません。- パラメータ:
subjectDN
- RFC 2253形式の識別名。またはnull
- 例外:
IOException
- 構文解析エラーが発生した場合(DNの不正な形式)
-
setSubject
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の不正な形式)
-
setSubjectKeyIdentifier
public void setSubjectKeyIdentifier(byte[] subjectKeyID)
subjectKeyIdentifier基準値を設定します。X509Certificate
には、その内容が指定した基準値と一致するようなSubjectKeyIdentifier機能拡張が含まれている必要があります。 基準値がnull
の場合、subjectKeyIdentifierチェックは行われません。subjectKeyID
がnull
ではない場合、SubjectKeyIdentifier機能拡張の値(オブジェクト識別子、クリティカルの程度の設定、カプセル化されたOCTET STRINGは含まれない)の内容に対応するDER符号化された値が1つ含まれる必要があります。 この構造体のASN.1表記は次のとおりです。SubjectKeyIdentifier ::= KeyIdentifier KeyIdentifier ::= OCTET STRING
サブジェクトのキー識別子の形式は標準で定義されていないため、サブジェクトのキー識別子は
X509CertSelector
で構文解析されません。 代わりに、バイトごとに比較することで、値が比較されます。以後の変更から保護するために、ここで提供されるバイト配列は複製されています。
- パラメータ:
subjectKeyID
- サブジェクトのキー識別子。またはnull
- 関連項目:
getSubjectKeyIdentifier()
-
setAuthorityKeyIdentifier
public void setAuthorityKeyIdentifier(byte[] authorityKeyID)
authorityKeyIdentifier基準値を設定します。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()
-
setCertificateValid
public void setCertificateValid(Date certValid)
certificateValid基準値を設定します。 指定した日付は、X509Certificate
の証明書有効期間内でなければいけません。null
の場合、certificateValidのチェックは行われません。以後の変更から保護するために、ここで提供される
Date
は複製されています。- パラメータ:
certValid
- チェック対象のDate
。またはnull
- 関連項目:
getCertificateValid()
-
setPrivateKeyValid
public void setPrivateKeyValid(Date privateKeyValid)
privateKeyValid基準値を設定します。 指定した日付は、X509Certificate
の非公開キー有効期間内でなければいけません。null
の場合、privateKeyValidのチェックは行われません。以後の変更から保護するために、ここで提供される
Date
は複製されています。- パラメータ:
privateKeyValid
- チェック対象のDate
。またはnull
- 関連項目:
getPrivateKeyValid()
-
setSubjectPublicKeyAlgID
public void setSubjectPublicKeyAlgID(String oid) throws IOException
subjectPublicKeyAlgID基準値を設定します。X509Certificate
には、指定したアルゴリズムによるサブジェクトの公開キーが含まれなければいけません。null
の場合、subjectPublicKeyAlgIDのチェックは行われません。- パラメータ:
oid
- チェック対象のアルゴリズムのオブジェクト識別子(OID)、またはnull
。 OIDはピリオドで区切られた負でない整数の組で表される- 例外:
IOException
- 最初のコンポーネントが0、1、2のいずれでもなく、2番目のコンポーネントが39よりも大きいというように、OIDが無効の場合- 関連項目:
getSubjectPublicKeyAlgID()
-
setSubjectPublicKey
public void setSubjectPublicKey(PublicKey key)
subjectPublicKey基準値を設定します。X509Certificate
には、指定したサブジェクトの公開キーが含まれなければいけません。null
の場合、subjectPublicKeyのチェックは行われません。- パラメータ:
key
- チェック対象のサブジェクトの公開キー。またはnull
- 関連項目:
getSubjectPublicKey()
-
setSubjectPublicKey
public void setSubjectPublicKey(byte[] key) throws IOException
subjectPublicKey基準値を設定します。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()
-
setKeyUsage
public void setKeyUsage(boolean[] keyUsage)
keyUsage基準値を設定します。 指定したkeyUsageの値がX509Certificate
で有効になっている必要があります。null
の場合、keyUsageの確認は行われません。 keyUsage機能拡張のないX509Certificate
では、すべてのkeyUsageの値が暗黙的に有効です。以後の変更から保護するために、ここで提供されるboolean型配列は複製されています。
- パラメータ:
keyUsage
-X509Certificate.getKeyUsage()
によって返されるboolean型配列と同じ形式のboolean型配列。 またはnull
- 関連項目:
getKeyUsage()
-
setExtendedKeyUsage
public void setExtendedKeyUsage(Set<String> keyPurposeSet) throws IOException
extendedKeyUsage基準値を設定します。 指定したキー目的がX509Certificate
の拡張キー使用法の拡張機能で有効になっている必要があります。keyPurposeSet
が空かnull
の場合、extendedKeyUsageのチェックは行われません。 extendedKeyUsage拡張機能のないX509Certificate
では、すべてのキー目的が暗黙的に有効です。以後の変更から保護するために、
Set
は複製されています。- パラメータ:
keyPurposeSet
- 文字列形式のキー目的OIDのSet
、またはnull
。 各OIDはピリオドで区切られた負でない整数の組で表される- 例外:
IOException
- 最初のコンポーネントが0、1、2のいずれでもなく、2番目のコンポーネントが39よりも大きいというように、OIDが無効の場合- 関連項目:
getExtendedKeyUsage()
-
setMatchAllSubjectAltNames
public void setMatchAllSubjectAltNames(boolean matchAllNames)
setSubjectAlternativeNames
メソッドやaddSubjectAlternativeName
メソッドで指定されたすべてのsubjectAlternativeNamesの照合を使用可能または使用不可にします。 使用可能な場合、指定したサブジェクトの代替名がすべてX509Certificate
に含まれていなければいけません。 使用不可の場合、指定したサブジェクトの代替名が少なくとも1つX509Certificate
に含まれていなければいけません。デフォルトでmatchAllNamesフラグは
true
です。- パラメータ:
matchAllNames
-true
の場合はフラグを使用可能にし、false
の場合は使用不可にする- 関連項目:
getMatchAllSubjectAltNames()
-
setSubjectAlternativeNames
public void setSubjectAlternativeNames(Collection<List<?>> names) throws IOException
subjectAlternativeNames基準値を設定します。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
。またはnull
- 例外:
IOException
- 構文解析エラーが発生した場合- 関連項目:
getSubjectAlternativeNames()
-
addSubjectAlternativeName
public void addSubjectAlternativeName(int type, String name) throws IOException
subjectAlternativeNames基準値に名前を追加します。X509Certificate
には、subjectAlternativeNamesフラグの値に応じて、指定したsubjectAlternativeNamesのすべて、または少なくとも1つが含まれている必要があります(setMatchAllSubjectAltNames
を参照)。このメソッドでは、呼出し側が名前をサブジェクトの代替名のセットに追加できます。 指定した名前は、subjectAlternativeNames基準で先に存在する値に追加されます。 指定した名前が重複する場合は無視されます。
名前は文字列形式で与えられます。 RFC 822、DNS、URIの各名前では、RFC 5280に含まれる制限に従って、明確に定義された文字列形式が用いられます。 IPv4アドレス名はドットで4つに区切られた表記法が使用されます。 OID名は、ピリオドで区切られた負にならない一連の整数として表されます。 ディレクトリ名(識別名)はRFC 2253文字列形式になります。 otherName、X.400名、EDI相手名、IPv6アドレス名、そのほかのタイプの名前には、標準の文字列形式はありません。 これらは、
addSubjectAlternativeName(int type, byte [] name)
メソッドを使用して指定するようにしてください。ノート: 識別名については、かわりにaddSubjectAlternativeName(int, byte[])を使用してください。 このメソッドの実行結果を信用しないでください。RFC 2253文字列形式で記述された一部の識別名では、符号化情報の損失により、証明書の一致処理に失敗する可能性があるためです。
- パラメータ:
type
- 名前タイプ(RFC 5280、セクション4.2.1.6で指定されている0-8)name
- 文字列形式の名前。null
ではない- 例外:
IOException
- 構文解析エラーが発生した場合
-
addSubjectAlternativeName
public void addSubjectAlternativeName(int type, byte[] name) throws IOException
subjectAlternativeNames基準値に名前を追加します。X509Certificate
には、subjectAlternativeNamesフラグの値に応じて、指定したsubjectAlternativeNamesのすべて、または少なくとも1つが含まれている必要があります(setMatchAllSubjectAltNames
を参照)。このメソッドでは、呼出し側が名前をサブジェクトの代替名のセットに追加できます。 指定した名前は、subjectAlternativeNames基準で先に存在する値に追加されます。 指定した名前が重複する場合は無視されます。
名前はバイト配列で指定されます。 このバイト配列には、RFC 5280と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
- 構文解析エラーが発生した場合
-
setNameConstraints
public void setNameConstraints(byte[] bytes) throws IOException
名前制約の基準値を設定します。X509Certificate
には、指定した名前制約を満たすようなサブジェクトとサブジェクトの代替名がなければいけません。名前制約はバイト配列で指定されます。 このバイト配列には、RFC 5280とX.509で定義されているNameConstraints構造体にあるような名前制約のDER符号化形式が含まれなければいけません。 この構造体の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()
-
setBasicConstraints
public void setBasicConstraints(int minMaxPathLen)
基本制約に対する制約を設定します。 この値が0以上の場合、この値以上のpathLenを持つbasicConstraints機能拡張がX509Certificates
に含まれている必要があります。 値が -2の場合、エンド・エンティティの証明書だけが許容されます。 -1の場合、チェックは行われません。順方向(ターゲットからトラスト・アンカーへ)の証明書パスを構築するときに、この制約は役立ちます。 パスが部分的に構築されている場合、候補証明書のmaxPathLen値は部分パス内の証明書数以上でなければいけません。
- パラメータ:
minMaxPathLen
- 基本制約に対する制約の値- 例外:
IllegalArgumentException
- 値が -2未満の場合- 関連項目:
getBasicConstraints()
-
setPolicy
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()
-
setPathToNames
public void setPathToNames(Collection<List<?>> names) throws IOException
pathToNames基準値を設定します。 指定した名前へのパスを構築できないような名前制約が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
。またはnull
- 例外:
IOException
- 構文解析エラーが発生した場合- 関連項目:
getPathToNames()
-
addPathToName
public void addPathToName(int type, String name) throws IOException
pathToNames基準値に名前を追加します。 指定した名前へのパスを構築できないような名前制約がX509Certificate
に含まれてはいけません。このメソッドでは、呼出し側が名前を
X509Certificates
の名前制約が許容される必要のある、名前のセットに追加できます。 指定した名前は、pathToNames基準値で先に存在する値に追加されます。 名前が重複する場合は無視されます。名前は文字列形式で与えられます。 RFC 822、DNS、URIの各名前では、RFC 5280に含まれる制限に従って、明確に定義された文字列形式が用いられます。 IPv4アドレス名はドットで4つに区切られた表記法が使用されます。 OID名は、ピリオドで区切られた負にならない一連の整数として表されます。 ディレクトリ名(識別名)はRFC 2253文字列形式になります。 otherName、X.400名、EDI相手名、IPv6アドレス名、そのほかのタイプの名前には、標準の文字列形式はありません。 これらは、
addPathToName(int type, byte [] name)
メソッドを使用して指定するようにしてください。ノート: 識別名については、かわりにaddPathToName(int, byte[])を使用してください。 このメソッドの実行結果を信用しないでください。RFC 2253文字列形式で記述された一部の識別名では、符号化情報の損失により、証明書の一致処理に失敗する可能性があるためです。
- パラメータ:
type
- 名前タイプ(RFC 5280、セクション4.2.1.6で指定されている0-8)name
- 文字列形式の名前- 例外:
IOException
- 構文解析エラーが発生した場合
-
addPathToName
public void addPathToName(int type, byte[] name) throws IOException
pathToNames基準値に名前を追加します。 指定した名前へのパスを構築できないような名前制約がX509Certificate
に含まれてはいけません。このメソッドでは、呼出し側が名前を
X509Certificates
の名前制約が許容される必要のある、名前のセットに追加できます。 指定した名前は、pathToNames基準値で先に存在する値に追加されます。 名前が重複する場合は無視されます。名前はバイト配列で指定されます。 このバイト配列には、RFC 5280とX.509で定義されているGeneralName構造体にあるような、DER符号化した名前が含まれている必要があります。 この構造体のASN.1定義は、
addSubjectAlternativeName(int type, byte [] name)
で説明しています。以後の変更から保護するために、ここで提供されるバイト配列は複製されています。
- パラメータ:
type
- 名前タイプ(RFC 5280、セクション4.2.1.6で指定されている0-8)name
- ASN.1 DER符号化形式による名前を含むバイト配列- 例外:
IOException
- 構文解析エラーが発生した場合
-
getCertificate
public X509Certificate getCertificate()
certificateEquals基準値を返します。 指定したX509Certificate
は、match
メソッドに渡されたX509Certificate
と同じでないといけません。null
の場合、このチェックは行われません。- 戻り値:
- 一致させる
X509Certificate
。またはnull
- 関連項目:
setCertificate(java.security.cert.X509Certificate)
-
getSerialNumber
public BigInteger getSerialNumber()
serialNumber基準値を返します。 指定したシリアル番号は、X509Certificate
の証明書シリアル番号と一致する必要があります。null
の場合、証明書シリアル番号は問われません。- 戻り値:
- 一致させる証明書シリアル番号。または
null
- 関連項目:
setSerialNumber(java.math.BigInteger)
-
getIssuer
public X500Principal getIssuer()
発行者の基準値をX500Principal
として返します。 この識別名は、X509Certificate
の発行者識別名と一致する必要があります。null
の場合、発行者の基準値は無効になり、発行者識別名は問われません。- 戻り値:
- 要求された発行者のX500Principalとしての識別名または
null
- 導入されたバージョン:
- 1.5
-
getIssuerAsString
public String getIssuerAsString()
非推奨、代わりにgetIssuer()またはgetIssuerAsBytes()を使用してください。 このメソッドの実行結果を信用しないでください。RFC 2253文字列形式で記述された一部の識別名では、符号化情報の損失により、証明書の一致処理に失敗する可能性があるためです。発行者の基準値を
String
として返します。 この識別名は、X509Certificate
の発行者識別名と一致する必要があります。null
の場合、発行者の基準値は無効になり、発行者識別名は問われません。返された値が
null
でない場合は、RFC 2253形式の識別名になります。- 戻り値:
- 要求された発行者のRFC 2253形式の識別名。または
null
-
getIssuerAsBytes
public byte[] getIssuerAsBytes() throws IOException
発行者の基準値をバイト配列として返します。 この識別名は、X509Certificate
の発行者識別名と一致する必要があります。null
の場合、発行者の基準値は無効になり、発行者識別名は問われません。返された値が
null
ではない場合、X.501で定義されているDER符号化された単一識別名を含むバイト配列になります。 この構造体のASN.1表記については、setIssuer(byte [] issuerDN)
のドキュメントを参照してください。以降の変更から保護するために、返されるバイト配列の複製が作成されます。
- 戻り値:
- ASN.1 DER形式による要求された発行者の識別名を含むバイト配列。または
null
- 例外:
IOException
- 符号化エラーが発生した場合
-
getSubject
public X500Principal getSubject()
サブジェクトの基準値をX500Principal
として返します。 この識別名は、X509Certificate
のサブジェクト識別名と一致する必要があります。null
の場合、サブジェクトの基準値は無効になり、サブジェクト識別名は問われません。- 戻り値:
- 要求されたサブジェクトのX500Principalとしての識別名または
null
- 導入されたバージョン:
- 1.5
-
getSubjectAsString
public String getSubjectAsString()
非推奨、代わりにgetSubject()またはgetSubjectAsBytes()を使用してください。 このメソッドの実行結果を信用しないでください。RFC 2253文字列形式で記述された一部の識別名では、符号化情報の損失により、証明書の一致処理に失敗する可能性があるためです。サブジェクトの基準値を
String
として返します。 この識別名は、X509Certificate
のサブジェクト識別名と一致する必要があります。null
の場合、サブジェクトの基準値は無効になり、サブジェクト識別名は問われません。返された値が
null
でない場合は、RFC 2253形式の識別名になります。- 戻り値:
- 要求されたサブジェクトのRFC 2253形式の識別名。または
null
-
getSubjectAsBytes
public byte[] getSubjectAsBytes() throws IOException
サブジェクトの基準値をバイト配列として返します。 この識別名は、X509Certificate
のサブジェクト識別名と一致する必要があります。null
の場合、サブジェクトの基準値は無効になり、サブジェクト識別名は問われません。返された値が
null
ではない場合、X.501で定義されているDER符号化された単一識別名を含むバイト配列になります。 この構造体のASN.1表記については、setSubject(byte [] subjectDN)
のドキュメントを参照してください。以降の変更から保護するために、返されるバイト配列の複製が作成されます。
- 戻り値:
- ASN.1 DER形式による要求されたサブジェクトの識別名を含むバイト配列。または
null
- 例外:
IOException
- 符号化エラーが発生した場合
-
getSubjectKeyIdentifier
public byte[] getSubjectKeyIdentifier()
subjectKeyIdentifier基準値を返します。X509Certificate
には、指定した値を持つSubjectKeyIdentifier機能拡張が含まれる必要があります。null
の場合、subjectKeyIdentifierのチェックは行われません。以降の変更から保護するために、返されるバイト配列の複製が作成されます。
- 戻り値:
- キー識別子。または
null
- 関連項目:
setSubjectKeyIdentifier(byte[])
-
getAuthorityKeyIdentifier
public byte[] getAuthorityKeyIdentifier()
authorityKeyIdentifier基準値を返します。X509Certificate
には、指定した値を持つAuthorityKeyIdentifier機能拡張が含まれる必要があります。null
の場合、authorityKeyIdentifierのチェックは行われません。以降の変更から保護するために、返されるバイト配列の複製が作成されます。
- 戻り値:
- キー識別子。または
null
- 関連項目:
setAuthorityKeyIdentifier(byte[])
-
getCertificateValid
public Date getCertificateValid()
certificateValid基準値を返します。 指定した日付は、X509Certificate
の証明書有効期間内でなければいけません。null
の場合、certificateValidのチェックは行われません。以後の変更から保護するために、返される
Date
は複製されています。- 戻り値:
- チェック対象の
Date
。またはnull
- 関連項目:
setCertificateValid(java.util.Date)
-
getPrivateKeyValid
public Date getPrivateKeyValid()
privateKeyValid基準値を返します。 指定した日付は、X509Certificate
の非公開キー有効期間内でなければいけません。null
の場合、privateKeyValidのチェックは行われません。以後の変更から保護するために、返される
Date
は複製されています。- 戻り値:
- チェック対象の
Date
。またはnull
- 関連項目:
setPrivateKeyValid(java.util.Date)
-
getSubjectPublicKeyAlgID
public String getSubjectPublicKeyAlgID()
subjectPublicKeyAlgID基準値を返します。X509Certificate
には、指定したアルゴリズムによるサブジェクトの公開キーが含まれなければいけません。null
の場合、subjectPublicKeyAlgIDのチェックは行われません。- 戻り値:
- チェック対象の署名アルゴリズムのオブジェクト識別子(OID)、または
null
。 OIDはピリオドで区切られた負でない整数の組で表される - 関連項目:
setSubjectPublicKeyAlgID(java.lang.String)
-
getSubjectPublicKey
public PublicKey getSubjectPublicKey()
subjectPublicKey基準値を返します。X509Certificate
には、指定したサブジェクトの公開キーが含まれなければいけません。null
の場合、subjectPublicKeyのチェックは行われません。- 戻り値:
- チェック対象のサブジェクトの公開キー。または
null
- 関連項目:
setSubjectPublicKey(java.security.PublicKey)
-
getKeyUsage
public boolean[] getKeyUsage()
keyUsage基準値を返します。 指定したkeyUsageの値がX509Certificate
で有効になっている必要があります。 nullの場合、keyUsageの確認は行われません。以後の変更から保護するために、返されるboolean型配列は複製されています。
- 戻り値:
X509Certificate.getKeyUsage()
によって返されるboolean型配列と同じ形式のboolean型配列。 またはnull
- 関連項目:
setKeyUsage(boolean[])
-
getExtendedKeyUsage
public Set<String> getExtendedKeyUsage()
extendedKeyUsage基準値を返します。 指定したキー目的がX509Certificate
の拡張キー使用法の拡張機能で有効になっている必要があります。 返されるkeyPurposeSet
が空かnull
の場合、extendedKeyUsageのチェックは行われません。 extendedKeyUsage拡張機能のないX509Certificate
では、すべてのキー目的が暗黙的に有効です。- 戻り値:
- 文字列形式のキー目的OIDの不変の
Set
、またはnull
- 関連項目:
setExtendedKeyUsage(java.util.Set<java.lang.String>)
-
getMatchAllSubjectAltNames
public boolean getMatchAllSubjectAltNames()
setSubjectAlternativeNames
メソッドやaddSubjectAlternativeName
メソッドで指定されたsubjectAlternativeNamesがすべて、または少なくとも1つ、X509Certificate
に含まれていなければならないかどうかを示します。true
の場合、指定したサブジェクトの代替名がすべてX509Certificate
に含まれていなければいけません。false
の場合、指定したサブジェクトの代替名が少なくとも1つX509Certificate
に含まれていなければいけません。- 戻り値:
- フラグが使用可能な場合は
true
、使用不可の場合はfalse
。 フラグはデフォルトではtrue
です。 - 関連項目:
setMatchAllSubjectAltNames(boolean)
-
getSubjectAlternativeNames
public Collection<List<?>> getSubjectAlternativeNames()
subjectAlternativeNames基準値のコピーを返します。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
。またはnull
- 関連項目:
setSubjectAlternativeNames(java.util.Collection<java.util.List<?>>)
-
getNameConstraints
public byte[] getNameConstraints()
名前制約の基準値を返します。X509Certificate
には、指定した名前制約を満たすようなサブジェクトとサブジェクトの代替名がなければいけません。名前制約はバイト配列で返されます。 このバイト配列には、RFC 5280とX.509で定義されているNameConstraints構造体にあるような、名前制約のDER符号化形式が含まれています。 この構造体のASN.1表記については、
setNameConstraints(byte [] bytes)
のドキュメントを参照してください。以降の変更から保護するために、返されるバイト配列の複製が作成されます。
- 戻り値:
- 名前制約をチェックするために使用されるNameConstraints拡張情報をASN.1 DERで符号化した値を含むバイト配列。名前制約のチェックを行わない場合は
null
- 関連項目:
setNameConstraints(byte[])
-
getBasicConstraints
public int getBasicConstraints()
基本制約に対する制約を返します。 この値が0以上の場合、この値以上のpathLenを持つbasicConstraints機能拡張がX509Certificates
に含まれている必要があります。 値が -2の場合、エンド・エンティティの証明書だけが許容されます。 -1の場合、basicConstraintsのチェックは行われません。- 戻り値:
- 基本制約に対する制約の値
- 関連項目:
setBasicConstraints(int)
-
getPolicy
public Set<String> getPolicy()
ポリシー基準値を返します。X509Certificate
には、その証明書ポリシー拡張機能内に指定したポリシーが少なくとも1つ含まれている必要があります。 返されたSet
が空の場合、X509Certificate
には、その証明書ポリシー機能拡張内に指定したポリシーが複数含まれている必要があります。 返されたSet
がnull
の場合、ポリシーのチェックは行われません。- 戻り値:
- 文字列形式によるキー目的OIDの不変の
Set
、またはnull
- 関連項目:
setPolicy(java.util.Set<java.lang.String>)
-
getPathToNames
public Collection<List<?>> getPathToNames()
pathToNames基準値の複製を返します。 指定した名前へのパスを構築できないような名前制約が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
。またはnull
- 関連項目:
setPathToNames(java.util.Collection<java.util.List<?>>)
-
toString
public String toString()
CertSelector
のプリント可能表現を返します。
-
match
public boolean match(Certificate cert)
Certificate
が選択されるかどうかを判断します。- 定義:
match
、インタフェースCertSelector
- パラメータ:
cert
- チェック対象のCertificate
- 戻り値:
Certificate
が選択される場合はtrue
、そうでない場合はfalse
-
-