JavaTM 2
Platform
Std. Ed. v1.4.0

java.security.cert
クラス CertificateFactory

java.lang.Object
  |
  +--java.security.cert.CertificateFactory

public class CertificateFactory
extends Object

証明書ファクトリの機能を定義します。証明書ファクトリは、証明書オブジェクト、証明書パス (CertPath) および証明書の取り消しリスト (CRL) オブジェクトを符号から生成するために使用します。

複数の証明書からなる符号では、無関係と思われる証明書のコレクションを構文解析するときに generateCertificates を使用します。そうでない場合は、CertPath (証明書チェイン) を生成して CertPathValidator で検証するときに generateCertPath を使用します。

X.509 の証明書ファクトリは、java.security.cert.X509Certificate のインスタンスである証明書と、java.security.cert.X509CRL のインスタンスである CRL を返す必要があります。

次の例は、Base64 で符号化された証明書を持つファイルを読み出します。これらの証明書は、先頭が -----BEGIN CERTIFICATE----- によって区切られ、終端が -----END CERTIFICATE----- によって区切られます。generateCertificate の各呼び出しが 1 つの証明書だけを使用し、入力ストリームの読み出し位置がファイル内の次の証明書に置かれるように、FileInputStream (mark および reset をサポートしていない) を BufferedInputStream (これらのメソッドをサポート) に変換します。

 FileInputStream fis = new FileInputStream(filename);
 BufferedInputStream bis = new BufferedInputStream(fis);

 CertificateFactory cf = CertificateFactory.getInstance("X.509");

 while (bis.available() > 0) {
    Certificate cert = cf.generateCertificate(bis);
    System.out.println(cert.toString());
 }
 

次の例は、ファイルに格納されている PKCS#7 形式の証明書応答を構文解析し、すべての証明書を抽出します。

 FileInputStream fis = new FileInputStream(filename);
 CertificateFactory cf = CertificateFactory.getInstance("X.509");
 Collection c = cf.generateCertificates(fis);
 Iterator i = c.iterator();
 while (i.hasNext()) {
    Certificate cert = (Certificate)i.next();
    System.out.println(cert);
 }
 

導入されたバージョン:
1.2
関連項目:
Certificate, X509Certificate, CertPath, CRL, X509CRL

コンストラクタの概要
protected CertificateFactory(CertificateFactorySpi certFacSpi, Provider provider, String type)
          指定されたタイプの CertificateFactory オブジェクトを作成し、指定されたプロバイダの実装 (SPI オブジェクト) をそこにカプセル化します。
 
メソッドの概要
 Certificate generateCertificate(InputStream inStream)
          証明書オブジェクトを生成し、入力ストリーム inStream から読み出されたデータを使ってその証明書オブジェクトを初期化します。
 Collection generateCertificates(InputStream inStream)
          指定された入力ストリーム inStream から読み出された証明書のコレクションビューを返します。
 CertPath generateCertPath(InputStream inStream)
          CertPath オブジェクトを生成し、InputStream である inStream から読み込まれたデータで初期化します。
 CertPath generateCertPath(InputStream inStream, String encoding)
          CertPath オブジェクトを生成し、InputStream である inStream から読み込まれたデータで初期化します。
 CertPath generateCertPath(List certificates)
          CertPath オブジェクトを生成し、CertificateList で初期化します。
 CRL generateCRL(InputStream inStream)
          証明書の取り消しリスト (CRL) オブジェクトを生成し、入力ストリーム inStream から読み出されたデータを使って初期化します。
 Collection generateCRLs(InputStream inStream)
          指定された入力ストリーム inStream から読み出された CRL のコレクションビューを返します。
 Iterator getCertPathEncodings()
          この証明書ファクトリでサポートする CertPath の符号化の繰り返しを返します。
static CertificateFactory getInstance(String type)
          指定されたタイプの証明書を実装する証明書ファクトリオブジェクトを作成します。
static CertificateFactory getInstance(String type, Provider provider)
          指定した証明書タイプで、指定したプロバイダから証明書ファクトリオブジェクトを生成します。
static CertificateFactory getInstance(String type, String provider)
          指定された証明書タイプの証明書ファクトリオブジェクトを、指定されたプロバイダから作成します。
 Provider getProvider()
          この証明書ファクトリのプロバイダを返します。
 String getType()
          この証明書ファクトリに関連した証明書タイプの名前を返します。
 
クラス java.lang.Object から継承したメソッド
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

コンストラクタの詳細

CertificateFactory

protected CertificateFactory(CertificateFactorySpi certFacSpi,
                             Provider provider,
                             String type)
指定されたタイプの CertificateFactory オブジェクトを作成し、指定されたプロバイダの実装 (SPI オブジェクト) をそこにカプセル化します。

パラメータ:
certFacSpi - プロバイダの実装
provider - プロバイダ
type - 証明書タイプ
メソッドの詳細

getInstance

public static final CertificateFactory getInstance(String type)
                                            throws CertificateException
指定されたタイプの証明書を実装する証明書ファクトリオブジェクトを作成します。デフォルトのプロバイダパッケージが、要求された証明書タイプの実装を提供する場合は、その実装が格納されている証明書ファクトリのインスタンスが返されます。そのタイプがデフォルトのプロバイダパッケージにない場合は、ほかのパッケージを探します。

パラメータ:
type - 要求された証明書タイプの名前。標準の証明書タイプの詳細は、「Java 暗号化アーキテクチャ API 仕様 & リファレンス」の付録 A を参照
戻り値:
指定されたタイプの証明書ファクトリオブジェクト
例外:
CertificateException - 要求された証明書タイプが、デフォルトのプロバイダパッケージにも、検索したほかのプロバイダパッケージにもない場合

getInstance

public static final CertificateFactory getInstance(String type,
                                                   String provider)
                                            throws CertificateException,
                                                   NoSuchProviderException
指定された証明書タイプの証明書ファクトリオブジェクトを、指定されたプロバイダから作成します。

パラメータ:
type - 証明書タイプ
provider - プロバイダ名
戻り値:
指定されたタイプの証明書ファクトリオブジェクト
例外:
CertificateException - 証明書タイプが、指定されたプロバイダにない場合
NoSuchProviderException - プロバイダが設定されていない場合
関連項目:
Provider

getInstance

public static final CertificateFactory getInstance(String type,
                                                   Provider provider)
                                            throws CertificateException
指定した証明書タイプで、指定したプロバイダから証明書ファクトリオブジェクトを生成します。注: provider は登録されている必要はありません。

パラメータ:
type - 証明書タイプ
provider - プロバイダ
戻り値:
指定されたタイプの証明書ファクトリオブジェクト
例外:
CertificateException - 証明書タイプが、指定されたプロバイダにない場合
IllegalArgumentException - provider が null の場合
導入されたバージョン:
1.4
関連項目:
Provider

getProvider

public final Provider getProvider()
この証明書ファクトリのプロバイダを返します。

戻り値:
この証明書ファクトリのプロバイダ

getType

public final String getType()
この証明書ファクトリに関連した証明書タイプの名前を返します。

戻り値:
この証明書ファクトリに関連した証明書タイプの名前

generateCertificate

public final Certificate generateCertificate(InputStream inStream)
                                      throws CertificateException
証明書オブジェクトを生成し、入力ストリーム inStream から読み出されたデータを使ってその証明書オブジェクトを初期化します。

この証明書ファクトリによってサポートされている特殊形式の証明書を利用するために、返された証明書オブジェクトを対応する証明書クラスに型キャストできます。たとえば、この証明書ファクトリが X.509 証明書を実装する場合、返された証明書オブジェクトを X509Certificate クラスに型キャストできます。

X.509 証明書の証明書ファクトリの場合は、inStream で提供される証明書は DER で符号化される必要があり、バイナリまたはプリント可能 (Base64) な符号で提供されることもあります。証明書が Base64 の符号で提供された場合、先頭は -----BEGIN CERTIFICATE----- によって区切られ、終端は -----END CERTIFICATE----- によって区切られる必要があります。

指定された入力ストリームが mark および reset をサポートしていない場合、このメソッドは入力ストリーム全体を使用します。そうでない場合、このメソッドが呼び出されるたびに証明書を 1 つ消費し、入力ストリームの読み込み位置は、固有の end-of-certificate マーカーのあとで次に使用可能なバイトに設定されます。固有の end-of-certificate マーカー (EOF 以外) が入力ストリームのデータに含まれず、証明書が構文解析されたあとでデータが続く場合は、CertificateException がスローされます。

パラメータ:
inStream - 証明書データを持つ入力ストリーム
戻り値:
入力ストリームのデータを使って初期化された証明書オブジェクト
例外:
CertificateException - 構文解析エラーの場合

getCertPathEncodings

public final Iterator getCertPathEncodings()
この証明書ファクトリでサポートする CertPath の符号化の繰り返しを返します。繰り返しの最初はデフォルトの符号化になります。標準の符号化名とその形式については、「Java Certification Path API Programmer's Guide」 の付録 A を参照してください。

返された Iteratorremove メソッドで変更しようとすると、UnsupportedOperationException がスローされます。

戻り値:
サポートされる CertPath の符号化 (String として) の名前についての Iterator
導入されたバージョン:
1.4

generateCertPath

public final CertPath generateCertPath(InputStream inStream)
                                throws CertificateException
CertPath オブジェクトを生成し、InputStream である inStream から読み込まれたデータで初期化します。データは、デフォルトの符号化がされていると仮定されます。デフォルトの符号化の名前は、getCertPathEncodings メソッドで返される Iterator の最初の要素になります。

パラメータ:
inStream - データが含まれる InputStream
戻り値:
InputStream からのデータで初期化された CertPath
例外:
CertificateException - 復号化中に例外が発生した場合
導入されたバージョン:
1.4

generateCertPath

public final CertPath generateCertPath(InputStream inStream,
                                       String encoding)
                                throws CertificateException
CertPath オブジェクトを生成し、InputStream である inStream から読み込まれたデータで初期化します。データは指定した符号化がされていると仮定されます。標準の符号化名とその形式については、「Java Certification Path API Programmer's Guide」 の付録 A を参照してください。

パラメータ:
inStream - データが含まれる InputStream
encoding - データで使用される符号化
戻り値:
InputStream からのデータで初期化された CertPath
例外:
CertificateException - 復号化中に例外が発生した場合、あるいは指定した符号化がサポートされていない場合
導入されたバージョン:
1.4

generateCertPath

public final CertPath generateCertPath(List certificates)
                                throws CertificateException
CertPath オブジェクトを生成し、CertificateList で初期化します。

提供される証明書は、CertificateFactory でサポートされている種類でなければなりません。

パラメータ:
certificates - CertificateList
戻り値:
提供された証明書のリストで初期化された CertPath
例外:
CertificateException - 例外が発生する場合
導入されたバージョン:
1.4

generateCertificates

public final Collection generateCertificates(InputStream inStream)
                                      throws CertificateException
指定された入力ストリーム inStream から読み出された証明書のコレクションビューを返します。コレクションビューは空の場合もあります。

この証明書ファクトリによってサポートされている特殊な形式の証明書を利用するために、返されたコレクションビューの各要素を対応する証明書クラスに型キャストできます。たとえば、この証明書ファクトリが X.509 証明書を実装する場合、返されたコレクション内の要素を X509Certificate クラスに型キャストできます。

X.509 証明書で使う証明書ファクトリの場合、inStream には、generateCertificate で説明されている形式の、DER で符号化された一連の証明書が格納されます。また、inStream には PKCS#7 証明連鎖が格納されます。これは PKCS#7 SignedData オブジェクトであり、上位フィールドは certificates だけです。特に、署名と内容は無視されます。この形式の場合、複数の証明書を 1 回でダウンロードできます。証明書がない場合は、空のコレクションが返されます。

指定された入力ストリームが mark および reset をサポートしていない場合、このメソッドは入力ストリーム全体を使用します。

パラメータ:
inStream - 証明書を持つ入力ストリーム
戻り値:
入力ストリームからのデータを使って初期化された java.security.cert.Certificate オブジェクトのコレクションビュー。空の場合もある
例外:
CertificateException - 構文解析エラーの場合

generateCRL

public final CRL generateCRL(InputStream inStream)
                      throws CRLException
証明書の取り消しリスト (CRL) オブジェクトを生成し、入力ストリーム inStream から読み出されたデータを使って初期化します。

この証明書ファクトリによってサポートされている特殊な形式の CRL を利用するために、返された CRL オブジェクトを対応する CRL クラスに型キャストできます。たとえば、この証明書ファクトリが X.509 CRL を実装する場合、返された CRL オブジェクトを X509CRL クラスに型キャストできます。

指定された入力ストリームが mark および reset をサポートしていない場合、このメソッドは入力ストリーム全体を使用します。そうでない場合、このメソッドが呼び出されるたびに CRL を 1 つ消費し、入力ストリームの読み込み位置は、固有の end-of-CRL マーカーのあとで次に使用可能なバイトに設定されます。固有の end-of-CRL マーカー (EOF 以外) が入力ストリームのデータに含まれず、証明書が構文解析されたあとでデータが続く場合は、CRLException がスローされます。

パラメータ:
inStream - CRL データを持つ入力ストリーム
戻り値:
入力ストリームのデータを使って初期化された CRL オブジェクト
例外:
CRLException - 構文解析エラーの場合

generateCRLs

public final Collection generateCRLs(InputStream inStream)
                              throws CRLException
指定された入力ストリーム inStream から読み出された CRL のコレクションビューを返します。コレクションビューは空の場合もあります。

この証明書ファクトリによってサポートされている特殊な形式の CRL を利用するために、返されたコレクションビューの各要素を対応する CRL クラスに型キャストできます。たとえば、この証明書ファクトリが X.509 CRL を実装する場合、返されたコレクション内の要素を X509CRL クラスに型キャストできます。

X.509 CRL の証明書ファクトリの場合は、inStream には、DER で符号化された一連の CRL が格納されます。また、inStream には PKCS#7 CRL セットが格納されます。これは PKCS#7 SignedData オブジェクトで、上位フィールドは crls だけです。特に、署名と内容は無視されます。この形式の場合、複数の CRL を 1 回でダウンロードできます。CRL がない場合は、空のコレクションが返されます。

指定された入力ストリームが mark および reset をサポートしていない場合、このメソッドは入力ストリーム全体を使用します。

パラメータ:
inStream - CRL を持つ入力ストリーム
戻り値:
入力ストリームからのデータを使って初期化された java.security.cert.Certificate オブジェクトのコレクションビュー。空の場合もある
例外:
CRLException - 構文解析エラーの場合

JavaTM 2
Platform
Std. Ed. v1.4.0

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

Java、Java 2D、および JDBC は米国ならびにその他の国における米国 Sun Microsystems, Inc. の商標もしくは登録商標です。
Copyright 1993-2002 Sun Microsystems, Inc. 901 San Antonio Road
Palo Alto, California, 94303, U.S.A. All Rights Reserved.