public class KeyGenerator extends Object
鍵ジェネレータは、このクラスのgetInstance
クラス・メソッドの1つを使用して構築されます。
KeyGeneratorオブジェクトは再使用できます。つまり、鍵の生成後、同じKeyGeneratorオブジェクトを再使用してさらに鍵を生成することができます。
鍵の生成方法には、アルゴリズム独立型とアルゴリズム固有型の2つがあります。この2つの唯一の相違点は、オブジェクトの初期化にあります。
すべての鍵ジェネレータが、キー・サイズおよび乱数発生の元の概念を共有します。このKeyGeneratorクラスには、普遍的に共有されるこれら2つの引数の型をとるinit
メソッドが存在します。また、引数にkeysize
だけをとり、乱数発生の元として、もっとも高い優先順位でインストールされているプロバイダのSecureRandomの実装を使用するinitメソッド(SecureRandomの実装を提供するプロバイダが1つもインストールされていない場合は、システムが提供する乱数発生の元を使用)、および乱数発生の元だけをとるinitメソッドもあります。
上記のアルゴリズムに依存しないinit
メソッドを呼び出した場合、パラメータが指定されないため、それぞれの鍵に関連したアルゴリズム固有のパラメータが存在する場合、これをどのように扱うかはプロバイダに任されます。
アルゴリズム固有のパラメータのセットがすでに存在する状況では、AlgorithmParameterSpec
引数を取る2つのinit
メソッドが存在します。このうち一方は引数にSecureRandom
もとりますが、もう一方は、乱数発生の元として、もっとも高い優先順位でインストールされているプロバイダのSecureRandomの実装を使用します(SecureRandomの実装を提供するプロバイダが1つもインストールされていない場合は、システムが提供する乱数発生の元を使用)。
クライアントが(init
メソッドの呼出しによって) KeyGeneratorを明示的に初期化しない場合は、各プロバイダがデフォルトの初期化を提供(および文書化)する必要があります。
Javaプラットフォームの実装は、すべて次の標準のKeyGenerator
アルゴリズムとカッコ内の鍵サイズをサポートする必要があります。
SecretKey
修飾子 | コンストラクタと説明 |
---|---|
protected |
KeyGenerator(KeyGeneratorSpi keyGenSpi, Provider provider, String algorithm)
KeyGeneratorオブジェクトを生成します。
|
修飾子と型 | メソッドと説明 |
---|---|
SecretKey |
generateKey()
秘密鍵を生成します。
|
String |
getAlgorithm()
この
KeyGenerator オブジェクトのアルゴリズム名を返します。 |
static KeyGenerator |
getInstance(String algorithm)
指定されたアルゴリズムの秘密鍵を生成する
KeyGenerator オブジェクトを返します。 |
static KeyGenerator |
getInstance(String algorithm, Provider provider)
指定されたアルゴリズムの秘密鍵を生成する
KeyGenerator オブジェクトを返します。 |
static KeyGenerator |
getInstance(String algorithm, String provider)
指定されたアルゴリズムの秘密鍵を生成する
KeyGenerator オブジェクトを返します。 |
Provider |
getProvider()
この
KeyGenerator オブジェクトのプロバイダを返します。 |
void |
init(AlgorithmParameterSpec params)
この鍵ジェネレータを、指定されたパラメータ・セットを使って初期化します。
|
void |
init(AlgorithmParameterSpec params, SecureRandom random)
指定されたパラメータ・セットとユーザーが提供する乱数発生の元を使って、この鍵ジェネレータを初期化します。
|
void |
init(int keysize)
この鍵ジェネレータを特定の鍵サイズに応じて初期化します。
|
void |
init(int keysize, SecureRandom random)
ユーザーが提供する乱数発生の元を使って、この鍵ジェネレータを特定の鍵サイズに応じて初期化します。
|
void |
init(SecureRandom random)
この鍵ジェネレータを初期化します。
|
protected KeyGenerator(KeyGeneratorSpi keyGenSpi, Provider provider, String algorithm)
keyGenSpi
- 委譲先provider
- プロバイダalgorithm
- アルゴリズムpublic final String getAlgorithm()
KeyGenerator
オブジェクトのアルゴリズム名を返します。
これは、このKeyGenerator
オブジェクトを作成したgetInstance
呼出しのいずれかに指定された名前と同じです。
KeyGenerator
オブジェクトのアルゴリズム名。public static final KeyGenerator getInstance(String algorithm) throws NoSuchAlgorithmException
KeyGenerator
オブジェクトを返します。
このメソッドは、最優先のProviderから順に、登録済みのセキュリティProviderのリストをトラバースします。指定されたアルゴリズムをサポートする最初のプロバイダのKeyGeneratorSpi実装をカプセル化する新しいKeyGeneratorオブジェクトが返されます。
登録済みプロバイダのリストは、Security.getProviders()
メソッド経由で取得できます。
algorithm
- 要求された鍵アルゴリズムの標準名。標準のアルゴリズム名については、Java暗号化アーキテクチャ標準アルゴリズム名のドキュメントのKeyGeneratorのセクションを参照。KeyGenerator
オブジェクト。NullPointerException
- 指定されたアルゴリズムがnullである場合。NoSuchAlgorithmException
- 指定したアルゴリズムのKeyGeneratorSpi実装をサポートするプロバイダが存在しない場合。Provider
public static final KeyGenerator getInstance(String algorithm, String provider) throws NoSuchAlgorithmException, NoSuchProviderException
KeyGenerator
オブジェクトを返します。
指定されたプロバイダからのKeyGeneratorSpiの実装をカプセル化する新しいKeyGeneratorオブジェクトが返されます。指定したプロバイダは、セキュリティ・プロバイダ・リストに登録する必要があります。
登録済みプロバイダのリストは、Security.getProviders()
メソッド経由で取得できます。
algorithm
- 要求された鍵アルゴリズムの標準名。標準のアルゴリズム名については、Java暗号化アーキテクチャ標準アルゴリズム名のドキュメントのKeyGeneratorのセクションを参照。provider
- プロバイダ名KeyGenerator
オブジェクト。NullPointerException
- 指定されたアルゴリズムがnullである場合。NoSuchAlgorithmException
- 指定されたプロバイダに指定されたアルゴリズムのKeyGeneratorSpiの実装がない場合。NoSuchProviderException
- 指定されたプロバイダがセキュリティ・プロバイダ・リストに登録されていない場合IllegalArgumentException
- provider
がnullまたは空の場合Provider
public static final KeyGenerator getInstance(String algorithm, Provider provider) throws NoSuchAlgorithmException
KeyGenerator
オブジェクトを返します。
指定されたProviderオブジェクトからのKeyGeneratorSpiの実装をカプセル化する新しいKeyGeneratorオブジェクトが返されます。指定されたProviderオブジェクトは、プロバイダ・リストに登録する必要はありません。
algorithm
- 要求された鍵アルゴリズムの標準名。標準のアルゴリズム名については、Java暗号化アーキテクチャ標準アルゴリズム名のドキュメントのKeyGeneratorのセクションを参照。provider
- プロバイダKeyGenerator
オブジェクト。NullPointerException
- 指定されたアルゴリズムがnullである場合。NoSuchAlgorithmException
- 指定されたProviderオブジェクトに指定されたアルゴリズムのKeyGeneratorSpiの実装がない場合。IllegalArgumentException
- provider
がnullの場合Provider
public final Provider getProvider()
KeyGenerator
オブジェクトのプロバイダを返します。KeyGenerator
オブジェクトのプロバイダpublic final void init(SecureRandom random)
random
- このジェネレータの乱数発生の元public final void init(AlgorithmParameterSpec params) throws InvalidAlgorithmParameterException
この鍵ジェネレータが乱数バイトを必要とする場合は、インストールされているプロバイダのうち、もっとも優先順位の高いプロバイダのSecureRandom
の実装を乱数発生の元として使用して乱数バイトを取得します。SecureRandomを提供するプロバイダが1つもインストールされていない場合は、システムが提供する乱数発生の元が使用されます。
params
- 鍵ジェネレータのパラメータInvalidAlgorithmParameterException
- 指定されたパラメータがこの鍵ジェネレータに不適切な場合public final void init(AlgorithmParameterSpec params, SecureRandom random) throws InvalidAlgorithmParameterException
params
- 鍵ジェネレータのパラメータrandom
- この鍵ジェネレータの乱数発生の元InvalidAlgorithmParameterException
- params
がこの鍵ジェネレータに不適切な場合public final void init(int keysize)
この鍵ジェネレータが乱数バイトを必要とする場合は、インストールされているプロバイダのうち、もっとも優先順位の高いプロバイダのSecureRandom
の実装を乱数発生の元として使用して乱数バイトを取得します。SecureRandomを提供するプロバイダが1つもインストールされていない場合は、システムが提供する乱数発生の元が使用されます。
keysize
- 鍵サイズ。ビット長で指定されたアルゴリズム固有のメトリックスInvalidParameterException
- 鍵サイズが間違っているか、サポートされていない場合。public final void init(int keysize, SecureRandom random)
keysize
- 鍵サイズ。ビット長で指定されたアルゴリズム固有のメトリックスrandom
- この鍵ジェネレータの乱数発生の元InvalidParameterException
- 鍵サイズが間違っているか、サポートされていない場合。public final SecretKey generateKey()
バグまたは機能を送信
詳細なAPIリファレンスおよび開発者ドキュメントについては、Java SEのドキュメントを参照してください。そのドキュメントには、概念的な概要、用語の定義、回避方法、有効なコード例などの、開発者を対象にしたより詳細な説明が含まれています。
Copyright© 1993, 2014, Oracle and/or its affiliates. All rights reserved.