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

クラスAlgorithmParameterGenerator

java.lang.Object
java.security.AlgorithmParameterGenerator

public class AlgorithmParameterGenerator extends Object
AlgorithmParameterGeneratorクラスは、特定のアルゴリズムで使われるパラメータのセットを生成するために使用されます。 パラメータ・ジェネレータは、getInstanceファクトリ・メソッド(指定したクラスのインスタンスを返すstaticメソッド)を使って構築されます。

パラメータを生成するオブジェクトは、2とおりの方法で初期化できます。アルゴリズム独立型とアルゴリズム固有型の方法です。

  • アルゴリズム独立型の方法では、すべてのパラメータ・ジェネレータが「サイズ」および乱数発生の元という概念を共有するという特性を利用します。 サイズの単位は、すべてアルゴリズム・パラメータで普遍的に共通していますが、その解釈はアルゴリズムにより異なります。 たとえば、DSAアルゴリズムのパラメータの場合、「サイズ」はビットで表したプライム・モジュラスのサイズに一致します。 この方法を使用すると、アルゴリズム固有型のパラメータ生成値が(ある場合)、それらは指定したサイズから得られた値でない限り、デフォルトで標準値になります。
  • もう1つの方法では、アルゴリズム固有型のセマンティックスを使って、パラメータ・ジェネレータ・オブジェクトを初期化します。これらのセマンティックスは、アルゴリズム固有型のパラメータ生成値のセットで表されます。 たとえば、Diffie-Hellmanシステム・パラメータを生成するには、通常、パラメータ生成値は、プライム・モジュラスおよびランダム指数のサイズで構成されます。どちらのサイズもビット数で指定します。

クライアントがAlgorithmParameterGenerator (initメソッドへのコールを介して)を明示的に初期化しない場合、各プロバイダは(とドキュメント)をデフォルトの初期化に指定する必要があります。 JDKプロバイダが使用するAlgorithmParameterGeneratorのデフォルトについては、「JDKプロバイダ」ドキュメントの「キー・サイズの制限」セクションを参照してください。 ただし、デフォルトはプロバイダごとに異なる場合があります。 また、プロバイダのデフォルト値は、将来のバージョンで変更される可能性があります。 そのため、プロバイダ固有のデフォルトに依存するかわりに、AlgorithmParameterGeneratorを明示的に初期化することをお薦めします。

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

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

導入されたバージョン:
1.2
関連項目:
  • コンストラクタのサマリー

    コンストラクタ
    修飾子
    コンストラクタ
    説明
    protected
    AlgorithmParameterGeneratorオブジェクトを作成します。
  • メソッドのサマリー

    修飾子と型
    メソッド
    説明
    パラメータを生成します。
    final String
    パラメータ・ジェネレータに関連したアルゴリズムの標準名を返します。
    getInstance(String algorithm)
    指定されたアルゴリズムで使用される一連のパラメータを生成するためのAlgorithmParameterGeneratorオブジェクトを返します。
    getInstance(String algorithm, String provider)
    指定されたアルゴリズムで使用される一連のパラメータを生成するためのAlgorithmParameterGeneratorオブジェクトを返します。
    getInstance(String algorithm, Provider provider)
    指定されたアルゴリズムで使用される一連のパラメータを生成するためのAlgorithmParameterGeneratorオブジェクトを返します。
    final Provider
    アルゴリズム・パラメータ・ジェネレータ・オブジェクトのプロバイダを返します。
    final void
    init(int size)
    特定のサイズに対して、パラメータ・ジェネレータを初期化します。
    final void
    init(int size, SecureRandom random)
    特定のサイズと乱数発生の元に対して、パラメータ・ジェネレータを初期化します。
    final void
    アルゴリズム固有型のパラメータ生成値のセットで、パラメータ・ジェネレータを初期化します。
    final void
    init(AlgorithmParameterSpec genParamSpec, SecureRandom random)
    アルゴリズム固有型のパラメータ生成値のセットで、パラメータ・ジェネレータを初期化します。

    クラスjava.lang.Objectで宣言されたメソッド

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • コンストラクタの詳細

    • 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オブジェクトを返します。

      このメソッドは、最も優先されるプロバイダから始まる登録済セキュリティ・プロバイダのリストを横断します。 指定されたアルゴリズムをサポートする最初のプロバイダからAlgorithmParameterGeneratorSpi実装をカプセル化する新しいAlgorithmParameterGeneratorオブジェクトが返されます。

      登録済みプロバイダのリストは、Security.getProviders()メソッド経由で取得できます。

      実装上のノート:
      JDKリファレンス実装では、さらにjdk.security.provider.preferred Securityプロパティを使用して、指定したアルゴリズムの優先プロバイダ順序を決定します。 これは、Security.getProviders()によって返されるプロバイダの順序とは異なる場合があります。
      パラメータ:
      algorithm - このパラメータ・ジェネレータに関連付けられたアルゴリズムの名前。 標準アルゴリズム名の詳細は、「Javaセキュリティ標準アルゴリズム名仕様」のAlgorithmParameterGeneratorの項を参照してください。
      戻り値:
      新しいAlgorithmParameterGeneratorオブジェクト
      例外:
      NoSuchAlgorithmException - Providerが、指定されたアルゴリズムのAlgorithmParameterGeneratorSpi実装をサポートしていない場合
      NullPointerException - algorithmnullである場合
      関連項目:
    • 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 - algorithmnullである場合
      関連項目:
    • 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 - algorithmnullである場合
      導入されたバージョン:
      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オブジェクト。