public abstract class KeyPairGenerator extends KeyPairGeneratorSpi
getInstance
ファクトリ・メソッド(指定されたクラスのインスタンスを返すstaticメソッド)を使用して構築されます。
特定のアルゴリズムに対応する鍵ペア・ジェネレータは、このアルゴリズムで使用される公開鍵および非公開鍵のペアを作成します。また、アルゴリズム固有型のパラメータを生成された各鍵に関連付けます。
鍵のペアの生成方法には、アルゴリズム独立型とアルゴリズム固有型の2つがあります。この2つの唯一の相違点は、オブジェクトの初期化にあります。
すべての鍵ジェネレータは、キー・サイズおよび乱数発生の元の概念を共有します。キー・サイズの解釈はアルゴリズムによって異なります(DSAアルゴリズムの場合、サイズはビットで表したモジュラスの長さに対応するなど)。このKeyPairGeneratorクラスには、普遍的に共有されるこれら2つの引数の型をとるinitialize
メソッドが存在します。また、引数にkeysize
だけをとり、乱数発生の元として、もっとも高い優先順位でインストールされているプロバイダのSecureRandom
の実装を使用するinitializeメソッドもあります。SecureRandom
を提供するプロバイダが1つもインストールされていない場合は、システムが提供する乱数発生の元が使用されます。
上記のアルゴリズムに依存しないinitialize
メソッドを呼び出した場合、パラメータが指定されないため、それぞれの鍵に関連したアルゴリズム固有のパラメータが存在する場合、これをどのように扱うかはプロバイダに任されます。
アルゴリズムがDSAで、キー・サイズ(モジュラス・サイズ)が512、768、または1024の場合、Sunプロバイダはパラメータp
、q
、およびg
に計算済みの値のセットを使います。モジュラスのサイズが上記の値の1つでない場合は、Sunプロバイダは、新しいパラメータのセットを作成します。これらの3つのモジュラス・サイズ以外の、事前に計算されたパラメータ・セットを持つプロバイダが存在する可能性もあります。また、事前に計算されたパラメータがなく、常に新しいパラメータ・セットを作成するプロバイダが存在する可能性もあります。
アルゴリズム固有のパラメータのセットがすでに存在する状況では(DSAのコミュニティ・パラメータなど)、AlgorithmParameterSpec
引数を取るinitialize
メソッドが2つあります。このうち一方は引数にSecureRandom
をとりますが、もう一方は、乱数発生の元として、もっとも高い優先順位でインストールされているプロバイダのSecureRandom
の実装を使用します。SecureRandom
を提供するプロバイダが1つもインストールされていない場合は、システムが提供する乱数発生の元が使用されます。
クライアントがinitialize
メソッドの呼出しで、明示的にKeyPairGeneratorを初期化しない場合には、各プロバイダはデフォルトで初期化を提供しドキュメント化する必要があります。たとえばSunのプロバイダは、サイズが1,024ビットであるデフォルトのモジュラス・サイズ(鍵サイズ)を使用します。
このクラスは、歴史的な事情からKeyPairGeneratorSpi
クラスから拡張された抽象クラスになっていることに注意してください。アプリケーションの開発者は、このKeyPairGenerator
クラスで定義されたメソッドだけに配慮してください。スーパー・クラスのすべてのメソッドは、鍵ペア・ジェネレータの独自の実装を提供する必要がある暗号サービス・プロバイダで使用されることを想定しています。
Javaプラットフォームの実装は、すべて次の標準のKeyPairGenerator
アルゴリズムとカッコ内の鍵サイズをサポートする必要があります。
DiffieHellman
(1024)DSA
(1024)RSA
(1024、2048)AlgorithmParameterSpec
修飾子 | コンストラクタと説明 |
---|---|
protected |
KeyPairGenerator(String algorithm)
指定されたアルゴリズムに対するKeyPairGeneratorを作成します。
|
修飾子と型 | メソッドと説明 |
---|---|
KeyPair |
generateKeyPair()
鍵ペアを生成します。
|
KeyPair |
genKeyPair()
鍵ペアを生成します。
|
String |
getAlgorithm()
この鍵ペア・ジェネレータのアルゴリズムの標準名を返します。
|
static KeyPairGenerator |
getInstance(String algorithm)
指定のアルゴリズムの公開鍵と非公開鍵のペアを生成するKeyPairGeneratorオブジェクトを返します。
|
static KeyPairGenerator |
getInstance(String algorithm, Provider provider)
指定のアルゴリズムの公開鍵と非公開鍵のペアを生成するKeyPairGeneratorオブジェクトを返します。
|
static KeyPairGenerator |
getInstance(String algorithm, String provider)
指定のアルゴリズムの公開鍵と非公開鍵のペアを生成するKeyPairGeneratorオブジェクトを返します。
|
Provider |
getProvider()
この鍵ペア・ジェネレータ・オブジェクトのプロバイダを返します。
|
void |
initialize(AlgorithmParameterSpec params)
指定されたパラメータのセットと、乱数発生の元として、もっとも高い優先順位でインストールされているプロバイダの
SecureRandom の実装を使用して、鍵ペア・ジェネレータを初期化します。 |
void |
initialize(AlgorithmParameterSpec params, SecureRandom random)
指定されたパラメータ・セットと乱数発生の元を使って鍵ペア・ジェネレータを初期化します。
|
void |
initialize(int keysize)
任意の鍵のサイズに対する鍵ペア・ジェネレータを初期化します。デフォルトのパラメータ・セットと、乱数発生の元として、もっとも高い優先順位でインストールされているプロバイダの
SecureRandom の実装を使用します。 |
void |
initialize(int keysize, SecureRandom random)
任意のキー・サイズ対する鍵ペア・ジェネレータを初期化します。指定された乱数発生の元と、デフォルトのパラメータ・セットを使用します。
|
protected KeyPairGenerator(String algorithm)
algorithm
- アルゴリズムの標準名を表す文字列。アルゴリズムの標準名については、Java暗号化アーキテクチャ標準アルゴリズム名のドキュメントのKeyPairGeneratorのセクションを参照。public String getAlgorithm()
public static KeyPairGenerator getInstance(String algorithm) throws NoSuchAlgorithmException
このメソッドは、最優先のProviderから順に、登録済みのセキュリティProviderのリストをトラバースします。指定されたアルゴリズムをサポートする最初のProviderのKeyPairGeneratorSpi実装をカプセル化する新しいKeyPairGeneratorオブジェクトが返されます。
登録済みプロバイダのリストは、Security.getProviders()
メソッド経由で取得できます。
algorithm
- アルゴリズムの標準名を表す文字列。アルゴリズムの標準名については、Java暗号化アーキテクチャ標準アルゴリズム名のドキュメントのKeyPairGeneratorのセクションを参照。NoSuchAlgorithmException
- 指定されたアルゴリズムのKeyPairGeneratorSpi実装をサポートするProviderが存在しない場合。Provider
public static KeyPairGenerator getInstance(String algorithm, String provider) throws NoSuchAlgorithmException, NoSuchProviderException
指定されたプロバイダのKeyPairGeneratorSpi実装をカプセル化する新しいKeyPairGeneratorオブジェクトが返されます。指定したプロバイダは、セキュリティ・プロバイダ・リストに登録する必要があります。
登録済みプロバイダのリストは、Security.getProviders()
メソッド経由で取得できます。
algorithm
- アルゴリズムの標準名を表す文字列。アルゴリズムの標準名については、Java暗号化アーキテクチャ標準アルゴリズム名のドキュメントのKeyPairGeneratorのセクションを参照。provider
- プロバイダ名の文字列名。NoSuchAlgorithmException
- 指定されたプロバイダに指定されたアルゴリズムのKeyPairGeneratorSpi実装がない場合。NoSuchProviderException
- 指定されたプロバイダがセキュリティ・プロバイダ・リストに登録されていない場合。IllegalArgumentException
- プロバイダ名がnullまたは空の場合。Provider
public static KeyPairGenerator getInstance(String algorithm, Provider provider) throws NoSuchAlgorithmException
指定されたProviderオブジェクトのKeyPairGeneratorSpi実装をカプセル化する新しいKeyPairGeneratorオブジェクトが返されます。指定されたProviderオブジェクトは、プロバイダ・リストに登録する必要はありません。
algorithm
- アルゴリズムの標準名を表す文字列。アルゴリズムの標準名については、Java暗号化アーキテクチャ標準アルゴリズム名のドキュメントのKeyPairGeneratorのセクションを参照。provider
- プロバイダ。NoSuchAlgorithmException
- 指定されたProviderオブジェクトに指定されたアルゴリズムのKeyPairGeneratorSpi実装がない場合。IllegalArgumentException
- 指定されたプロバイダがnullの場合。Provider
public final Provider getProvider()
public void initialize(int keysize)
SecureRandom
の実装を使用します。SecureRandom
を提供するプロバイダが1つもインストールされていない場合は、システムが提供する乱数発生の元が使用されます。keysize
- 鍵サイズ。モジュラスの長さのような、ビット長で指定されたアルゴリズムに固有のメトリック。InvalidParameterException
- このKeyPairGeneratorオブジェクトがkeysize
メソッドをサポートしていない場合。public void initialize(int keysize, SecureRandom random)
initialize
、クラス: KeyPairGeneratorSpi
keysize
- 鍵サイズ。モジュラスの長さのような、ビット長で指定されたアルゴリズムに固有のメトリック。random
- 乱数発生の元。InvalidParameterException
- このKeyPairGeneratorオブジェクトがkeysize
メソッドをサポートしていない場合。public void initialize(AlgorithmParameterSpec params) throws InvalidAlgorithmParameterException
SecureRandom
の実装を使用して、鍵ペア・ジェネレータを初期化します。SecureRandom
を提供するプロバイダが1つもインストールされていない場合は、システムが提供する乱数発生の元が使用されます。
この具象メソッドは、事前に定義されたこの抽象クラスに追加されたものです。このメソッドは、KeyPairGeneratorSpiのinitialize
メソッドを呼び出します。メソッドの呼出しの際には、引数としてparams
と乱数発生の元(インストールされているプロバイダのうち、もっとも優先順位の高いプロバイダから取得。プロバイダが乱数発生の元を提供しない場合は、システムが提供するもの)を渡します。このinitialize
メソッドは、プロバイダによってオーバーライドされない場合は、必ずUnsupportedOperationExceptionをスローします。
params
- 鍵を生成するためのパラメータ・セット。InvalidAlgorithmParameterException
- 指定されたパラメータがこの鍵ペア・ジェネレータに不適切な場合。public void initialize(AlgorithmParameterSpec params, SecureRandom random) throws InvalidAlgorithmParameterException
この具象メソッドは、事前に定義されたこの抽象クラスに追加されたものです。このメソッドは、params
とrandom
を渡して、KeyPairGeneratorSpiクラスのinitialize
メソッドを呼び出します。このinitialize
メソッドは、プロバイダによってオーバーライドされない場合は、必ずUnsupportedOperationExceptionをスローします。
initialize
、クラス: KeyPairGeneratorSpi
params
- 鍵を生成するためのパラメータ・セット。random
- 乱数発生の元。InvalidAlgorithmParameterException
- 指定されたパラメータがこの鍵ペア・ジェネレータに不適切な場合。public final KeyPair genKeyPair()
KeyPairGeneratorが明示的に初期化されていない場合は、プロバイダ指定されたデフォルトを生成された鍵のサイズおよびその他の(アルゴリズムに固有の)値に使用します。
KeyPairGeneratorは呼び出されるたびに、新しい鍵ペアを生成します。
このメソッドは、機能的にはgenerateKeyPair
と同等です。
public KeyPair generateKeyPair()
KeyPairGeneratorが明示的に初期化されていない場合は、プロバイダ指定されたデフォルトを生成された鍵のサイズおよびその他の(アルゴリズムに固有の)値に使用します。
KeyPairGeneratorは呼び出されるたびに、新しい鍵ペアを生成します。
このメソッドは、機能的にはgenKeyPair
と同等です。
generateKeyPair
、クラス: KeyPairGeneratorSpi
バグまたは機能を送信
詳細なAPIリファレンスおよび開発者ドキュメントについては、Java SEのドキュメントを参照してください。そのドキュメントには、概念的な概要、用語の定義、回避方法、有効なコード例などの、開発者を対象にしたより詳細な説明が含まれています。
Copyright© 1993, 2014, Oracle and/or its affiliates. All rights reserved.