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
クラスから拡張された abstract クラスになっていることに注意してください。アプリケーションの開発者は、この KeyPairGenerator
クラスで定義されたメソッドだけに配慮してください。スーパークラスのすべてのメソッドは、鍵ペアジェネレータの独自の実装を提供する必要がある暗号サービスプロバイダで使用されることを想定しています。
Java プラットフォームの実装は、すべて次の標準の KeyPairGenerator
アルゴリズムと括弧内の鍵サイズをサポートする必要があります。
修飾子 | コンストラクタと説明 |
---|---|
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 つもインストールされていない場合は、システムが提供する乱数発生の元が使用されます。
この具象メソッドは、事前に定義されたこの abstract クラスに追加されたものです。このメソッドは、KeyPairGeneratorSpi クラスの initialize
メソッドを呼び出します。メソッドの呼び出しの際には、引数として params
と乱数発生の元 (インストールされているプロバイダのうち、もっとも優先順位の高いプロバイダ提供する乱数発生の元。プロバイダが乱数発生の元を提供しない場合は、システムが提供する乱数発生の元) を渡します。この initialize
メソッドは、プロバイダによってオーバーライドされない場合は、必ず UnsupportedOperationException をスローします。
params
- 鍵を生成するためのパラメータセット。InvalidAlgorithmParameterException
- 指定されたパラメータがこの鍵ペアジェネレータに不適切な場合。public void initialize(AlgorithmParameterSpec params, SecureRandom random) throws InvalidAlgorithmParameterException
この具象メソッドは、事前に定義されたこの abstract クラスに追加されたものです。このメソッドは、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, 2013, Oracle and/or its affiliates. All rights reserved.