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