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が明示的に初期化されていない場合は、プロバイダ指定されたデフォルトを生成されたキーのサイズおよびその他の(アルゴリズムに固有の)値に使用します。
これは呼び出されるたびに、新しいキー・ペアを生成します。
このメソッドは、機能的にはgenerateKeyPair
と同等です。
public KeyPair generateKeyPair()
KeyPairGeneratorが明示的に初期化されていない場合は、プロバイダ指定されたデフォルトを生成されたキーのサイズおよびその他の(アルゴリズムに固有の)値に使用します。
これは呼び出されるたびに、新しいキー・ペアを生成します。
このメソッドは、機能的にはgenKeyPair
と同等です。
generateKeyPair
、クラスKeyPairGeneratorSpi
バグまたは機能を送信
詳細なAPIリファレンスおよび開発者ドキュメントについては、Java SEのドキュメントを参照してください。 そのドキュメントには、概念的な概要、用語の定義、回避方法、有効なコード例などの、開発者を対象にしたより詳細な説明が含まれています。
Copyright © 1993, 2025, Oracle and/or its affiliates. All rights reserved. Use is subject to license terms. Documentation Redistribution Policyも参照してください。