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実装をサポートするプロバイダが存在しない場合。Providerpublic 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または空の場合Providerpublic 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の場合Providerpublic 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.