モジュール java.base
パッケージ 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);
 }
 

Javaプラットフォームの実装は、すべて次の標準のCertificateFactoryタイプをサポートする必要があります。

  • X.509
また、次の標準のCertPath符号化にも対応する必要があります。
  • PKCS7
  • PkiPath
タイプおよびエンコーディングについては、Javaセキュリティ標準アルゴリズム名仕様の「CertificateFactoryセクション」および「CertPathエンコーディング」セクションを参照してください。 サポートされているその他のタイプや符号化については、実装のリリース・ノートを参照してください。

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