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が存在しない場合。Providerpublic static KeyPairGenerator getInstance(String algorithm, String provider) throws NoSuchAlgorithmException, NoSuchProviderException
指定されたプロバイダのKeyPairGeneratorSpi実装をカプセル化する新しいKeyPairGeneratorオブジェクトが返されます。指定したプロバイダは、セキュリティ・プロバイダ・リストに登録する必要があります。
登録済みプロバイダのリストは、Security.getProviders()メソッド経由で取得できます。
algorithm - アルゴリズムの標準名を表す文字列。アルゴリズムの標準名については、Java暗号化アーキテクチャ標準アルゴリズム名のドキュメントのKeyPairGeneratorのセクションを参照。provider - プロバイダ名の文字列名。NoSuchAlgorithmException - 指定されたプロバイダに指定されたアルゴリズムのKeyPairGeneratorSpi実装がない場合。NoSuchProviderException - 指定されたプロバイダがセキュリティ・プロバイダ・リストに登録されていない場合。IllegalArgumentException - プロバイダ名がnullまたは空の場合。Providerpublic static KeyPairGenerator getInstance(String algorithm, Provider provider) throws NoSuchAlgorithmException
指定されたProviderオブジェクトのKeyPairGeneratorSpi実装をカプセル化する新しいKeyPairGeneratorオブジェクトが返されます。指定されたProviderオブジェクトは、プロバイダ・リストに登録する必要はありません。
algorithm - アルゴリズムの標準名を表す文字列。アルゴリズムの標準名については、Java暗号化アーキテクチャ標準アルゴリズム名のドキュメントのKeyPairGeneratorのセクションを参照。provider - プロバイダ。NoSuchAlgorithmException - 指定されたProviderオブジェクトに指定されたアルゴリズムのKeyPairGeneratorSpi実装がない場合。IllegalArgumentException - 指定されたプロバイダがnullの場合。Providerpublic final Provider getProvider()
public void initialize(int keysize)
SecureRandomの実装を使用します。SecureRandomを提供するプロバイダが1つもインストールされていない場合は、システムが提供する乱数発生の元が使用されます。keysize - 鍵サイズ。モジュラスの長さのような、ビット長で指定されたアルゴリズムに固有のメトリック。InvalidParameterException - このKeyPairGeneratorオブジェクトがkeysizeメソッドをサポートしていない場合。public void initialize(int keysize,
SecureRandom random)
initialize、クラス: KeyPairGeneratorSpikeysize - 鍵サイズ。モジュラスの長さのような、ビット長で指定されたアルゴリズムに固有のメトリック。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、クラス: KeyPairGeneratorSpiparams - 鍵を生成するためのパラメータ・セット。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.