- java.lang.Object
-
- java.security.cert.CertPathValidator
-
public class CertPathValidator extends Object
証明書パス(証明書チェーンとも呼ばれる)の妥当性を検査するためのクラスです。このクラスは、プロバイダ・ベースのアーキテクチャを使用します。
CertPathValidator
を作成するには、staticgetInstance
メソッドのうちの1つを呼び出して、作成するCertPathValidator
のアルゴリズム名とプロバイダ名(オプション)を渡します。CertPathValidator
オブジェクトが作成されると、validate
メソッドを呼び出して、検証対象のCertPath
とアルゴリズム固有のパラメータ・セットを渡すことで、証明書パスが検査されます。 証明書パスの検査に成功すると、CertPathValidatorResult
インタフェースを実装するオブジェクトにその結果が返されます。アプリケーションは
getRevocationChecker()
メソッドを使用して、CertPathValidator
が証明書の失効ステータスをチェックするときに使用する追加のアルゴリズム固有のパラメータおよびオプションを指定できます。 次の例は、PKIXアルゴリズムでの使用方法を示しています。CertPathValidator cpv = CertPathValidator.getInstance("PKIX"); PKIXRevocationChecker rc = (PKIXRevocationChecker)cpv.getRevocationChecker(); rc.setOptions(EnumSet.of(Option.SOFT_FAIL)); params.addCertPathChecker(rc); CertPathValidatorResult cpvr = cpv.validate(path, params);
Javaプラットフォームの実装は、すべて次の標準の
CertPathValidator
アルゴリズムをサポートする必要があります。PKIX
並行アクセス
このクラスのstaticメソッドは、スレッド・セーフであることが保証されています。 このクラスで定義されているstaticメソッドは、悪影響を与えることなく、複数スレッドが並行して呼び出すことができます。
しかしこのことは、このクラスで定義されている非staticメソッドには当てはまりません。 特定のプロバイダで特に説明がないかぎり、単一の
CertPathValidator
インスタンスに並行してアクセスする必要のある複数スレッドは、スレッド間で同期を取り、必要に応じてロックしなければいけません。 異なるCertPathValidator
インスタンスを操作する複数スレッドは、同期化される必要はありません。- 導入されたバージョン:
- 1.4
- 関連項目:
CertPath
-
-
コンストラクタのサマリー
コンストラクタ 修飾子 コンストラクタ 説明 protected
CertPathValidator(CertPathValidatorSpi validatorSpi, Provider provider, String algorithm)
指定されたアルゴリズムのCertPathValidator
オブジェクトを作成し、指定されたプロバイダの実装(SPIオブジェクト)をそこにカプセル化します。
-
メソッドのサマリー
修飾子と型 メソッド 説明 String
getAlgorithm()
このCertPathValidator
のアルゴリズム名を返します。static String
getDefaultType()
certpathvalidator.type
セキュリティ・プロパティに指定されたデフォルトのCertPathValidator
タイプを返します。該当するプロパティが存在しない場合は文字列PKIXを返します。static CertPathValidator
getInstance(String algorithm)
指定されたアルゴリズムを実装するCertPathValidator
オブジェクトを返します。static CertPathValidator
getInstance(String algorithm, String provider)
指定されたアルゴリズムを実装するCertPathValidator
オブジェクトを返します。static CertPathValidator
getInstance(String algorithm, Provider provider)
指定されたアルゴリズムを実装するCertPathValidator
オブジェクトを返します。Provider
getProvider()
このCertPathValidator
のProvider
を返します。CertPathChecker
getRevocationChecker()
カプセル化されたCertPathValidatorSpi
実装が証明書の失効ステータスをチェックするために使用するCertPathChecker
を返します。CertPathValidatorResult
validate(CertPath certPath, CertPathParameters params)
指定したアルゴリズムのパラメータ・セットを使用して、指定した証明書パスを検査します。
-
-
-
コンストラクタの詳細
-
CertPathValidator
protected CertPathValidator(CertPathValidatorSpi validatorSpi, Provider provider, String algorithm)
指定されたアルゴリズムのCertPathValidator
オブジェクトを作成し、指定されたプロバイダの実装(SPIオブジェクト)をそこにカプセル化します。- パラメータ:
validatorSpi
- プロバイダの実装provider
- プロバイダalgorithm
- アルゴリズム名
-
-
メソッドの詳細
-
getInstance
public static CertPathValidator getInstance(String algorithm) throws NoSuchAlgorithmException
指定されたアルゴリズムを実装するCertPathValidator
オブジェクトを返します。このメソッドは、最優先のProviderから順に、登録済みのセキュリティProviderのリストをトラバースします。 指定されたアルゴリズムをサポートする最初のProviderのCertPathValidatorSpi実装をカプセル化する新しいCertPathValidatorオブジェクトが返されます。
登録済みプロバイダのリストは、
Security.getProviders()
メソッド経由で取得できます。- 実装上の注意:
- JDKリファレンス実装では、
jdk.security.provider.preferred
Security
プロパティを使用して、指定されたアルゴリズムの優先プロバイダの順序を決定します。 これは、Security.getProviders()
によって返されるプロバイダの順序とは異なる場合があります。 - パラメータ:
algorithm
- 要求するCertPathValidator
アルゴリズムの名前。 標準アルゴリズム名については、「Javaセキュリティ標準アルゴリズム名指定」のCertPathValidatorセクションを参照してください。- 戻り値:
- 指定されたアルゴリズムを実装する
CertPathValidator
オブジェクト - 例外:
NoSuchAlgorithmException
-Provider
が、指定されたアルゴリズムのCertPathValidatorSpi
実装をサポートしていない場合NullPointerException
-algorithm
がnull
である場合- 関連項目:
Provider
-
getInstance
public static CertPathValidator getInstance(String algorithm, String provider) throws NoSuchAlgorithmException, NoSuchProviderException
指定されたアルゴリズムを実装するCertPathValidator
オブジェクトを返します。指定されたプロバイダのCertPathValidatorSpi実装をカプセル化する新しいCertPathValidatorオブジェクトが返されます。 指定したプロバイダは、セキュリティ・プロバイダ・リストに登録する必要があります。
登録済みプロバイダのリストは、
Security.getProviders()
メソッド経由で取得できます。- パラメータ:
algorithm
- 要求するCertPathValidator
アルゴリズムの名前。 標準アルゴリズム名については、「Javaセキュリティ標準アルゴリズム名指定」のCertPathValidatorセクションを参照してください。provider
- プロバイダ名。- 戻り値:
- 指定されたアルゴリズムを実装する
CertPathValidator
オブジェクト - 例外:
IllegalArgumentException
-provider
がnull
または空の場合NoSuchAlgorithmException
- 指定されたアルゴリズムのCertPathValidatorSpi
実装が、指定されたプロバイダから利用可能でない場合NoSuchProviderException
- 指定されたプロバイダがセキュリティ・プロバイダ・リストに登録されていない場合NullPointerException
-algorithm
がnull
である場合- 関連項目:
Provider
-
getInstance
public static CertPathValidator getInstance(String algorithm, Provider provider) throws NoSuchAlgorithmException
指定されたアルゴリズムを実装するCertPathValidator
オブジェクトを返します。指定されたProviderオブジェクトのCertPathValidatorSpi実装をカプセル化する新しいCertPathValidatorオブジェクトが返されます。 指定されたProviderオブジェクトは、プロバイダ・リストに登録する必要はありません。
- パラメータ:
algorithm
- 要求するCertPathValidator
アルゴリズムの名前。 標準アルゴリズム名については、「Javaセキュリティ標準アルゴリズム名指定」のCertPathValidatorセクションを参照してください。provider
- プロバイダ- 戻り値:
- 指定されたアルゴリズムを実装する
CertPathValidator
オブジェクト - 例外:
IllegalArgumentException
-provider
がnull
の場合NoSuchAlgorithmException
- 指定されたProviderオブジェクトから指定されたアルゴリズムのCertPathValidatorSpi
実装を使用できない場合NullPointerException
-algorithm
がnull
である場合- 関連項目:
Provider
-
getProvider
public final Provider getProvider()
このCertPathValidator
のProvider
を返します。- 戻り値:
- この
CertPathValidator
のProvider
-
getAlgorithm
public final String getAlgorithm()
このCertPathValidator
のアルゴリズム名を返します。- 戻り値:
- この
CertPathValidator
のアルゴリズム名
-
validate
public final CertPathValidatorResult validate(CertPath certPath, CertPathParameters params) throws CertPathValidatorException, InvalidAlgorithmParameterException
指定したアルゴリズムのパラメータ・セットを使用して、指定した証明書パスを検査します。指定した
CertPath
は、検査アルゴリズムでサポートされているタイプである必要があります。そうでない場合は、InvalidAlgorithmParameterException
がスローされます。 たとえば、PKIXアルゴリズムを実装するCertPathValidator
では、タイプX.509のCertPath
オブジェクトを検査します。- パラメータ:
certPath
- 検査するCertPath
params
- アルゴリズム・パラメータ- 戻り値:
- 検査アルゴリズムの結果
- 例外:
CertPathValidatorException
-CertPath
が有効でない場合InvalidAlgorithmParameterException
- 指定されたパラメータまたは指定されたCertPath
のタイプがこのCertPathValidator
に対して不適切である場合
-
getDefaultType
public static final String getDefaultType()
certpathvalidator.type
セキュリティ・プロパティに指定されたデフォルトのCertPathValidator
タイプを返します。該当するプロパティが存在しない場合は文字列PKIXを返します。デフォルトの
CertPathValidator
タイプを使用するのは、アプリケーションでgetInstance
メソッドを呼び出すときにハードコードされたタイプを使用しない場合、およびユーザーが独自のタイプを指定しないときにデフォルトのタイプを提供する場合です。デフォルトの
CertPathValidator
タイプは、certpathvalidator.type
セキュリティ・プロパティの値を目的のタイプに設定することで変更できます。- 戻り値:
certpathvalidator.type
セキュリティ・プロパティに指定されているデフォルトのCertPathValidator
タイプ、該当するプロパティが存在しない場合は文字列PKIX。- 関連項目:
セキュリティ・プロパティ
-
getRevocationChecker
public final CertPathChecker getRevocationChecker()
カプセル化されたCertPathValidatorSpi
実装が証明書の失効ステータスをチェックするために使用するCertPathChecker
を返します。 PKIX実装は、PKIXRevocationChecker
型のオブジェクトを返します。 このメソッドを呼び出すたびに、CertPathChecker
の新しいインスタンスが返されます。このメソッドの主な目的は、呼出し側が失効チェックに固有の追加の入力パラメータおよびオプションを指定できるようにすることです。 具体例については、クラスの説明を参照してください。
- 戻り値:
CertPathChecker
- 例外:
UnsupportedOperationException
- サービス・プロバイダがこのメソッドをサポートしない場合- 導入されたバージョン:
- 1.8
-
-