|
JavaTM 2 Platform Std. Ed. v1.4.0 |
||||||||||
前のクラス 次のクラス | フレームあり フレームなし | ||||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |
java.lang.Object | +--java.security.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 オブジェクトを作成します。 |
KeySpec |
getKeySpec(Key key,
Class 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
algorithm
- 要求される鍵アルゴリズムの名前。標準アルゴリズムの名前については、「Java 暗号化アーキテクチャ API 仕様 & リファレンス」の付録 A を参照
NoSuchAlgorithmException
- 要求されるアルゴリズムが、デフォルトのプロバイダパッケージにも、検索したほかのプロバイダパッケージにもない場合public static KeyFactory getInstance(String algorithm, String provider) throws NoSuchAlgorithmException, NoSuchProviderException
algorithm
- 要求される鍵アルゴリズムの名前。標準アルゴリズムの名前については、「Java 暗号化アーキテクチャ API 仕様 & リファレンス」の付録 A を参照provider
- プロバイダ名
NoSuchAlgorithmException
- 指定されたプロバイダにアルゴリズムがない場合
NoSuchProviderException
- プロバイダが設定されていない場合
IllegalArgumentException
- プロバイダの名前が null か空の場合Provider
public static KeyFactory getInstance(String algorithm, Provider provider) throws NoSuchAlgorithmException
provider
は登録されている必要はありません。
algorithm
- 要求される鍵アルゴリズムの名前。標準アルゴリズムの名前については、「Java 暗号化アーキテクチャ API 仕様 & リファレンス」の付録 A を参照provider
- プロバイダ
NoSuchAlgorithmException
- 指定されたプロバイダにアルゴリズムがない場合
IllegalArgumentException
- provider
が null の場合Provider
public 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 KeySpec getKeySpec(Key key, Class keySpec) throws InvalidKeySpecException
keySpec
は、鍵データが返される仕様クラスを識別します。たとえば、それが DSAPublicKeySpec.class
の場合は、鍵データが DSAPublicKeySpec
クラスのインスタンスに返されることを示します。
key
- 鍵keySpec
- 鍵データが返される仕様クラス
InvalidKeySpecException
- 要求される鍵仕様が指定された鍵に不適切な場合、あるいは認識されないアルゴリズムや形式の鍵を指定した場合など、指定された鍵を処理できない場合public final Key translateKey(Key key) throws InvalidKeyException
key
- プロバイダが未知であるか、信頼できない鍵
InvalidKeyException
- 指定された鍵をこの鍵ファクトリで処理できない場合
|
JavaTM 2 Platform Std. Ed. v1.4.0 |
||||||||||
前のクラス 次のクラス | フレームあり フレームなし | ||||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |
Java、Java 2D、および JDBC は米国ならびにその他の国における米国 Sun Microsystems, Inc. の商標もしくは登録商標です。
Copyright 1993-2002 Sun Microsystems, Inc. 901 San Antonio Road
Palo Alto, California, 94303, U.S.A. All Rights Reserved.