モジュール java.base
パッケージ java.security

クラスKeyFactory

java.lang.Object
java.security.KeyFactory

public class KeyFactory extends Object
キー・ファクトリは、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);
 

Javaプラットフォームの実装は、すべて次の標準のKeyFactoryアルゴリズムをサポートする必要があります。

  • DiffieHellman
  • DSA
  • RSA
これらのアルゴリズムについては、Javaセキュリティ標準アルゴリズム名仕様の「KeyFactoryセクション」を参照してください。 サポートされているその他のアルゴリズムについては、実装のリリース・ドキュメントを参照してください。

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