モジュール java.base
パッケージ java.security.cert

クラスCertPathBuilder

java.lang.Object
java.security.cert.CertPathBuilder

public class CertPathBuilder extends Object
証明書パス(証明書チェーンとも呼ばれる)を構築するためのクラスです。

このクラスは、プロバイダ・ベースのアーキテクチャを使用します。 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
このアルゴリズムはJavaセキュリティ標準アルゴリズム名仕様の「CertPathBuilderセクション」に記述されています。 サポートされているその他のアルゴリズムについては、実装のリリース・ドキュメントを参照してください。

並行アクセス

このクラスのstaticメソッドは、スレッド・セーフであることが保証されています。 このクラスで定義されているstaticメソッドは、悪影響を与えることなく、複数スレッドが並行して呼び出すことができます。

しかしこのことは、このクラスで定義されている非staticメソッドには当てはまりません。 特定のプロバイダで特に説明がないかぎり、単一のCertPathBuilderインスタンスに並行してアクセスする必要のある複数スレッドは、スレッド間で同期を取り、必要に応じてロックしなければいけません。 異なるCertPathBuilderインスタンスを操作する複数スレッドは、同期化される必要はありません。

導入されたバージョン:
1.4
関連項目:
  • コンストラクタのサマリー

    コンストラクタ
    修飾子
    コンストラクタ
    説明
    protected
    CertPathBuilder(CertPathBuilderSpi builderSpi, Provider provider, String algorithm)
    指定されたアルゴリズムのCertPathBuilderオブジェクトを作成し、指定されたプロバイダの実装(SPIオブジェクト)をそこにカプセル化します。
  • メソッドのサマリー

    修飾子と型
    メソッド
    説明
    指定したアルゴリズムのパラメータ・セットを使用して、証明書パスを構築しようとします。
    final String
    このCertPathBuilderのアルゴリズム名を返します。
    static final String
    certpathbuilder.typeセキュリティ・プロパティに指定されたデフォルトのCertPathBuilderタイプを返します。該当するプロパティが存在しない場合は文字列「PKIX」を返します。
    getInstance(String algorithm)
    指定されたアルゴリズムを実装するCertPathBuilderオブジェクトを返します。
    getInstance(String algorithm, String provider)
    指定されたアルゴリズムを実装するCertPathBuilderオブジェクトを返します。
    getInstance(String algorithm, Provider provider)
    指定されたアルゴリズムを実装するCertPathBuilderオブジェクトを返します。
    final Provider
    このCertPathBuilderのプロバイダを返します。
    カプセル化されたCertPathBuilderSpi実装が証明書の失効ステータスをチェックするために使用するCertPathCheckerを返します。

    クラス java.lang.Objectで宣言されたメソッド

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • コンストラクタの詳細

    • 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 - algorithmnullである場合
      関連項目:
    • getInstance

      public static CertPathBuilder getInstance(String algorithm, String provider) throws NoSuchAlgorithmException, NoSuchProviderException
      指定されたアルゴリズムを実装するCertPathBuilderオブジェクトを返します。

      指定されたプロバイダのCertPathBuilderSpi実装をカプセル化する新しいCertPathBuilderオブジェクトが返されます。 指定したプロバイダは、セキュリティ・プロバイダ・リストに登録する必要があります。

      登録済みプロバイダのリストは、Security.getProviders()メソッド経由で取得できます。

      パラメータ:
      algorithm - 要求するCertPathBuilderアルゴリズムの名前。 標準アルゴリズム名については、「Javaセキュリティ標準アルゴリズム名指定」のCertPathBuilderセクションを参照してください。
      provider - プロバイダ名。
      戻り値:
      指定されたアルゴリズムを実装するCertPathBuilderオブジェクト
      例外:
      IllegalArgumentException - providernullまたは空の場合
      NoSuchAlgorithmException - 指定されたアルゴリズムのCertPathBuilderSpi実装が、指定されたプロバイダから利用可能でない場合
      NoSuchProviderException - 指定されたプロバイダがセキュリティ・プロバイダ・リストに登録されていない場合
      NullPointerException - algorithmnullである場合
      関連項目:
    • getInstance

      public static CertPathBuilder getInstance(String algorithm, Provider provider) throws NoSuchAlgorithmException
      指定されたアルゴリズムを実装するCertPathBuilderオブジェクトを返します。

      指定されたProviderオブジェクトのCertPathBuilderSpi実装をカプセル化する新しいCertPathBuilderオブジェクトが返されます。 指定されたProviderオブジェクトは、プロバイダ・リストに登録する必要はありません。

      パラメータ:
      algorithm - 要求するCertPathBuilderアルゴリズムの名前。 標準アルゴリズム名については、「Javaセキュリティ標準アルゴリズム名指定」のCertPathBuilderセクションを参照してください。
      provider - プロバイダ
      戻り値:
      指定されたアルゴリズムを実装するCertPathBuilderオブジェクト
      例外:
      IllegalArgumentException - providernullの場合
      NoSuchAlgorithmException - 指定されたアルゴリズムのCertPathBuilderSpi実装が、指定されたProviderオブジェクトから使用できない場合
      NullPointerException - algorithmnullである場合
      関連項目:
    • getProvider

      public final Provider getProvider()
      このCertPathBuilderのプロバイダを返します。
      戻り値:
      このCertPathBuilderのプロバイダ
    • getAlgorithm

      public final String getAlgorithm()
      このCertPathBuilderのアルゴリズム名を返します。
      戻り値:
      このCertPathBuilderのアルゴリズム名
    • build

      指定したアルゴリズムのパラメータ・セットを使用して、証明書パスを構築しようとします。
      パラメータ:
      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