JavaTM 2 Platform
Std. Ed. v1.3

java.security.cert
クラス CertificateFactory

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

public class CertificateFactory
extends Object

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

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

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

 FileInputStream fis = new FileInputStream(filename);
 DataInputStream dis = new DataInputStream(fis);

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

 byte[] bytes = new byte[dis.available()];
 dis.readFully(bytes);
 ByteArrayInputStream bais = new ByteArrayInputStream(bytes);

 while (bais.available() > 0) {
    Certificate cert = cf.generateCertificate(bais);
    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, CRL, X509CRL

コンストラクタの概要
protected CertificateFactory(CertificateFactorySpi certFacSpi, Provider provider, String type)
          指定されたタイプの CertificateFactory オブジェクトを作成し、指定されたプロバイダの実装 (SPI オブジェクト) をそこにカプセル化します。
 
メソッドの概要
 Certificate generateCertificate(InputStream inStream)
          証明書オブジェクトを生成し、入力ストリーム inStream から読み出されたデータを使ってその証明書オブジェクトを初期化します。
 Collection generateCertificates(InputStream inStream)
          指定された入力ストリーム inStream から読み出された証明書のコレクションビューを返します。
 CRL generateCRL(InputStream inStream)
          証明書の取り消しリスト (CRL) オブジェクトを生成し、入力ストリーム inStream から読み出されたデータを使って初期化します。
 Collection generateCRLs(InputStream inStream)
          指定された入力ストリーム inStream から読み出された CRL のコレクションビューを返します。
static CertificateFactory getInstance(String type)
          指定されたタイプの証明書を実装する証明書ファクトリオブジェクトを作成します。
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

getProvider

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

getType

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

generateCertificate

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

指定された入力ストリーム inStream は、1 つの証明書を格納している必要があります。

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

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

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

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

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 をサポートしていない場合、このメソッドは入力ストリーム全体を使用します。

パラメータ:
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.CRL オブジェクトのコレクションビュー。空の場合もある
例外:
CRLException - 解析エラーの場合

JavaTM 2 Platform
Std. Ed. v1.3

バグや機能要求の報告
さらに詳しい API リファレンスおよび開発者ドキュメントについては、 Java 2 SDK SE Developer Documentation を参照してください。このドキュメントには、概念、用語の定義、回避策、 実用的なコード例など、開発者を対象にした詳細な解説が掲載されています。

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