KeyPairGenerator
クラスは、公開キーと秘密キーのペアを生成するために使用されます。 キー・ペア・ジェネレータは、getInstance
ファクトリ・メソッド(指定されたクラスのインスタンスを返すstaticメソッド)を使用して構築されます。
特定のアルゴリズムに対応するキー・ペア・ジェネレータは、このアルゴリズムで使用される公開キーおよび非公開キーのペアを作成します。 また、アルゴリズム固有型のパラメータを生成された各キーに関連付けます。
キーのペアの生成方法には、アルゴリズム独立型とアルゴリズム固有型の2つがあります。 この2つの唯一の相違点は、オブジェクトの初期化にあります。
- アルゴリズムに依存しない初期化
すべてのキー・ジェネレータは、キー・サイズおよび乱数発生の元の概念を共有します。 キー・サイズの解釈はアルゴリズムによって異なります(DSAアルゴリズムの場合、サイズはビットで表したモジュラスの長さに対応するなど)。 この
KeyPairGenerator
クラスには、これら2つの汎用共有型の引数を取るinitialize
メソッドがあります。 また、引数にkeysize
だけをとり、乱数発生の元として、もっとも高い優先順位でインストールされているプロバイダのSecureRandom
の実装を使用するinitializeメソッドもあります。SecureRandom
を提供するプロバイダが1つもインストールされていない場合は、システムが提供する乱数発生の元が使用されます。上記のアルゴリズムに依存しない
initialize
メソッドを呼び出した場合、パラメータが指定されないため、それぞれのキーに関連したアルゴリズム固有のパラメータが存在する場合、これをどのように扱うかはプロバイダに任されます。アルゴリズムがDSAアルゴリズムで、キー・サイズ(モジュラス・サイズ)が512、768、1024または2048の場合、Sunプロバイダは、
p
、q
およびg
パラメータに事前計算された値のセットを使用します。 モジュラスのサイズが上記の値の1つでない場合は、Sunプロバイダは、新しいパラメータのセットを作成します。 他のプロバイダには、前述のモジュラス・サイズ以上のパラメータ・セットが事前に計算されている場合があります。 また、事前に計算されたパラメータがなく、常に新しいパラメータ・セットを作成するプロバイダが存在する可能性もあります。 - アルゴリズム固有の初期化
アルゴリズム固有のパラメータのセットがすでに存在する状況では(DSAのコミュニティ・パラメータなど)、
AlgorithmParameterSpec
引数を取るinitialize
メソッドが2つあります。 1つはまた、SecureRandom
引数を持ち、もう1つは、ランダム性のソースとして最も優先度の高いインストールされたプロバイダのSecureRandom
実装を使用します。SecureRandom
を提供するプロバイダが1つもインストールされていない場合は、システムが提供する乱数発生の元が使用されます。
クライアントがKeyPairGenerator
(initialize
メソッドへのコールを介して)を明示的に初期化しない場合、各プロバイダは(とドキュメント)をデフォルトの初期化に指定する必要があります。 JDKプロバイダで使用されるKeyPairGenerator
のデフォルトの詳細は、「JDKプロバイダ」ドキュメントの「キー・サイズの制限」セクションを参照してください。 ただし、デフォルトはプロバイダごとに異なる場合があります。 また、プロバイダのデフォルト値は、将来のバージョンで変更される可能性があります。 そのため、プロバイダ固有のデフォルトに依存するかわりに、KeyPairGenerator
を明示的に初期化することをお薦めします。
このクラスは、歴史的な事情からKeyPairGeneratorSpi
クラスから拡張された抽象クラスになっていることに注意してください。 アプリケーションの開発者は、このKeyPairGenerator
クラスで定義されたメソッドだけに配慮してください。スーパー・クラスのすべてのメソッドは、キー・ペア・ジェネレータの独自の実装を提供する必要がある暗号サービス・プロバイダで使用されることを想定しています。
Javaプラットフォームの実装は、すべて次の標準のKeyPairGenerator
アルゴリズムとカッコ内のキー・サイズをサポートする必要があります。
DiffieHellman
(1024, 2048, 4096)DSA
(1024, 2048)RSA
(1024, 2048, 4096)
- 導入されたバージョン:
- 1.1
- 関連項目:
-
コンストラクタのサマリー
修飾子コンストラクタ説明protected
KeyPairGenerator
(String algorithm) 指定されたアルゴリズムのKeyPairGenerator
オブジェクトを作成します。 -
メソッドのサマリー
修飾子と型メソッド説明キー・ペアを生成します。final KeyPair
キー・ペアを生成します。このキー・ペア・ジェネレータのアルゴリズムの標準名を返します。static KeyPairGenerator
getInstance
(String algorithm) 指定されたアルゴリズムの公開/秘密キーのペアを生成するKeyPairGenerator
オブジェクトを返します。static KeyPairGenerator
getInstance
(String algorithm, String provider) 指定されたアルゴリズムの公開/秘密キーのペアを生成するKeyPairGenerator
オブジェクトを返します。static KeyPairGenerator
getInstance
(String algorithm, Provider provider) 指定されたアルゴリズムの公開/秘密キーのペアを生成するKeyPairGenerator
オブジェクトを返します。final Provider
このキー・ペア・ジェネレータ・オブジェクトのプロバイダを返します。void
initialize
(int keysize) 任意のキーのサイズに対するキー・ペア・ジェネレータを初期化します。デフォルトのパラメータ・セットと、乱数発生の元として、もっとも高い優先順位でインストールされているプロバイダのSecureRandom
の実装を使用します。void
initialize
(int keysize, SecureRandom random) 任意のキーのサイズに対するキー・ペア・ジェネレータを初期化します。指定された乱数発生の元と、デフォルトのパラメータ・セットを使用します。void
initialize
(AlgorithmParameterSpec params) 指定されたパラメータのセットと、乱数発生の元として、もっとも高い優先順位でインストールされているプロバイダのSecureRandom
の実装を使用して、キー・ペア・ジェネレータを初期化します。void
initialize
(AlgorithmParameterSpec params, SecureRandom random) 指定されたパラメータ・セットと乱数発生の元を使ってキー・ペア・ジェネレータを初期化します。
-
コンストラクタの詳細
-
KeyPairGenerator
protected KeyPairGenerator(String algorithm) 指定されたアルゴリズムのKeyPairGenerator
オブジェクトを作成します。- パラメータ:
algorithm
- アルゴリズムの標準名を表す文字列。 標準アルゴリズム名の詳細は、「Javaセキュリティ標準アルゴリズム名仕様」のKeyPairGeneratorの項を参照してください。
-
-
メソッドの詳細
-
getAlgorithm
public String getAlgorithm()このキー・ペア・ジェネレータのアルゴリズムの標準名を返します。 標準アルゴリズム名の詳細は、「Javaセキュリティ標準アルゴリズム名仕様」のKeyPairGeneratorの項を参照してください。- 戻り値:
- アルゴリズムの標準名を表す文字列。
-
getInstance
public static KeyPairGenerator getInstance(String algorithm) throws NoSuchAlgorithmException 指定されたアルゴリズムの公開/秘密キーのペアを生成するKeyPairGenerator
オブジェクトを返します。このメソッドは、最優先のProviderから順に、登録済みのセキュリティProviderのリストをトラバースします。 指定されたアルゴリズムをサポートする最初のプロバイダから
KeyPairGeneratorSpi
実装をカプセル化する新しいKeyPairGenerator
オブジェクトが返されます。登録済みプロバイダのリストは、
Security.getProviders()
メソッド経由で取得できます。- 実装上のノート:
- JDKリファレンス実装では、さらに
jdk.security.provider.preferred
Security
プロパティを使用して、指定したアルゴリズムの優先プロバイダ順序を決定します。 これは、Security.getProviders()
によって返されるプロバイダの順序とは異なる場合があります。 - パラメータ:
algorithm
- アルゴリズムの標準名を表す文字列。 標準アルゴリズム名の詳細は、「Javaセキュリティ標準アルゴリズム名仕様」のKeyPairGeneratorの項を参照してください。- 戻り値:
- 新しい
KeyPairGenerator
オブジェクト - 例外:
NoSuchAlgorithmException
-Provider
が、指定されたアルゴリズムのKeyPairGeneratorSpi
実装をサポートしていない場合NullPointerException
-algorithm
がnull
である場合- 関連項目:
-
getInstance
public static KeyPairGenerator getInstance(String algorithm, String provider) throws NoSuchAlgorithmException, NoSuchProviderException 指定されたアルゴリズムの公開/秘密キーのペアを生成するKeyPairGenerator
オブジェクトを返します。指定したプロバイダから
KeyPairGeneratorSpi
実装をカプセル化する新しいKeyPairGenerator
オブジェクトが返されます。 指定したプロバイダは、セキュリティ・プロバイダ・リストに登録する必要があります。登録済みプロバイダのリストは、
Security.getProviders()
メソッド経由で取得できます。- パラメータ:
algorithm
- アルゴリズムの標準名を表す文字列。 標準アルゴリズム名の詳細は、「Javaセキュリティ標準アルゴリズム名仕様」のKeyPairGeneratorの項を参照してください。provider
- プロバイダ名の文字列名。- 戻り値:
- 新しい
KeyPairGenerator
オブジェクト - 例外:
IllegalArgumentException
- プロバイダ名がnull
または空の場合NoSuchAlgorithmException
- 指定されたアルゴリズムのKeyPairGeneratorSpi
実装が、指定されたプロバイダから利用可能でない場合NoSuchProviderException
- 指定されたプロバイダがセキュリティ・プロバイダ・リストに登録されていない場合NullPointerException
-algorithm
がnull
である場合- 関連項目:
-
getInstance
public static KeyPairGenerator getInstance(String algorithm, Provider provider) throws NoSuchAlgorithmException 指定されたアルゴリズムの公開/秘密キーのペアを生成するKeyPairGenerator
オブジェクトを返します。指定したプロバイダから
KeyPairGeneratorSpi
実装をカプセル化する新しいKeyPairGenerator
オブジェクトが返されます。 指定されたプロバイダをプロバイダ・リストに登録する必要はありません。- パラメータ:
algorithm
- アルゴリズムの標準名を表す文字列。 標準アルゴリズム名の詳細は、「Javaセキュリティ標準アルゴリズム名仕様」のKeyPairGeneratorの項を参照してください。provider
- プロバイダ- 戻り値:
- 新しい
KeyPairGenerator
オブジェクト - 例外:
IllegalArgumentException
- 指定されたプロバイダがnull
の場合NoSuchAlgorithmException
- 指定されたアルゴリズムのKeyPairGeneratorSpi
実装が、指定されたProvider
オブジェクトから使用できない場合NullPointerException
-algorithm
がnull
である場合- 導入されたバージョン:
- 1.4
- 関連項目:
-
getProvider
public final Provider getProvider()このキー・ペア・ジェネレータ・オブジェクトのプロバイダを返します。- 戻り値:
- このキー・ペア・ジェネレータ・オブジェクトのプロバイダ。
-
initialize
public void initialize(int keysize) 任意のキーのサイズに対するキー・ペア・ジェネレータを初期化します。デフォルトのパラメータ・セットと、乱数発生の元として、もっとも高い優先順位でインストールされているプロバイダのSecureRandom
の実装を使用します。SecureRandom
を提供するプロバイダが1つもインストールされていない場合は、システムが提供する乱数発生の元が使用されます。- パラメータ:
keysize
- キー・サイズ。 モジュラスの長さのような、ビット長で指定されたアルゴリズムに固有のメトリック。- 例外:
InvalidParameterException
-keysize
がこのKeyPairGenerator
オブジェクトでサポートされていない場合。
-
initialize
public void initialize(int keysize, SecureRandom random) 任意のキーのサイズに対するキー・ペア・ジェネレータを初期化します。指定された乱数発生の元と、デフォルトのパラメータ・セットを使用します。- 定義:
initialize
、クラスKeyPairGeneratorSpi
- パラメータ:
keysize
- キー・サイズ。 モジュラスの長さのような、ビット長で指定されたアルゴリズムに固有のメトリック。random
- 乱数発生の元。- 例外:
InvalidParameterException
-keysize
がこのKeyPairGenerator
オブジェクトでサポートされていない場合。- 導入されたバージョン:
- 1.2
-
initialize
public void initialize(AlgorithmParameterSpec params) throws InvalidAlgorithmParameterException 指定されたパラメータのセットと、乱数発生の元として、もっとも高い優先順位でインストールされているプロバイダのSecureRandom
の実装を使用して、キー・ペア・ジェネレータを初期化します。SecureRandom
を提供するプロバイダが1つもインストールされていない場合は、システムが提供する乱数発生の元が使用されます。この具象メソッドは、事前に定義されたこの抽象クラスに追加されたものです。 このメソッドは、KeyPairGeneratorSpiの
initialize
メソッドを呼び出します。メソッドの呼出しの際には、引数としてparams
と乱数発生の元(インストールされているプロバイダのうち、もっとも優先順位の高いプロバイダから取得。プロバイダが乱数発生の元を提供しない場合は、システムが提供するもの)を渡します。 このinitialize
メソッドは、プロバイダによってオーバーライドされない場合、常にUnsupportedOperationException
をスローします。- パラメータ:
params
- キーを生成するためのパラメータ・セット。- 例外:
InvalidAlgorithmParameterException
- 指定されたパラメータがこのキー・ペア・ジェネレータに不適切な場合。- 導入されたバージョン:
- 1.2
-
initialize
public void initialize(AlgorithmParameterSpec params, SecureRandom random) throws InvalidAlgorithmParameterException 指定されたパラメータ・セットと乱数発生の元を使ってキー・ペア・ジェネレータを初期化します。この具象メソッドは、事前に定義されたこの抽象クラスに追加されたものです。 このメソッドは、
params
とrandom
を渡して、KeyPairGeneratorSpiクラスのinitialize
メソッドを呼び出します。 このinitialize
メソッドは、プロバイダによってオーバーライドされない場合、常にUnsupportedOperationException
をスローします。- オーバーライド:
initialize
、クラスKeyPairGeneratorSpi
- パラメータ:
params
- キーを生成するためのパラメータ・セット。random
- 乱数発生の元。- 例外:
InvalidAlgorithmParameterException
- 指定されたパラメータがこのキー・ペア・ジェネレータに不適切な場合。- 導入されたバージョン:
- 1.2
-
genKeyPair
public final KeyPair genKeyPair()キー・ペアを生成します。この
KeyPairGenerator
が明示的に初期化されていない場合、プロバイダ固有のデフォルトが、生成されたキーのサイズおよびその他の(algorithm-specific)値に使用されます。これは呼び出されるたびに、新しいキー・ペアを生成します。
このメソッドは、機能的には
generateKeyPair
と同等です。- 戻り値:
- 生成されたキー・ペア
- 導入されたバージョン:
- 1.2
-
generateKeyPair
public KeyPair generateKeyPair()キー・ペアを生成します。この
KeyPairGenerator
が明示的に初期化されていない場合、プロバイダ固有のデフォルトが、生成されたキーのサイズおよびその他の(algorithm-specific)値に使用されます。これは呼び出されるたびに、新しいキー・ペアを生成します。
このメソッドは、機能的には
genKeyPair
と同等です。- 定義:
generateKeyPair
、クラスKeyPairGeneratorSpi
- 戻り値:
- 生成されたキー・ペア
-