- すべての実装されたインタフェース:
Cloneable,CertSelector
X509Certificatesを選択するCertSelectorです。 このクラスは、PKIX準拠の証明書パスを構築するためにCertStoreから証明書を選択するときに、特に役立ちます。
最初に構築されたX509CertSelectorには有効な基準が含まれていないため、各getメソッドはデフォルト値(null。getBasicConstraintsメソッドの場合は-1)を返します。 したがって、matchメソッドはX509Certificateに対してtrueを返します。 通常、複数の基準が有効な(たとえば、setIssuer(X500Principal)またはsetKeyUsageをコール)では、X509CertSelectorがCertStore.getCertificatesまたは同様のメソッドに渡されます。
通常、matchメソッドが単一のX509Certificateと一意に一致するように、複数の基準を(たとえば、setIssuer(X500Principal)およびsetSerialNumberをコール)で有効にできます。 通常、2つの発行CAで同じ識別名を持つことができるため、それぞれは同じシリアル番号で証明書を発行します。 ほかの一意の組み合わせには、発行者、サブジェクト、subjectKeyIdentifierそしてsubjectPublicKey基準が含まれます。
これから説明するX.509証明書機能拡張の定義については、RFC 5280「Internet X.509 Public Key Infrastructure Certificate and CRL Profile」を参照してください。
並行アクセス
特に断らないかぎり、このクラスで定義されているメソッドはスレッドセーフではありません。 単一のオブジェクトに並行アクセスする必要のある複数スレッドは、スレッド間で同期をとり、必要に応じてロックする必要があります。 複数のスレッドがそれぞれ個別のオブジェクトを処理する場合、それらのスレッドは同期する必要はありません。
- 導入されたバージョン:
- 1.4
- 関連項目:
-
コンストラクタのサマリー
コンストラクタ -
メソッドのサマリー
修飾子と型メソッド説明voidaddPathToName(int type, byte[] name) pathToNames基準値に名前を追加します。voidaddPathToName(int type, String name) pathToNames基準値に名前を追加します。voidaddSubjectAlternativeName(int type, byte[] name) subjectAlternativeNames基準値に名前を追加します。voidaddSubjectAlternativeName(int type, String name) subjectAlternativeNames基準値に名前を追加します。clone()このオブジェクトの複製を返します。byte[]authorityKeyIdentifier基準値を返します。int基本制約に対する制約を返します。certificateEquals基準値を返します。certificateValid基準値を返します。extendedKeyUsage基準値を返します。発行者の基準値をX500Principalとして返します。byte[]発行者の基準値をバイト配列として返します。非推奨。boolean[]keyUsage基準値を返します。booleansetSubjectAlternativeNamesメソッドやaddSubjectAlternativeNameメソッドで指定されたsubjectAlternativeNamesがすべて、または少なくとも1つ、X509Certificateに含まれていなければならないかどうかを示します。byte[]名前制約の基準値を返します。Collection<List<?>> pathToNames基準値の複製を返します。ポリシー基準値を返します。privateKeyValid基準値を返します。serialNumber基準値を返します。サブジェクトの基準値をX500Principalとして返します。Collection<List<?>> subjectAlternativeNames基準値のコピーを返します。byte[]サブジェクトの基準値をバイト配列として返します。非推奨。かわりにgetSubject()またはgetSubjectAsBytes()を使用してください。byte[]subjectKeyIdentifier基準値を返します。subjectPublicKey基準値を返します。subjectPublicKeyAlgID基準値を返します。booleanmatch(Certificate cert) Certificateが選択されるかどうかを判断します。voidsetAuthorityKeyIdentifier(byte[] authorityKeyID) authorityKeyIdentifier基準値を設定します。voidsetBasicConstraints(int minMaxPathLen) 基本制約に対する制約を設定します。voidcertificateEquals基準値を設定します。voidsetCertificateValid(Date certValid) certificateValid基準値を設定します。voidsetExtendedKeyUsage(Set<String> keyPurposeSet) extendedKeyUsage基準値を設定します。voidsetIssuer(byte[] issuerDN) 発行者の基準値を設定します。void非推奨。かわりにsetIssuer(X500Principal)またはsetIssuer(byte[])を使用してください。voidsetIssuer(X500Principal issuer) 発行者の基準値を設定します。voidsetKeyUsage(boolean[] keyUsage) keyUsage基準値を設定します。voidsetMatchAllSubjectAltNames(boolean matchAllNames) setSubjectAlternativeNamesメソッドやaddSubjectAlternativeNameメソッドで指定されたすべてのsubjectAlternativeNamesの照合を使用可能または使用不可にします。voidsetNameConstraints(byte[] bytes) 名前制約の基準値を設定します。voidsetPathToNames(Collection<List<?>> names) pathToNames基準値を設定します。voidポリシー制約を設定します。voidsetPrivateKeyValid(Date privateKeyValid) privateKeyValid基準値を設定します。voidsetSerialNumber(BigInteger serial) serialNumber基準値を設定します。voidsetSubject(byte[] subjectDN) サブジェクトの基準値を設定します。voidsetSubject(String subjectDN) 非推奨。かわりにsetSubject(X500Principal)またはsetSubject(byte[])を使用してください。voidsetSubject(X500Principal subject) サブジェクトの基準値を設定します。voidsetSubjectAlternativeNames(Collection<List<?>> names) subjectAlternativeNames基準値を設定します。voidsetSubjectKeyIdentifier(byte[] subjectKeyID) subjectKeyIdentifier基準値を設定します。voidsetSubjectPublicKey(byte[] key) subjectPublicKey基準値を設定します。voidsubjectPublicKey基準値を設定します。voidsubjectPublicKeyAlgID基準値を設定します。toString()CertSelectorのプリント可能表現を返します。
-
コンストラクタの詳細
-
X509CertSelector
public X509CertSelector()X509CertSelectorを作成します。 最初は条件が設定されていないため、どのX509Certificateでも一致します。
-
-
メソッドの詳細
-
setCertificate
public void setCertificate(X509Certificate cert) certificateEquals基準値を設定します。 指定したX509Certificateは、matchメソッドに渡されたX509Certificateと同じでないといけません。nullの場合、このチェックは行われません。このメソッドは、単一の証明書と一致させる必要があるときに特に役立ちます。 このcertificateEquals基準に加えてほかの基準を指定することも可能ですが、通常の場合そうすることは必要ないか、または実用的ではありません。
- パラメータ:
cert- 一致させるX509Certificate。またはnull- 関連項目:
-
setSerialNumber
public void setSerialNumber(BigInteger serial) serialNumber基準値を設定します。 指定したシリアル番号は、X509Certificateの証明書シリアル番号と一致する必要があります。nullの場合、証明書シリアル番号は問われません。- パラメータ:
serial- 一致させる証明書シリアル番号。またはnull- 関連項目:
-
setIssuer
public void setIssuer(X500Principal issuer) 発行者の基準値を設定します。 指定した識別名は、X509Certificateの発行者識別名と一致する必要があります。nullの場合、発行者識別名は問われません。- パラメータ:
issuer- X500Principalとしての識別名またはnull- 導入されたバージョン:
- 1.5
-
setIssuer
@Deprecated(since="16") 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
@Deprecated(since="16") 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[])を参照してください。- パラメータ:
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- 関連項目:
-
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機能拡張の値を使用するには、埋め込まれたKeyIdentifierOCTET STRINGの値を抽出してから、DERでこのOCTET STRINGをSEQUENCE内に符号化します。 SubjectKeyIdentifierの詳細は、setSubjectKeyIdentifier(byte[] subjectKeyID)を参照してください。また、以後の変更から保護するために、ここで提供されるバイト配列は複製されています。
- パラメータ:
authorityKeyID- 権限のキー識別子。またはnull- 関連項目:
-
setCertificateValid
public void setCertificateValid(Date certValid) certificateValid基準値を設定します。 指定した日付は、X509Certificateの証明書有効期間内でなければいけません。nullの場合、certificateValidのチェックは行われません。以後の変更から保護するために、ここで提供される
Dateは複製されています。- パラメータ:
certValid- チェック対象のDate。またはnull- 関連項目:
-
setPrivateKeyValid
public void setPrivateKeyValid(Date privateKeyValid) privateKeyValid基準値を設定します。 指定した日付は、X509Certificateの非公開キー有効期間内でなければいけません。nullの場合、privateKeyValidのチェックは行われません。以後の変更から保護するために、ここで提供される
Dateは複製されています。- パラメータ:
privateKeyValid- チェック対象のDate。またはnull- 関連項目:
-
setSubjectPublicKeyAlgID
public void setSubjectPublicKeyAlgID(String oid) throws IOException subjectPublicKeyAlgID基準値を設定します。X509Certificateには、指定したアルゴリズムによるサブジェクトの公開キーが含まれなければいけません。nullの場合、subjectPublicKeyAlgIDのチェックは行われません。- パラメータ:
oid- チェック対象のアルゴリズムのオブジェクト識別子(OID)、またはnull。 OIDはピリオドで区切られた負でない整数の組で表される- 例外:
IOException- 最初のコンポーネントが0、1、2のいずれでもなく、2番目のコンポーネントが39よりも大きいというように、OIDが無効の場合- 関連項目:
-
setSubjectPublicKey
public void setSubjectPublicKey(PublicKey key) subjectPublicKey基準値を設定します。X509Certificateには、指定したサブジェクトの公開キーが含まれなければいけません。nullの場合、subjectPublicKeyのチェックは行われません。- パラメータ:
key- チェック対象のサブジェクトの公開キー。またはnull- 関連項目:
-
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- 符号化エラーが発生した場合(サブジェクトの公開キーの不正な形式)- 関連項目:
-
setKeyUsage
public void setKeyUsage(boolean[] keyUsage) keyUsage基準値を設定します。 指定したkeyUsageの値がX509Certificateで有効になっている必要があります。nullの場合、keyUsageの確認は行われません。 keyUsage機能拡張のないX509Certificateでは、すべてのkeyUsageの値が暗黙的に有効です。以後の変更から保護するために、ここで提供されるboolean型配列は複製されています。
- パラメータ:
keyUsage-X509Certificate.getKeyUsage()によって返されるboolean型配列と同じ形式のboolean型配列。 またはnull- 関連項目:
-
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が無効の場合- 関連項目:
-
setMatchAllSubjectAltNames
public void setMatchAllSubjectAltNames(boolean matchAllNames) setSubjectAlternativeNamesメソッドやaddSubjectAlternativeNameメソッドで指定されたすべてのsubjectAlternativeNamesの照合を使用可能または使用不可にします。 使用可能な場合、指定したサブジェクトの代替名がすべてX509Certificateに含まれていなければいけません。 使用不可の場合、指定したサブジェクトの代替名が少なくとも1つX509Certificateに含まれていなければいけません。デフォルトでmatchAllNamesフラグは
trueです。- パラメータ:
matchAllNames-trueの場合はフラグを使用可能にし、falseの場合は使用不可にする- 関連項目:
-
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- 構文解析エラーが発生した場合- 関連項目:
-
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- 構文解析エラーが発生した場合- 関連項目:
-
setBasicConstraints
public void setBasicConstraints(int minMaxPathLen) 基本制約に対する制約を設定します。 この値が0以上の場合、この値以上のpathLenを持つbasicConstraints機能拡張がX509Certificatesに含まれている必要があります。 値が -2の場合、エンド・エンティティの証明書だけが許容されます。 -1の場合、チェックは行われません。順方向(ターゲットからトラスト・アンカーへ)の証明書パスを構築するときに、この制約は役立ちます。 パスが部分的に構築されている場合、候補証明書のmaxPathLen値は部分パス内の証明書数以上でなければいけません。
- パラメータ:
minMaxPathLen- 基本制約に対する制約の値- 例外:
IllegalArgumentException- 値が -2未満の場合- 関連項目:
-
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の構文解析エラーが発生した場合- 関連項目:
-
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- 構文解析エラーが発生した場合- 関連項目:
-
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 - 関連項目:
-
getSerialNumber
public BigInteger getSerialNumber()serialNumber基準値を返します。 指定したシリアル番号は、X509Certificateの証明書シリアル番号と一致する必要があります。nullの場合、証明書シリアル番号は問われません。- 戻り値:
- 一致させる証明書シリアル番号。または
null - 関連項目:
-
getIssuer
public X500Principal getIssuer()発行者の基準値をX500Principalとして返します。 この識別名は、X509Certificateの発行者識別名と一致する必要があります。nullの場合、発行者の基準値は無効になり、発行者識別名は問われません。- 戻り値:
- 要求された発行者のX500Principalとしての識別名または
null - 導入されたバージョン:
- 1.5
-
getIssuerAsString
@Deprecated(since="16") 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[])のドキュメントに記載されています。以降の変更から保護するために、返されるバイト配列の複製が作成されます。
- 戻り値:
- ASN.1 DER形式による要求された発行者の識別名を含むバイト配列。または
null - 例外:
IOException- 符号化エラーが発生した場合
-
getSubject
public X500Principal getSubject()サブジェクトの基準値をX500Principalとして返します。 この識別名は、X509Certificateのサブジェクト識別名と一致する必要があります。nullの場合、サブジェクトの基準値は無効になり、サブジェクト識別名は問われません。- 戻り値:
- 要求されたサブジェクトのX500Principalとしての識別名または
null - 導入されたバージョン:
- 1.5
-
getSubjectAsString
@Deprecated(since="16") 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[])のドキュメントに記載されています。以降の変更から保護するために、返されるバイト配列の複製が作成されます。
- 戻り値:
- ASN.1 DER形式による要求されたサブジェクトの識別名を含むバイト配列。または
null - 例外:
IOException- 符号化エラーが発生した場合
-
getSubjectKeyIdentifier
public byte[] getSubjectKeyIdentifier()subjectKeyIdentifier基準値を返します。X509Certificateには、指定した値を持つSubjectKeyIdentifier機能拡張が含まれる必要があります。nullの場合、subjectKeyIdentifierのチェックは行われません。以降の変更から保護するために、返されるバイト配列の複製が作成されます。
- 戻り値:
- キー識別子。または
null - 関連項目:
-
getAuthorityKeyIdentifier
public byte[] getAuthorityKeyIdentifier()authorityKeyIdentifier基準値を返します。X509Certificateには、指定した値を持つAuthorityKeyIdentifier機能拡張が含まれる必要があります。nullの場合、authorityKeyIdentifierのチェックは行われません。以降の変更から保護するために、返されるバイト配列の複製が作成されます。
- 戻り値:
- キー識別子。または
null - 関連項目:
-
getCertificateValid
public Date getCertificateValid()certificateValid基準値を返します。 指定した日付は、X509Certificateの証明書有効期間内でなければいけません。nullの場合、certificateValidのチェックは行われません。以後の変更から保護するために、返される
Dateは複製されています。- 戻り値:
- チェック対象の
Date。またはnull - 関連項目:
-
getPrivateKeyValid
public Date getPrivateKeyValid()privateKeyValid基準値を返します。 指定した日付は、X509Certificateの非公開キー有効期間内でなければいけません。nullの場合、privateKeyValidのチェックは行われません。以後の変更から保護するために、返される
Dateは複製されています。- 戻り値:
- チェック対象の
Date。またはnull - 関連項目:
-
getSubjectPublicKeyAlgID
public String getSubjectPublicKeyAlgID()subjectPublicKeyAlgID基準値を返します。X509Certificateには、指定したアルゴリズムによるサブジェクトの公開キーが含まれなければいけません。nullの場合、subjectPublicKeyAlgIDのチェックは行われません。- 戻り値:
- チェック対象の署名アルゴリズムのオブジェクト識別子(OID)、または
null。 OIDはピリオドで区切られた負でない整数の組で表される - 関連項目:
-
getSubjectPublicKey
public PublicKey getSubjectPublicKey()subjectPublicKey基準値を返します。X509Certificateには、指定したサブジェクトの公開キーが含まれなければいけません。nullの場合、subjectPublicKeyのチェックは行われません。- 戻り値:
- チェック対象のサブジェクトの公開キー。または
null - 関連項目:
-
getKeyUsage
public boolean[] getKeyUsage()keyUsage基準値を返します。 指定したkeyUsageの値がX509Certificateで有効になっている必要があります。 nullの場合、keyUsageの確認は行われません。以後の変更から保護するために、返されるboolean型配列は複製されています。
- 戻り値:
X509Certificate.getKeyUsage()によって返されるboolean型配列と同じ形式のboolean型配列。 またはnull- 関連項目:
-
getExtendedKeyUsage
-
getMatchAllSubjectAltNames
public boolean getMatchAllSubjectAltNames()setSubjectAlternativeNamesメソッドやaddSubjectAlternativeNameメソッドで指定されたsubjectAlternativeNamesがすべて、または少なくとも1つ、X509Certificateに含まれていなければならないかどうかを示します。trueの場合、指定したサブジェクトの代替名がすべてX509Certificateに含まれていなければいけません。falseの場合、指定したサブジェクトの代替名が少なくとも1つX509Certificateに含まれていなければいけません。- 戻り値:
- フラグが使用可能な場合は
true、使用不可の場合はfalse。 フラグはデフォルトではtrueです。 - 関連項目:
-
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 - 関連項目:
-
getNameConstraints
public byte[] getNameConstraints()名前制約の基準値を返します。X509Certificateには、指定した名前制約を満たすようなサブジェクトとサブジェクトの代替名がなければいけません。名前制約はバイト配列で返されます。 このバイト配列には、RFC 5280とX.509で定義されているNameConstraints構造体にあるような、名前制約のDER符号化形式が含まれています。 この構造体のASN.1表記については、
setNameConstraints(byte [] bytes)のドキュメントを参照してください。以降の変更から保護するために、返されるバイト配列の複製が作成されます。
- 戻り値:
- 名前制約をチェックするために使用されるNameConstraints拡張情報をASN.1 DERで符号化した値を含むバイト配列。名前制約のチェックを行わない場合は
null - 関連項目:
-
getBasicConstraints
public int getBasicConstraints()基本制約に対する制約を返します。 この値が0以上の場合、この値以上のpathLenを持つbasicConstraints機能拡張がX509Certificatesに含まれている必要があります。 値が -2の場合、エンド・エンティティの証明書だけが許容されます。 -1の場合、basicConstraintsのチェックは行われません。- 戻り値:
- 基本制約に対する制約の値
- 関連項目:
-
getPolicy
-
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 - 関連項目:
-
toString
-
match
public boolean match(Certificate cert) Certificateが選択されるかどうかを判断します。- 定義:
match、インタフェースCertSelector- パラメータ:
cert- チェック対象のCertificate- 戻り値:
Certificateが選択される場合はtrue、そうでない場合はfalse
-
clone
public Object clone()このオブジェクトの複製を返します。- 定義:
clone、インタフェースCertSelector- オーバーライド:
clone、クラスObject- 戻り値:
- コピー
- 関連項目:
-
getIssuer()またはgetIssuerAsBytes()を使用してください。