public class AlgorithmParameterGenerator extends Object
AlgorithmParameterGenerator
クラスは、特定のアルゴリズムで使われるパラメータのセットを生成するために使用されます。 パラメータ・ジェネレータは、getInstance
ファクトリ・メソッド(指定したクラスのインスタンスを返すstaticメソッド)を使って構築されます。
パラメータを生成するオブジェクトは、2とおりの方法で初期化できます。アルゴリズム独立型とアルゴリズム固有型の方法です。
- アルゴリズム独立型の方法では、すべてのパラメータ・ジェネレータが「サイズ」および乱数発生の元という概念を共有するという特性を利用します。 サイズの単位は、すべてアルゴリズム・パラメータで普遍的に共通していますが、その解釈はアルゴリズムにより異なります。 たとえば、DSAアルゴリズムのパラメータの場合、「サイズ」はビットで表したプライム・モジュラスのサイズに一致します。 この方法を使用すると、アルゴリズム固有型のパラメータ生成値が(ある場合)、それらは指定したサイズから得られた値でない限り、デフォルトで標準値になります。
- もう1つの方法では、アルゴリズム固有型のセマンティックスを使って、パラメータ・ジェネレータ・オブジェクトを初期化します。これらのセマンティックスは、アルゴリズム固有型のパラメータ生成値のセットで表されます。 たとえば、Diffie-Hellmanシステム・パラメータを生成するには、通常、パラメータ生成値は、プライム・モジュラスおよびランダム指数のサイズで構成されます。どちらのサイズもビット数で指定します。
クライアントがinit
メソッドの呼出しで、明示的にAlgorithmParameterGeneratorを初期化しない場合には、各プロバイダはデフォルトで初期化を提供しドキュメント化する必要があります。 JDKプロバイダが使用するAlgorithmParameterGeneratorのデフォルトについては、「JDKプロバイダ」ドキュメントの「キー・サイズの制限」セクションを参照してください。 ただし、デフォルトはプロバイダごとに異なる場合があります。 また、プロバイダのデフォルト値は、将来のバージョンで変更される可能性があります。 そのため、プロバイダ固有のデフォルトに頼るのではなく、明示的にAlgorithmParameterGeneratorを初期化することをお勧めします。
Javaプラットフォームの実装は、すべて次の標準のAlgorithmParameterGenerator
アルゴリズムとカッコ内のキー・サイズをサポートする必要があります。
DiffieHellman
(1024, 2048)DSA
(1024, 2048)
- 導入されたバージョン:
- 1.2
- 関連項目:
AlgorithmParameters
,AlgorithmParameterSpec
-
コンストラクタのサマリー
コンストラクタ 修飾子 コンストラクタ 説明 protected
AlgorithmParameterGenerator(AlgorithmParameterGeneratorSpi paramGenSpi, Provider provider, String algorithm)
AlgorithmParameterGeneratorオブジェクトを作成します。 -
メソッドのサマリー
修飾子と型 メソッド 説明 AlgorithmParameters
generateParameters()
パラメータを生成します。String
getAlgorithm()
パラメータ・ジェネレータに関連したアルゴリズムの標準名を返します。static AlgorithmParameterGenerator
getInstance(String algorithm)
指定されたアルゴリズムで使用されるパラメータのセットを生成する、AlgorithmParameterGeneratorオブジェクトを返します。static AlgorithmParameterGenerator
getInstance(String algorithm, String provider)
指定されたアルゴリズムで使用されるパラメータのセットを生成する、AlgorithmParameterGeneratorオブジェクトを返します。static AlgorithmParameterGenerator
getInstance(String algorithm, Provider provider)
指定されたアルゴリズムで使用されるパラメータのセットを生成する、AlgorithmParameterGeneratorオブジェクトを返します。Provider
getProvider()
アルゴリズム・パラメータ・ジェネレータ・オブジェクトのプロバイダを返します。void
init(int size)
特定のサイズに対して、パラメータ・ジェネレータを初期化します。void
init(int size, SecureRandom random)
特定のサイズと乱数発生の元に対して、パラメータ・ジェネレータを初期化します。void
init(AlgorithmParameterSpec genParamSpec)
アルゴリズム固有型のパラメータ生成値のセットで、パラメータ・ジェネレータを初期化します。void
init(AlgorithmParameterSpec genParamSpec, SecureRandom random)
アルゴリズム固有型のパラメータ生成値のセットで、パラメータ・ジェネレータを初期化します。
-
コンストラクタの詳細
-
AlgorithmParameterGenerator
protected AlgorithmParameterGenerator(AlgorithmParameterGeneratorSpi paramGenSpi, Provider provider, String algorithm)AlgorithmParameterGeneratorオブジェクトを作成します。- パラメータ:
paramGenSpi
- 委譲先provider
- プロバイダalgorithm
- アルゴリズム
-
-
メソッドの詳細
-
getAlgorithm
public final String getAlgorithm()パラメータ・ジェネレータに関連したアルゴリズムの標準名を返します。- 戻り値:
- アルゴリズムの文字列名。
-
getInstance
public static AlgorithmParameterGenerator getInstance(String algorithm) throws NoSuchAlgorithmException指定されたアルゴリズムで使用されるパラメータのセットを生成する、AlgorithmParameterGeneratorオブジェクトを返します。このメソッドは、最優先のProviderから順に、登録済みのセキュリティProviderのリストをトラバースします。 指定されたアルゴリズムをサポートする最初のProviderのAlgorithmParameterGeneratorSpi実装をカプセル化する新しいAlgorithmParameterGeneratorオブジェクトが返されます。
登録済みプロバイダのリストは、
Security.getProviders()
メソッド経由で取得できます。- 実装上の注意:
- JDKリファレンス実装では、
jdk.security.provider.preferred
Security
プロパティを使用して、指定されたアルゴリズムの優先プロバイダの順序を決定します。 これは、Security.getProviders()
によって返されるプロバイダの順序とは異なる場合があります。 - パラメータ:
algorithm
- このパラメータ・ジェネレータに関連付けられたアルゴリズムの名前。 標準アルゴリズム名については、「Javaセキュリティ標準アルゴリズム名指定」のAlgorithmParameterGeneratorセクションを参照してください。- 戻り値:
- 新しい
AlgorithmParameterGenerator
オブジェクト - 例外:
NoSuchAlgorithmException
-Provider
が、指定されたアルゴリズムのAlgorithmParameterGeneratorSpi
実装をサポートしていない場合NullPointerException
-algorithm
がnull
である場合- 関連項目:
Provider
-
getInstance
public static AlgorithmParameterGenerator getInstance(String algorithm, String provider) throws NoSuchAlgorithmException, NoSuchProviderException指定されたアルゴリズムで使用されるパラメータのセットを生成する、AlgorithmParameterGeneratorオブジェクトを返します。指定されたプロバイダのAlgorithmParameterGeneratorSpi実装をカプセル化する新しいAlgorithmParameterGeneratorオブジェクトが返されます。 指定したプロバイダは、セキュリティ・プロバイダ・リストに登録する必要があります。
登録済みプロバイダのリストは、
Security.getProviders()
メソッド経由で取得できます。- パラメータ:
algorithm
- このパラメータ・ジェネレータに関連付けられたアルゴリズムの名前。 標準アルゴリズム名については、「Javaセキュリティ標準アルゴリズム名指定」のAlgorithmParameterGeneratorセクションを参照してください。provider
- Providerの文字列名。- 戻り値:
- 新しい
AlgorithmParameterGenerator
オブジェクト - 例外:
IllegalArgumentException
- プロバイダ名がnull
または空の場合NoSuchAlgorithmException
- 指定されたアルゴリズムのAlgorithmParameterGeneratorSpi
実装が、指定されたプロバイダから利用可能でない場合NoSuchProviderException
- 指定されたプロバイダがセキュリティ・プロバイダ・リストに登録されていない場合NullPointerException
-algorithm
がnull
である場合- 関連項目:
Provider
-
getInstance
public static AlgorithmParameterGenerator getInstance(String algorithm, Provider provider) throws NoSuchAlgorithmException指定されたアルゴリズムで使用されるパラメータのセットを生成する、AlgorithmParameterGeneratorオブジェクトを返します。指定されたProviderオブジェクトのAlgorithmParameterGeneratorSpi実装をカプセル化する新しいAlgorithmParameterGeneratorオブジェクトが返されます。 指定されたProviderオブジェクトは、プロバイダ・リストに登録する必要はありません。
- パラメータ:
algorithm
- このパラメータ・ジェネレータに関連付けられたアルゴリズムの文字列名。 標準アルゴリズム名については、「Javaセキュリティ標準アルゴリズム名指定」のAlgorithmParameterGeneratorセクションを参照してください。provider
-Provider
オブジェクト- 戻り値:
- 新しい
AlgorithmParameterGenerator
オブジェクト - 例外:
IllegalArgumentException
- 指定されたプロバイダがnull
の場合NoSuchAlgorithmException
- 指定されたアルゴリズムのAlgorithmParameterGeneratorSpi
実装が、指定されたProvider
オブジェクトから使用できない場合NullPointerException
-algorithm
がnull
である場合- 導入されたバージョン:
- 1.4
- 関連項目:
Provider
-
getProvider
public final Provider getProvider()アルゴリズム・パラメータ・ジェネレータ・オブジェクトのプロバイダを返します。- 戻り値:
- このアルゴリズム・パラメータ・ジェネレータ・オブジェクトのプロバイダ
-
init
public final void init(int size)特定のサイズに対して、パラメータ・ジェネレータを初期化します。 パラメータを生成する際には、インストールされているプロバイダのうち、もっとも優先順位の高いプロバイダのSecureRandom
の実装が、乱数発生の元として使用されます。SecureRandom
を提供するプロバイダが1つもインストールされていない場合は、システムが提供する乱数発生の元が使用されます。- パラメータ:
size
- サイズ(ビット数)。
-
init
public final void init(int size, SecureRandom random)特定のサイズと乱数発生の元に対して、パラメータ・ジェネレータを初期化します。- パラメータ:
size
- サイズ(ビット数)。random
- 乱数発生の元。
-
init
public final void init(AlgorithmParameterSpec genParamSpec) throws InvalidAlgorithmParameterExceptionアルゴリズム固有型のパラメータ生成値のセットで、パラメータ・ジェネレータを初期化します。 パラメータを生成する際には、インストールされているプロバイダのうち、もっとも優先順位の高いプロバイダのSecureRandom
の実装が、乱数発生の元として使用されます。SecureRandom
を提供するプロバイダが1つもインストールされていない場合は、システムが提供する乱数発生の元が使用されます。- パラメータ:
genParamSpec
- アルゴリズム固有型のパラメータ生成値のセット。- 例外:
InvalidAlgorithmParameterException
- 指定されたパラメータ生成値がこのパラメータ・ジェネレータに不適切な場合。
-
init
public final void init(AlgorithmParameterSpec genParamSpec, SecureRandom random) throws InvalidAlgorithmParameterExceptionアルゴリズム固有型のパラメータ生成値のセットで、パラメータ・ジェネレータを初期化します。- パラメータ:
genParamSpec
- アルゴリズム固有型のパラメータ生成値のセット。random
- 乱数発生の元。- 例外:
InvalidAlgorithmParameterException
- 指定されたパラメータ生成値がこのパラメータ・ジェネレータに不適切な場合。
-
generateParameters
public final AlgorithmParameters generateParameters()パラメータを生成します。- 戻り値:
- 新しいAlgorithmParametersオブジェクト。
-