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