クラスCertPathValidator
このクラスは、プロバイダ・ベースのアーキテクチャを使用します。 CertPathValidatorを作成するには、static getInstanceメソッドのうちの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
- 関連項目:
-
コンストラクタのサマリー
コンストラクタ修飾子コンストラクタ説明protectedCertPathValidator(CertPathValidatorSpi validatorSpi, Provider provider, String algorithm) 指定されたアルゴリズムのCertPathValidatorオブジェクトを作成し、指定されたプロバイダの実装(SPIオブジェクト)をそこにカプセル化します。 -
メソッドのサマリー
修飾子と型メソッド説明final StringこのCertPathValidatorのアルゴリズム名を返します。static final Stringcertpathvalidator.typeセキュリティ・プロパティに指定されたデフォルトのCertPathValidatorタイプを返します。該当するプロパティが存在しない場合は文字列「PKIX」を返します。static CertPathValidatorgetInstance(String algorithm) 指定されたアルゴリズムを実装するCertPathValidatorオブジェクトを返します。static CertPathValidatorgetInstance(String algorithm, String provider) 指定されたアルゴリズムを実装するCertPathValidatorオブジェクトを返します。static CertPathValidatorgetInstance(String algorithm, Provider provider) 指定されたアルゴリズムを実装するCertPathValidatorオブジェクトを返します。final ProviderこのCertPathValidatorのProviderを返します。final CertPathCheckerカプセル化されたCertPathValidatorSpi実装が証明書の失効ステータスをチェックするために使用するCertPathCheckerを返します。final CertPathValidatorResultvalidate(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.preferredSecurityプロパティを使用して、指定したアルゴリズムの優先プロバイダ順序を決定します。 これは、Security.getProviders()によって返されるプロバイダの順序とは異なる場合があります。 - パラメータ:
algorithm- 要求するCertPathValidatorアルゴリズムの名前。 標準アルゴリズム名の詳細は、「Javaセキュリティ標準アルゴリズム名仕様」のCertPathValidatorの項を参照してください。- 戻り値:
- 指定されたアルゴリズムを実装する
CertPathValidatorオブジェクト - スロー:
NoSuchAlgorithmException-Providerが、指定されたアルゴリズムのCertPathValidatorSpi実装をサポートしていない場合NullPointerException-algorithmがnullである場合- 関連項目:
-
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である場合- 関連項目:
-
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である場合- 関連項目:
-
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- 検査するCertPathparams- アルゴリズム・パラメータ- 戻り値:
- 検査アルゴリズムの結果
- スロー:
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
-