- 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つあります。 1つはまた、SecureRandom
引数を持ち、もう1つは、ランダム性のソースとして最も優先度の高いインストールされたプロバイダの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
- アルゴリズムに依存しない初期化
-
-
コンストラクタのサマリー
コンストラクタ 修飾子 コンストラクタ 説明 protected
KeyPairGenerator(String algorithm)
指定されたアルゴリズムに対するKeyPairGeneratorを作成します。
-
メソッドのサマリー
修飾子と型 メソッド 説明 KeyPair
generateKeyPair()
鍵ペアを生成します。KeyPair
genKeyPair()
鍵ペアを生成します。String
getAlgorithm()
この鍵ペア・ジェネレータのアルゴリズムの標準名を返します。static KeyPairGenerator
getInstance(String algorithm)
指定のアルゴリズムの公開鍵と非公開鍵のペアを生成するKeyPairGeneratorオブジェクトを返します。static KeyPairGenerator
getInstance(String algorithm, String provider)
指定のアルゴリズムの公開鍵と非公開鍵のペアを生成するKeyPairGeneratorオブジェクトを返します。static KeyPairGenerator
getInstance(String algorithm, Provider provider)
指定のアルゴリズムの公開鍵と非公開鍵のペアを生成するKeyPairGeneratorオブジェクトを返します。Provider
getProvider()
この鍵ペア・ジェネレータ・オブジェクトのプロバイダを返します。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のリストをトラバースします。 指定されたアルゴリズムをサポートする最初のProviderのKeyPairGeneratorSpi実装をカプセル化する新しいKeyPairGeneratorオブジェクトが返されます。
登録済みプロバイダのリストは、
Security.getProviders()
メソッド経由で取得できます。- 実装上の注意:
- JDKリファレンス実装では、
jdk.security.provider.preferred
Security
プロパティを使用して、指定されたアルゴリズムの優先プロバイダの順序を決定します。 これは、Security.getProviders()
によって返されるプロバイダの順序とは異なる場合があります。 - パラメータ:
algorithm
- アルゴリズムの標準名を表す文字列。 標準アルゴリズム名については、「Javaセキュリティ標準アルゴリズム名指定」のKeyPairGeneratorセクションを参照してください。- 戻り値:
- 新しい
KeyPairGenerator
オブジェクト - 例外:
NoSuchAlgorithmException
-Provider
が、指定されたアルゴリズムのKeyPairGeneratorSpi
実装をサポートしていない場合NullPointerException
-algorithm
がnull
である場合- 関連項目:
Provider
-
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
である場合- 関連項目:
Provider
-
getInstance
public 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
-
getProvider
public final Provider getProvider()
この鍵ペア・ジェネレータ・オブジェクトのプロバイダを返します。- 戻り値:
- この鍵ペア・ジェネレータ・オブジェクトのプロバイダ。
-
initialize
public void initialize(int keysize)
任意の鍵のサイズに対する鍵ペア・ジェネレータを初期化します。デフォルトのパラメータ・セットと、乱数発生の元として、もっとも高い優先順位でインストールされているプロバイダのSecureRandom
の実装を使用します。SecureRandom
を提供するプロバイダが1つもインストールされていない場合は、システムが提供する乱数発生の元が使用されます。- パラメータ:
keysize
- 鍵サイズ。 モジュラスの長さのような、ビット長で指定されたアルゴリズムに固有のメトリック。- 例外:
InvalidParameterException
- このKeyPairGeneratorオブジェクトがkeysize
メソッドをサポートしていない場合。
-
initialize
public void initialize(int keysize, SecureRandom random)
任意のキー・サイズ対する鍵ペア・ジェネレータを初期化します。指定された乱数発生の元と、デフォルトのパラメータ・セットを使用します。- 定義:
initialize
、クラス:KeyPairGeneratorSpi
- パラメータ:
keysize
- 鍵サイズ。 モジュラスの長さのような、ビット長で指定されたアルゴリズムに固有のメトリック。random
- 乱数発生の元。- 例外:
InvalidParameterException
- このKeyPairGeneratorオブジェクトがkeysize
メソッドをサポートしていない場合。- 導入されたバージョン:
- 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が明示的に初期化されていない場合は、プロバイダ指定されたデフォルトを生成された鍵のサイズおよびその他の(アルゴリズムに固有の)値に使用します。
これは呼び出されるたびに、新しい鍵ペアを生成します。
このメソッドは、機能的には
generateKeyPair
と同等です。- 戻り値:
- 生成された鍵ペア
- 導入されたバージョン:
- 1.2
-
generateKeyPair
public KeyPair generateKeyPair()
鍵ペアを生成します。KeyPairGeneratorが明示的に初期化されていない場合は、プロバイダ指定されたデフォルトを生成された鍵のサイズおよびその他の(アルゴリズムに固有の)値に使用します。
これは呼び出されるたびに、新しい鍵ペアを生成します。
このメソッドは、機能的には
genKeyPair
と同等です。- 定義:
generateKeyPair
、クラス:KeyPairGeneratorSpi
- 戻り値:
- 生成された鍵ペア
-
-