public class KeyGenerator extends Object
鍵ジェネレータは、このクラスの getInstance
クラスメソッドの 1 つを使用して構築されます。
KeyGenerator オブジェクトは再使用できます。つまり、鍵の生成後、同じ KeyGenerator オブジェクトを再使用してさらに鍵を生成することができます。
鍵の生成方法には、アルゴリズム独立型とアルゴリズム固有型の 2 つがあります。この 2 つの唯一の相違点は、オブジェクトの初期化にあります。
すべての鍵ジェネレータが、キーサイズおよび乱数発生の元の概念を共有します。この KeyGenerator クラスには、普遍的に共有されるこれら 2 つの引数の型をとる init
メソッドが存在します。また、引数に keysize
だけをとり、乱数発生の元として、もっとも高い優先順位でインストールされているプロバイダの SecureRandom の実装を使用する init メソッド (SecureRandom の実装を提供するプロバイダが 1 つもインストールされていない場合は、システムが提供する乱数発生の元を使用)、および乱数発生の元だけをとる init メソッドもあります。
上記のアルゴリズムに依存しない init
メソッドを呼び出した場合、パラメータが指定されないため、それぞれの鍵に関連したアルゴリズム固有のパラメータが存在する場合、これをどのように扱うかはプロバイダに任されます。
アルゴリズム固有のパラメータのセットがすでに存在する状況では、AlgorithmParameterSpec
引数を取る 2 つの init
メソッドが存在します。このうち一方は引数に SecureRandom
もとりますが、もう一方は、乱数発生の元として、もっとも高い優先順位でインストールされているプロバイダの SecureRandom の実装を使用します (SecureRandom の実装を提供するプロバイダが 1 つもインストールされていない場合は、システムが提供する乱数発生の元を使用)。
クライアントが (init
メソッドの呼び出しによって) KeyGenerator を明示的に初期化しない場合は、各プロバイダがデフォルトの初期化を提供 (および文書化) する必要があります。
Java プラットフォームの実装は、すべて次の標準の KeyGenerator
アルゴリズムと括弧内の鍵サイズをサポートする必要があります。
SecretKey
修飾子 | コンストラクタと説明 |
---|---|
protected |
KeyGenerator(KeyGeneratorSpi keyGenSpi, Provider provider, String algorithm)
KeyGenerator オブジェクトを生成します。
|
修飾子と型 | メソッドと説明 |
---|---|
SecretKey |
generateKey()
秘密鍵を生成します。
|
String |
getAlgorithm()
この
KeyGenerator オブジェクトのアルゴリズム名を返します。 |
static KeyGenerator |
getInstance(String algorithm)
指定されたアルゴリズムの秘密鍵を生成する
KeyGenerator オブジェクトを返します。 |
static KeyGenerator |
getInstance(String algorithm, Provider provider)
指定されたアルゴリズムの秘密鍵を生成する
KeyGenerator オブジェクトを返します。 |
static KeyGenerator |
getInstance(String algorithm, String provider)
指定されたアルゴリズムの秘密鍵を生成する
KeyGenerator オブジェクトを返します。 |
Provider |
getProvider()
この
KeyGenerator オブジェクトのプロバイダを返します。 |
void |
init(AlgorithmParameterSpec params)
この鍵ジェネレータを、指定されたパラメータセットを使って初期化します。
|
void |
init(AlgorithmParameterSpec params, SecureRandom random)
指定されたパラメータセットとユーザーが提供する乱数発生の元を使って、この鍵ジェネレータを初期化します。
|
void |
init(int keysize)
この鍵ジェネレータを特定の鍵サイズに応じて初期化します。
|
void |
init(int keysize, SecureRandom random)
ユーザーが提供する乱数発生の元を使って、この鍵ジェネレータを特定の鍵サイズに応じて初期化します。
|
void |
init(SecureRandom random)
この鍵ジェネレータを初期化します。
|
protected KeyGenerator(KeyGeneratorSpi keyGenSpi, Provider provider, String algorithm)
keyGenSpi
- 委譲先provider
- プロバイダalgorithm
- アルゴリズムpublic final String getAlgorithm()
KeyGenerator
オブジェクトのアルゴリズム名を返します。
これは、この KeyGenerator
オブジェクトを作成した getInstance
呼び出しのいずれかに指定された名前と同じです。
KeyGenerator
オブジェクトのアルゴリズム名。public static final KeyGenerator getInstance(String algorithm) throws NoSuchAlgorithmException
KeyGenerator
オブジェクトを返します。
このメソッドは、最優先の Provider から順に、登録済みのセキュリティー Provider のリストをトラバースします。指定されたアルゴリズムをサポートする最初のプロバイダの KeyGeneratorSpi 実装をカプセル化する新しい KeyGenerator オブジェクトが返されます。
登録済みプロバイダのリストは、Security.getProviders()
メソッド経由で取得できます。
algorithm
- 要求された鍵アルゴリズムの標準名。標準のアルゴリズム名については、Java 暗号化アーキテクチャー標準アルゴリズム名のドキュメントの KeyGenerator のセクションを参照。KeyGenerator
オブジェクト。NullPointerException
- 指定されたアルゴリズムが null である場合。NoSuchAlgorithmException
- 指定したアルゴリズムの KeyGeneratorSpi 実装をサポートするプロバイダが存在しない場合。Provider
public static final KeyGenerator getInstance(String algorithm, String provider) throws NoSuchAlgorithmException, NoSuchProviderException
KeyGenerator
オブジェクトを返します。
指定されたプロバイダからの KeyGeneratorSpi の実装をカプセル化する新しい KeyGenerator オブジェクトが返されます。指定したプロバイダは、セキュリティープロバイダリストに登録する必要があります。
登録済みプロバイダのリストは、Security.getProviders()
メソッド経由で取得できます。
algorithm
- 要求された鍵アルゴリズムの標準名。標準のアルゴリズム名については、Java 暗号化アーキテクチャー標準アルゴリズム名のドキュメントの KeyGenerator のセクションを参照。provider
- プロバイダ名KeyGenerator
オブジェクト。NullPointerException
- 指定されたアルゴリズムが null である場合。NoSuchAlgorithmException
- 指定されたプロバイダに指定されたアルゴリズムの KeyGeneratorSpi の実装がない場合。NoSuchProviderException
- 指定されたプロバイダがセキュリティープロバイダリストに登録されていない場合IllegalArgumentException
- provider
が null または空の場合Provider
public static final KeyGenerator getInstance(String algorithm, Provider provider) throws NoSuchAlgorithmException
KeyGenerator
オブジェクトを返します。
指定された Provider オブジェクトからの KeyGeneratorSpi の実装をカプセル化する新しい KeyGenerator オブジェクトが返されます。指定された Provider オブジェクトは、プロバイダリストに登録する必要はありません。
algorithm
- 要求された鍵アルゴリズムの標準名。標準のアルゴリズム名については、Java 暗号化アーキテクチャー標準アルゴリズム名のドキュメントの KeyGenerator のセクションを参照。provider
- プロバイダKeyGenerator
オブジェクト。NullPointerException
- 指定されたアルゴリズムが null である場合。NoSuchAlgorithmException
- 指定された Provider オブジェクトに指定されたアルゴリズムの KeyGeneratorSpi の実装がない場合。IllegalArgumentException
- provider
が null の場合Provider
public final Provider getProvider()
KeyGenerator
オブジェクトのプロバイダを返します。KeyGenerator
オブジェクトのプロバイダpublic final void init(SecureRandom random)
random
- このジェネレータの乱数発生の元public final void init(AlgorithmParameterSpec params) throws InvalidAlgorithmParameterException
この鍵ジェネレータが乱数バイトを必要とする場合は、インストールされているプロバイダのうち、もっとも優先順位の高いプロバイダの
の実装を乱数発生の元として使用して乱数バイトを取得します。SecureRandom を提供するプロバイダが 1 つもインストールされていない場合は、システムが提供する乱数発生の元が使用されます。SecureRandom
params
- 鍵ジェネレータのパラメータInvalidAlgorithmParameterException
- 指定されたパラメータがこの鍵ジェネレータに不適切な場合public final void init(AlgorithmParameterSpec params, SecureRandom random) throws InvalidAlgorithmParameterException
params
- 鍵ジェネレータのパラメータrandom
- この鍵ジェネレータの乱数発生の元InvalidAlgorithmParameterException
- params
がこの鍵ジェネレータに不適切な場合public final void init(int keysize)
この鍵ジェネレータが乱数バイトを必要とする場合は、インストールされているプロバイダのうち、もっとも優先順位の高いプロバイダの
の実装を乱数発生の元として使用して乱数バイトを取得します。SecureRandom を提供するプロバイダが 1 つもインストールされていない場合は、システムが提供する乱数発生の元が使用されます。SecureRandom
keysize
- 鍵サイズビット長で指定されたアルゴリズム固有のメトリックスInvalidParameterException
- 鍵サイズが間違っているか、サポートされていない場合。public final void init(int keysize, SecureRandom random)
keysize
- 鍵サイズビット長で指定されたアルゴリズム固有のメトリックスrandom
- この鍵ジェネレータの乱数発生の元InvalidParameterException
- 鍵サイズが間違っているか、サポートされていない場合。public final SecretKey generateKey()
バグまたは機能を送信
詳細な API リファレンスおよび開発者ドキュメントについては、Java SE のドキュメントを参照してください。そのドキュメントには、概念的な概要、用語の定義、回避方法、有効なコード例などの、開発者を対象にしたより詳細な説明が含まれています。
Copyright © 1993, 2013, Oracle and/or its affiliates. All rights reserved.