クラスCertificateFactory
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符号化にも対応する必要があります。
PKCS7PkiPath
- 導入されたバージョン:
- 1.2
- 関連 目:
-
コンストラクタのサマリー
コンストラクタ修飾子コンストラクタ説明protectedCertificateFactory(CertificateFactorySpi certFacSpi, Provider provider, String type) 指定されたタイプのCertificateFactoryオブジェクトを作成し、指定されたプロバイダの実装(SPIオブジェクト)をそこにカプセル化します。 -
メソッドのサマリー
修飾子と型メソッド説明final CertificategenerateCertificate(InputStream inStream) 証明書オブジェクトを生成し、入力ストリーinStreamから読み込まれたデータで初期化します。final Collection<? extends Certificate> generateCertificates(InputStream inStream) 指定された入力ストリーinStreamから読み込まれた証明書のコレクション・ビュー(空の 合もある)を返します。final CertPathgenerateCertPath(InputStream inStream) CertPathオブジェクトを生成し、InputStreamであるinStreamから読み込まれたデータで初期化します。final CertPathgenerateCertPath(InputStream inStream, String encoding) CertPathオブジェクトを生成し、InputStreamであるinStreamから読み込まれたデータで初期化します。final CertPathgenerateCertPath(List<? extends Certificate> certificates) CertPathオブジェクトを生成し、CertificateのListで初期化します。final CRLgenerateCRL(InputStream inStream) 証明書の取消しリスト(CRL)オブジェクトを生成し、入力ストリーinStreamから読み込まれたデータで初期化します。final Collection<? extends CRL> generateCRLs(InputStream inStream) 指定された入力ストリーinStreamから読み込まれたCRLのコレクション・ビュー(空の 合もある)を返します。この証明書ファクトリでサポートするCertPathのエンコーディングの繰返しを返します。繰返しの最初はデフォルトのエンコーディングになります。static final CertificateFactorygetInstance(String type) 指定されたタイプの証明書を実装する証明書ファクトリ・オブジェクトを返します。static final CertificateFactorygetInstance(String type, String provider) 指定されたタイプの証明書ファクトリ・オブジェクトを返します。static final CertificateFactorygetInstance(String type, Provider provider) 指定されたタイプの証明書ファクトリ・オブジェクトを返します。final Providerこの証明書ファクトリのプロバイダを返します。final StringgetType()この証明書ファクトリに関連した証明書タイプの名前を返します。
-
コンストラクタの詳細
-
CertificateFactory
protected CertificateFactory(CertificateFactorySpi certFacSpi, Provider provider, String type) 指定されたタイプのCertificateFactoryオブジェクトを作成し、指定されたプロバイダの実装(SPIオブジェクト)をそこにカプセル化します。- パラメータ:
certFacSpi- プロバイダの実装。provider- プロバイダtype- 証明書タイプ。
-
-
メソッドの詳細
-
getInstance
public static final CertificateFactory getInstance(String type) throws CertificateException 指定されたタイプの証明書を実装する証明書ファクトリ・オブジェクトを返します。このメソッドは、最優先のProviderから に、登録済みのセキュリティProviderのリストをトラバースします。 指定されたタイプをサポートする最初のProviderのCertificateFactorySpi実装をカプセル化する新しいCertificateFactoryオブジェクトが返されます。
登録済みプロバイダのリストは、
Security.getProviders()メソッド経由で取得できます。- 実装上のノート:
- JDKリファレンス実装では、さらに
jdk.security.provider.preferredSecurityプロパティを使用して、指定したアルゴリズ の優先プロバイダ 序を決定します。 これは、Security.getProviders()によって返されるプロバイダの 序とは異なる 合があります。 - パラメータ:
type- 要求された証明書タイプの名前。 標準証明書タイプの詳細は、「Javaセキュリティ標準アルゴリズ 名仕様」のCertificateFactoryの を参照してく さい。- 戻り値:
- 指定されたタイプの証明書ファクトリ・オブジェクト
- スロー:
CertificateException-Providerが、指定された型のCertificateFactorySpi実装をサポートしていない 合NullPointerException-typeがnullである 合- 関連 目:
-
getInstance
public static final CertificateFactory getInstance(String type, String provider) throws CertificateException, NoSuchProviderException 指定されたタイプの証明書ファクトリ・オブジェクトを返します。指定されたプロバイダのCertificateFactorySpi実装をカプセル化する新しいCertificateFactoryオブジェクトが返されます。 指定したプロバイダは、セキュリティ・プロバイダ・リストに登録する必要があります。
登録済みプロバイダのリストは、
Security.getProviders()メソッド経由で取得できます。- パラメータ:
type- 証明書タイプ。 標準証明書タイプの詳細は、「Javaセキュリティ標準アルゴリズ 名仕様」のCertificateFactoryの を参照してく さい。provider- プロバイダ名。- 戻り値:
- 指定されたタイプの証明書ファクトリ・オブジェクト
- スロー:
CertificateException- 指定されたアルゴリズ のCertificateFactorySpi実装が、指定されたプロバイダから利用可能でない 合IllegalArgumentException- プロバイダ名がnullまたは空の 合NoSuchProviderException- 指定されたプロバイダがセキュリティ・プロバイダ・リストに登録されていない 合NullPointerException-typeがnullである 合- 関連 目:
-
getInstance
public static final CertificateFactory getInstance(String type, Provider provider) throws CertificateException 指定されたタイプの証明書ファクトリ・オブジェクトを返します。指定されたProviderオブジェクトのCertificateFactorySpi実装をカプセル化する新しいCertificateFactoryオブジェクトが返されます。 指定されたProviderオブジェクトは、プロバイダ・リストに登録する必要はありません。
- パラメータ:
type- 証明書タイプ。 標準証明書タイプの詳細は、「Javaセキュリティ標準アルゴリズ 名仕様」のCertificateFactoryの を参照してく さい。provider- プロバイダ- 戻り値:
- 指定されたタイプの証明書ファクトリ・オブジェクト
- スロー:
CertificateException- 指定されたアルゴリズ のCertificateFactorySpi実装が、指定されたProviderオブジェクトから使用できない 合IllegalArgumentException-providerがnullの 合NullPointerException-typeがnullである 合- 導入されたバージョン:
- 1.4
- 関連 目:
-
getProvider
-
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
この証明書ファクトリでサポートするCertPathのエンコーディングの繰返しを返します。繰返しの最初はデフォルトのエンコーディングになります。 標準エンコーディング名とその形式の詳細は、「Javaセキュリティ標準アルゴリズ 名仕様」の「CertPathエンコーディング」の を参照してく さい。返された
Iteratorをremoveメソッドで変更しようとすると、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セキュリティ標準アルゴリズ 名仕様」の「CertPathエンコーディング」の を参照してく さい。- パラメータ:
inStream- データが含まれるInputStreamencoding- データで使用される符号化- 戻り値:
InputStreamからのデータで初期化されたCertPath- スロー:
CertificateException- 復号化中に例外が発生した 合、または要求された符号化がサポートされていない 合- 導入されたバージョン:
- 1.4
-
generateCertPath
public final CertPath generateCertPath(List<? extends Certificate> certificates) throws CertificateException CertPathオブジェクトを生成し、CertificateのListで初期化します。提供される証明書は、
CertificateFactoryでサポートされているタイプである必要があります。 これらは、指定されたListオブジェクトからコピーされます。- パラメータ:
certificates-CertificateのList- 戻り値:
- 提供された証明書のリストで初期化された
CertPath - スロー:
CertificateException- 例外が発生する 合- 導入されたバージョン:
- 1.4
-
generateCertificates
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- 証明書を持つ入力ストリー 。- 戻り値:
- 入力ストリー からのデータを使って初期化された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以外)が入力ストリー のデータに含まれず、CRLが構文解析されたあとでデータが続く 合は、CRLExceptionがスローされます。- パラメータ:
inStream- CRLデータを持つ入力ストリー 。- 戻り値:
- 入力ストリー のデータを使って初期化されたCRLオブジェクト。
- スロー:
CRLException- 構文解析エラーの 合。
-
generateCRLs
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を持つ入力ストリー 。- 戻り値:
- 入力ストリー からのデータを使って初期化されたjava.security.cert.CRLオブジェクトのコレクション・ビュー。空の 合もある。
- スロー:
CRLException- 構文解析エラーの 合。
-