このクラスは、プロバイダ・ベースのアーキテクチャを使用します。 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
- 関連項目:
CertPath
-
コンストラクタのサマリー
修飾子コンストラクタ説明protected
CertPathBuilder(CertPathBuilderSpi builderSpi, Provider provider, String algorithm)
指定されたアルゴリズムのCertPathBuilder
オブジェクトを作成し、指定されたプロバイダの実装(SPIオブジェクト)をそこにカプセル化します。 -
メソッドのサマリー
修飾子と型メソッド説明build(CertPathParameters params)
指定したアルゴリズムのパラメータ・セットを使用して、証明書パスを構築しようとします。このCertPathBuilder
のアルゴリズム名を返します。static String
certpathbuilder.type
セキュリティ・プロパティに指定されたデフォルトのCertPathBuilder
タイプを返します。該当するプロパティが存在しない場合は文字列「PKIX」を返します。static CertPathBuilder
getInstance(String algorithm)
指定されたアルゴリズムを実装するCertPathBuilder
オブジェクトを返します。static CertPathBuilder
getInstance(String algorithm, String provider)
指定されたアルゴリズムを実装するCertPathBuilder
オブジェクトを返します。static CertPathBuilder
getInstance(String algorithm, Provider provider)
指定されたアルゴリズムを実装するCertPathBuilder
オブジェクトを返します。このCertPathBuilder
のプロバイダを返します。カプセル化された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.preferred
Security
プロパティを使用して、指定されたアルゴリズムの優先プロバイダの順序を決定します。 これは、Security.getProviders()
によって返されるプロバイダの順序とは異なる場合があります。 - パラメータ:
algorithm
- 要求するCertPathBuilder
アルゴリズムの名前。 標準アルゴリズム名については、「Javaセキュリティ標準アルゴリズム名指定」のCertPathBuilderセクションを参照してください。- 戻り値:
- 指定されたアルゴリズムを実装する
CertPathBuilder
オブジェクト - 例外:
NoSuchAlgorithmException
-Provider
が、指定されたアルゴリズムのCertPathBuilderSpi
実装をサポートしていない場合NullPointerException
-algorithm
がnull
である場合- 関連項目:
Provider
-
getInstance
public static CertPathBuilder getInstance(String algorithm, String provider) throws NoSuchAlgorithmException, NoSuchProviderException指定されたアルゴリズムを実装するCertPathBuilder
オブジェクトを返します。指定されたプロバイダのCertPathBuilderSpi実装をカプセル化する新しいCertPathBuilderオブジェクトが返されます。 指定したプロバイダは、セキュリティ・プロバイダ・リストに登録する必要があります。
登録済みプロバイダのリストは、
Security.getProviders()
メソッド経由で取得できます。- パラメータ:
algorithm
- 要求するCertPathBuilder
アルゴリズムの名前。 標準アルゴリズム名については、「Javaセキュリティ標準アルゴリズム名指定」のCertPathBuilderセクションを参照してください。provider
- プロバイダ名。- 戻り値:
- 指定されたアルゴリズムを実装する
CertPathBuilder
オブジェクト - 例外:
IllegalArgumentException
-provider
がnull
または空の場合NoSuchAlgorithmException
- 指定されたアルゴリズムのCertPathBuilderSpi
実装が、指定されたプロバイダから利用可能でない場合NoSuchProviderException
- 指定されたプロバイダがセキュリティ・プロバイダ・リストに登録されていない場合NullPointerException
-algorithm
がnull
である場合- 関連項目:
Provider
-
getInstance
public static CertPathBuilder getInstance(String algorithm, Provider provider) throws NoSuchAlgorithmException指定されたアルゴリズムを実装するCertPathBuilder
オブジェクトを返します。指定されたProviderオブジェクトのCertPathBuilderSpi実装をカプセル化する新しいCertPathBuilderオブジェクトが返されます。 指定されたProviderオブジェクトは、プロバイダ・リストに登録する必要はありません。
- パラメータ:
algorithm
- 要求するCertPathBuilder
アルゴリズムの名前。 標準アルゴリズム名については、「Javaセキュリティ標準アルゴリズム名指定」のCertPathBuilderセクションを参照してください。provider
- プロバイダ- 戻り値:
- 指定されたアルゴリズムを実装する
CertPathBuilder
オブジェクト - 例外:
IllegalArgumentException
-provider
がnull
の場合NoSuchAlgorithmException
- 指定されたアルゴリズムのCertPathBuilderSpi
実装が、指定されたProvider
オブジェクトから使用できない場合NullPointerException
-algorithm
がnull
である場合- 関連項目:
Provider
-
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
- アルゴリズム・パラメータ- 戻り値:
- 構築アルゴリズムの結果
- 例外:
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
- 例外:
UnsupportedOperationException
- サービス・プロバイダがこのメソッドをサポートしない場合- 導入されたバージョン:
- 1.8
-