| 
 | JavaTM Platform Standard Ed. 6 | |||||||||
| 前のクラス 次のクラス | フレームあり フレームなし | |||||||||
| 概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド | |||||||||
java.lang.Objectjava.security.KeyFactory
public class KeyFactory
鍵ファクトリは、Key 型の不透明な暗号鍵である「鍵」と、基本の鍵データの透明な表現である「鍵仕様」との間の変換を行うために使用します。
 
鍵ファクトリは、双方向性があります。つまり、指定した鍵仕様 (鍵データ) から不透明な鍵オブジェクトを構築することも、適切な形式で鍵オブジェクトの基本の鍵データを取り出すこともできます。
 同一の鍵に対して、複数の互換性のある鍵仕様が存在することがあります。たとえば DSA 公開鍵は、DSAPublicKeySpec または X509EncodedKeySpec を使って指定できます。鍵ファクトリは、互換性のある鍵仕様間の変換に使用できます。
 
次に、鍵ファクトリを使って、DSA 公開鍵を符号化した状態からインスタンスを生成する例を示します。Alice が Bob からデジタル署名を受け取ったとします。Bob は、彼の署名を検証するための符号化形式の公開鍵も送りました。Alice は、これらを次のように処理します。
 X509EncodedKeySpec bobPubKeySpec = new X509EncodedKeySpec(bobEncodedPubKey);
 KeyFactory keyFactory = KeyFactory.getInstance("DSA");
 PublicKey bobPubKey = keyFactory.generatePublic(bobPubKeySpec);
 Signature sig = Signature.getInstance("DSA");
 sig.initVerify(bobPubKey);
 sig.update(data);
 sig.verify(signature);
 
Key, 
PublicKey, 
PrivateKey, 
KeySpec, 
DSAPublicKeySpec, 
X509EncodedKeySpec| コンストラクタの概要 | |
|---|---|
| protected  | KeyFactory(KeyFactorySpi keyFacSpi,
           Provider provider,
           String algorithm)KeyFactory オブジェクトを作成します。 | 
| メソッドの概要 | ||
|---|---|---|
|  PrivateKey | generatePrivate(KeySpec keySpec)指定された鍵仕様 (鍵データ) から非公開鍵オブジェクトを生成します。 | |
|  PublicKey | generatePublic(KeySpec keySpec)指定された鍵仕様 (鍵データ) から公開鍵オブジェクトを生成します。 | |
|  String | getAlgorithm()この KeyFactory に関連したアルゴリズムの名前を取得します。 | |
| static KeyFactory | getInstance(String algorithm)指定のアルゴリズムの公開鍵または非公開鍵を変換する KeyFactory オブジェクトを返します。 | |
| static KeyFactory | getInstance(String algorithm,
            Provider provider)指定のアルゴリズムの公開鍵または非公開鍵を変換する KeyFactory オブジェクトを返します。 | |
| static KeyFactory | getInstance(String algorithm,
            String provider)指定のアルゴリズムの公開鍵または非公開鍵を変換する KeyFactory オブジェクトを返します。 | |
| 
 | getKeySpec(Key key,
           Class<T> keySpec)指定された鍵オブジェクトの仕様 (鍵データ) を返します。 | |
|  Provider | getProvider()この鍵ファクトリオブジェクトのプロバイダを返します。 | |
|  Key | translateKey(Key key)プロバイダが未知であるか、信頼できない可能性がある鍵オブジェクトを、この鍵ファクトリの対応する鍵オブジェクトに変換します。 | |
| クラス java.lang.Object から継承されたメソッド | 
|---|
| clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait | 
| コンストラクタの詳細 | 
|---|
protected KeyFactory(KeyFactorySpi keyFacSpi,
                     Provider provider,
                     String algorithm)
keyFacSpi - 委譲先provider - プロバイダalgorithm - この KeyFactory に関連付けるアルゴリズムの名前| メソッドの詳細 | 
|---|
public static KeyFactory getInstance(String algorithm)
                              throws NoSuchAlgorithmException
このメソッドは、最優先の Provider から順に、登録済みのセキュリティー Provider のリストをトラバースします。指定されたアルゴリズムをサポートする最初の Provider の KeyFactorySpi 実装をカプセル化する新しい KeyFactory オブジェクトが返されます。
 登録済みプロバイダのリストは、Security.getProviders() メソッド経由で取得できます。
algorithm - 要求される鍵アルゴリズムの名前。アルゴリズムの標準名については、「Java 暗号化アーキテクチャー API 仕様 & リファレンス」の付録 A を参照
NoSuchAlgorithmException - 指定されたアルゴリズムの KeyFactorySpi 実装をサポートする Provider が存在しない場合Provider
public static KeyFactory getInstance(String algorithm,
                                     String provider)
                              throws NoSuchAlgorithmException,
                                     NoSuchProviderException
指定されたプロバイダの KeyFactorySpi 実装をカプセル化する新しい KeyFactory オブジェクトが返されます。指定したプロバイダは、セキュリティープロバイダリストに登録する必要があります。
 登録済みプロバイダのリストは、Security.getProviders() メソッド経由で取得できます。
algorithm - 要求される鍵アルゴリズムの名前。アルゴリズムの標準名については、「Java 暗号化アーキテクチャー API 仕様 & リファレンス」の付録 A を参照provider - プロバイダ名
NoSuchAlgorithmException - 指定されたプロバイダに指定されたアルゴリズムの KeyFactorySpi 実装がない場合
NoSuchProviderException - 指定されたプロバイダがセキュリティープロバイダリストに登録されていない場合
IllegalArgumentException - プロバイダの名前が null か空の場合Provider
public static KeyFactory getInstance(String algorithm,
                                     Provider provider)
                              throws NoSuchAlgorithmException
指定された Provider オブジェクトの KeyFactorySpi 実装をカプセル化する新しい KeyFactory オブジェクトが返されます。指定された Provider オブジェクトは、プロバイダリストに登録する必要はありません。
algorithm - 要求される鍵アルゴリズムの名前。アルゴリズムの標準名については、「Java 暗号化アーキテクチャー API 仕様 & リファレンス」の付録 A を参照provider - プロバイダ
NoSuchAlgorithmException - 指定された Provider オブジェクトに指定されたアルゴリズムの KeyFactorySpi 実装がない場合
IllegalArgumentException - 指定されたプロバイダが null の場合Providerpublic final Provider getProvider()
public final String getAlgorithm()
public final PublicKey generatePublic(KeySpec keySpec)
                               throws InvalidKeySpecException
keySpec - 公開鍵の仕様 (鍵データ)
InvalidKeySpecException - 指定された鍵仕様がこの鍵ファクトリによる公開鍵の生成に不適切な場合
public final PrivateKey generatePrivate(KeySpec keySpec)
                                 throws InvalidKeySpecException
keySpec - 非公開鍵の仕様 (鍵データ)
InvalidKeySpecException - 指定された鍵仕様がこの鍵ファクトリによる非公開鍵の生成に不適切な場合
public final <T extends KeySpec> T getKeySpec(Key key,
                                              Class<T> keySpec)
                                   throws InvalidKeySpecException
 keySpec は、鍵データが返される仕様クラスを識別します。たとえば、DSAPublicKeySpec.class は、鍵のデータが DSAPublicKeySpec クラスのインスタンスに返されるべきであることを指示します。
key - 鍵keySpec - 鍵データが返される仕様クラス
InvalidKeySpecException - 要求される鍵仕様が指定された鍵に不適切な場合、または認識されないアルゴリズムや形式の鍵を指定した場合など、指定された鍵を処理できない場合
public final Key translateKey(Key key)
                       throws InvalidKeyException
key - プロバイダが未知であるか、信頼できない鍵
InvalidKeyException - 指定された鍵をこの鍵ファクトリで処理できない場合| 
 | JavaTM Platform Standard Ed. 6 | |||||||||
| 前のクラス 次のクラス | フレームあり フレームなし | |||||||||
| 概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド | |||||||||
Copyright 2009 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms. Documentation Redistribution Policy も参照してください。