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が明示的に初期化されていない場合は、プロバイダ指定されたデフォルトを生成されたキーのサイズおよびその他の(アルゴリズムに固有の)値に使用します。
これは呼び出されるたびに、新しいキー・ペアを生成します。
このメソッドは、機能的には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も参照してください。