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.509CertPath符号化にも対応する必要があります。
PKCS7PkiPathCertificate, X509Certificate, CertPath, CRL, X509CRL| 修飾子 | コンストラクタ | 説明 |
|---|---|---|
protected |
CertificateFactory(CertificateFactorySpi certFacSpi, Provider provider, String type) |
指定されたタイプのCertificateFactoryオブジェクトを作成し、指定されたプロバイダの実装(SPIオブジェクト)をそこにカプセル化します。
|
| 修飾子と型 | メソッド | 説明 |
|---|---|---|
Certificate |
generateCertificate(InputStream inStream) |
証明書オブジェクトを生成し、入力ストリーム
inStreamから読み込まれたデータで初期化します。 |
Collection<? extends Certificate> |
generateCertificates(InputStream inStream) |
指定された入力ストリーム
inStreamから読み込まれた証明書のコレクション・ビュー(空の場合もある)を返します。 |
CertPath |
generateCertPath(InputStream inStream) |
CertPathオブジェクトを生成し、InputStreamであるinStreamから読み込まれたデータで初期化します。 |
CertPath |
generateCertPath(InputStream inStream, String encoding) |
CertPathオブジェクトを生成し、InputStreamであるinStreamから読み込まれたデータで初期化します。 |
CertPath |
generateCertPath(List<? extends Certificate> certificates) |
CertPathオブジェクトを生成し、CertificateのListで初期化します。 |
CRL |
generateCRL(InputStream inStream) |
証明書の取消しリスト(CRL)オブジェクトを生成し、入力ストリーム
inStreamから読み込まれたデータで初期化します。 |
Collection<? extends CRL> |
generateCRLs(InputStream inStream) |
指定された入力ストリーム
inStreamから読み込まれたCRLのコレクション・ビュー(空の場合もある)を返します。 |
Iterator<String> |
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() |
この証明書ファクトリに関連した証明書タイプの名前を返します。
|
protected CertificateFactory(CertificateFactorySpi certFacSpi, Provider provider, String type)
certFacSpi - プロバイダの実装。provider - プロバイダ。type - 証明書タイプ。public static final CertificateFactory getInstance(String type) throws CertificateException
このメソッドは、最優先のProviderから順に、登録済みのセキュリティProviderのリストをトラバースします。 指定されたタイプをサポートする最初のProviderのCertificateFactorySpi実装をカプセル化する新しいCertificateFactoryオブジェクトが返されます。
登録済みプロバイダのリストは、Security.getProviders()メソッド経由で取得できます。
type - 要求された証明書タイプの名前。 標準の証明書タイプについては、Java暗号化アーキテクチャ標準アルゴリズム名のドキュメントのCertificateFactoryのセクションを参照。 CertificateException - 指定されたタイプのCertificateFactorySpi実装をサポートするプロバイダが存在しない場合。Providerpublic static final CertificateFactory getInstance(String type, String provider) throws CertificateException, NoSuchProviderException
指定されたプロバイダのCertificateFactorySpi実装をカプセル化する新しいCertificateFactoryオブジェクトが返されます。 指定したプロバイダは、セキュリティ・プロバイダ・リストに登録する必要があります。
登録済みプロバイダのリストは、Security.getProviders()メソッド経由で取得できます。
type - 証明書タイプ。 標準の証明書タイプについては、Java暗号化アーキテクチャ標準アルゴリズム名のドキュメントのCertificateFactoryのセクションを参照。 provider - プロバイダ名。CertificateException - 指定されたプロバイダに指定されたアルゴリズムのCertificateFactorySpiの実装がない場合。NoSuchProviderException - 指定されたプロバイダがセキュリティ・プロバイダ・リストに登録されていない場合。IllegalArgumentException - プロバイダ名がnullまたは空の場合。Providerpublic static final CertificateFactory getInstance(String type, Provider provider) throws CertificateException
指定されたProviderオブジェクトのCertificateFactorySpi実装をカプセル化する新しいCertificateFactoryオブジェクトが返されます。 指定されたProviderオブジェクトは、プロバイダ・リストに登録する必要はありません。
type - 証明書タイプ。 標準の証明書タイプについては、Java暗号化アーキテクチャ標準アルゴリズム名のドキュメントのCertificateFactoryのセクションを参照。 provider - プロバイダ。CertificateException - 指定されたProviderオブジェクトに指定されたアルゴリズムのCertificateFactorySpiの実装がない場合。IllegalArgumentException - providerがnullの場合。Providerpublic final Provider getProvider()
public final String getType()
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 - 構文解析エラーの場合。public final Iterator<String> getCertPathEncodings()
CertPathのエンコーディングの繰返しを返します。繰返しの最初はデフォルトのエンコーディングになります。 標準の符号化名とその形式については、Java暗号化アーキテクチャ標準アルゴリズム名のドキュメントのCertPath符号化のセクションを参照。
返されたIteratorをremoveメソッドで変更しようとすると、UnsupportedOperationExceptionがスローされます。
CertPath符号化の名前(String)を反復するIteratorpublic final CertPath generateCertPath(InputStream inStream) throws CertificateException
CertPathオブジェクトを生成し、InputStreamであるinStreamから読み込まれたデータで初期化します。 データはデフォルトの符号化がされていると仮定されます。 デフォルトの符号化の名前は、getCertPathEncodingsメソッドで返されるIteratorの最初の要素になります。 inStream - データが含まれるInputStreamInputStreamからのデータで初期化されたCertPathCertificateException - 復号化中に例外が発生した場合public final CertPath generateCertPath(InputStream inStream, String encoding) throws CertificateException
CertPathオブジェクトを生成し、InputStreamであるinStreamから読み込まれたデータで初期化します。 データは指定した符号化がされていると仮定されます。 標準の符号化名とその形式については、Java暗号化アーキテクチャ標準アルゴリズム名のドキュメントのCertPath符号化のセクションを参照。 inStream - データが含まれるInputStreamencoding - データで使用される符号化InputStreamからのデータで初期化されたCertPathCertificateException - 復号化中に例外が発生した場合、または要求された符号化がサポートされていない場合public final CertPath generateCertPath(List<? extends Certificate> certificates) throws CertificateException
CertPathオブジェクトを生成し、CertificateのListで初期化します。
提供される証明書は、CertificateFactoryでサポートされているタイプである必要があります。 これらは、指定されたListオブジェクトからコピーされます。
certificates - CertificateのListCertPathCertificateException - 例外が発生する場合public final Collection<? extends Certificate> 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 - 証明書を持つ入力ストリーム。CertificateException - 構文解析エラーの場合。public final CRL generateCRL(InputStream inStream) throws CRLException
inStreamから読み込まれたデータで初期化します。
この証明書ファクトリによってサポートされている特殊な形式のCRLを利用するために、返されたCRLオブジェクトを対応するCRLクラスに型キャストできます。 たとえば、この証明書ファクトリがX.509 CRLを実装する場合、返されたCRLオブジェクトをX509CRLクラスに型キャストできます。
指定された入力ストリームがmarkおよびresetをサポートしていない場合、このメソッドは入力ストリーム全体を使用します。 そうでない場合、このメソッドが呼び出されるたびにCRLを1つ消費し、入力ストリームの読込み位置は、固有のend-of-CRLマーカーのあとで次に使用可能なバイトに設定されます。 固有のend-of-CRLマーカー(EOF以外)が入力ストリームのデータに含まれず、CRLが構文解析されたあとでデータが続く場合は、CRLExceptionがスローされます。
inStream - CRLデータを持つ入力ストリーム。CRLException - 構文解析エラーの場合。public final Collection<? extends CRL> 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を持つ入力ストリーム。CRLException - 構文解析エラーの場合。 バグまたは機能を送信
詳細なAPIリファレンスおよび開発者ドキュメントについては、Java SEのドキュメントを参照してください。 そのドキュメントには、概念的な概要、用語の定義、回避方法、有効なコード例などの、開発者を対象にしたより詳細な説明が含まれています。
Copyright © 1993, 2025, Oracle and/or its affiliates. All rights reserved. Use is subject to license terms. Documentation Redistribution Policyも参照してください。