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