JavaTM Platform
Standard Ed. 6

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 を含む) が返されます。

並行アクセス

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

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

導入されたバージョン:
1.4
関連項目:
CertPath

コンストラクタの概要
protected CertPathBuilder(CertPathBuilderSpi builderSpi, Provider provider, String algorithm)
          指定されたアルゴリズムの CertPathBuilder オブジェクトを作成し、指定されたプロバイダの実装 (SPI オブジェクト) をそこにカプセル化します。
 
メソッドの概要
 CertPathBuilderResult build(CertPathParameters params)
          指定したアルゴリズムのパラメータセットを使用して、証明書パスを構築しようとします。
 String getAlgorithm()
          この CertPathBuilder のアルゴリズム名を返します。
static String getDefaultType()
          Java セキュリティープロパティーファイルに指定されているデフォルトの CertPathBuilder タイプを返します。
static CertPathBuilder getInstance(String algorithm)
          指定したアルゴリズムを実装する CertPathBuilder オブジェクトを返します。
static CertPathBuilder getInstance(String algorithm, Provider provider)
          指定したアルゴリズムを実装する CertPathBuilder オブジェクトを返します。
static CertPathBuilder getInstance(String algorithm, String provider)
          指定したアルゴリズムを実装する CertPathBuilder オブジェクトを返します。
 Provider getProvider()
          この CertPathBuilder のプロバイダを返します。
 
クラス 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() メソッド経由で取得できます。

パラメータ:
algorithm - 要求された CertPathBuilder アルゴリズムの名前。標準のアルゴリズム名については、「Java Certification Path API プログラマーズガイド」 の付録 A を参照
戻り値:
指定されたアルゴリズムを実装する CertPathBuilder オブジェクト
例外:
NoSuchAlgorithmException - 指定されたアルゴリズムの CertPathBuilderSpi 実装をサポートする Provider が存在しない場合
関連項目:
Provider

getInstance

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

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

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

パラメータ:
algorithm - 要求された CertPathBuilder アルゴリズムの名前。標準のアルゴリズム名については、「Java Certification Path API プログラマーズガイド」 の付録 A を参照
provider - プロバイダ名
戻り値:
指定されたアルゴリズムを実装する CertPathBuilder オブジェクト
例外:
NoSuchAlgorithmException - 指定されたプロバイダに指定されたアルゴリズムの CertPathBuilderSpi 実装がない場合
NoSuchProviderException - 指定されたプロバイダがセキュリティープロバイダリストに登録されていない場合
IllegalArgumentException - provider が null または空の場合
関連項目:
Provider

getInstance

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

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

パラメータ:
algorithm - 要求された CertPathBuilder アルゴリズムの名前。標準のアルゴリズム名については、「Java Certification Path API プログラマーズガイド」 の付録 A を参照
provider - プロバイダ
戻り値:
指定されたアルゴリズムを実装する CertPathBuilder オブジェクト
例外:
NoSuchAlgorithmException - 指定された Provider オブジェクトに指定されたアルゴリズムの CertPathBuilderSpi 実装がない場合
IllegalArgumentException - provider が 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()
Java セキュリティープロパティーファイルに指定されているデフォルトの CertPathBuilder タイプを返します。 デフォルトの CertPathBuilder タイプを示すプロパティーがない場合は、文字列「PKIX」を返します。Java セキュリティープロパティーファイルは、<JAVA_HOME>/lib/security/java.security という名前のファイルに格納されています。<JAVA_HOME> は java.home システムプロパティーの値を参照しており、JRE のインストールディレクトリを示します。  

デフォルトの CertPathBuilder タイプを使用するのは、アプリケーションで getInstance メソッドを呼び出すときにハードコードされたタイプを使用しない場合、およびユーザーが独自のタイプを指定しないときにデフォルトのタイプを提供する場合です。  

デフォルトの CertPathBuilder タイプを変更するには、Java セキュリティープロパティーファイルの certpathbuilder.type セキュリティープロパティーの値を目的のタイプに設定します。

戻り値:
Java セキュリティープロパティーファイルで指定されたデフォルトの CertPathBuilder タイプ。該当するプロパティーが存在しない場合は、文字列「PKIX」

JavaTM Platform
Standard Ed. 6

バグの報告と機能のリクエスト
さらに詳しい API リファレンスおよび開発者ドキュメントについては、Java SE 開発者用ドキュメントを参照してください。開発者向けの詳細な解説、概念の概要、用語の定義、バグの回避策、およびコード実例が含まれています。

Copyright 2009 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms. Documentation Redistribution Policy も参照してください。