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

クラスAlgorithmParameterGenerator


  • 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)
    これらのアルゴリズムは、Javaセキュリティ標準アルゴリズム名仕様の「AlgorithmParameterGeneratorセクション」に記述されています。 サポートされているその他のアルゴリズムについては、実装のリリース・ドキュメントを参照してください。

    導入されたバージョン:
    1.2
    関連項目:
    AlgorithmParameters, AlgorithmParameterSpec
    • メソッドのサマリー

      修飾子と型 メソッド 説明
      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 - algorithmnullである場合
        関連項目:
        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 - algorithmnullである場合
        関連項目:
        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 - algorithmnullである場合
        導入されたバージョン:
        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オブジェクト。