JavaTM Platform
Standard Ed. 6

javax.crypto
クラス KeyGenerator

java.lang.Object
  上位を拡張 javax.crypto.KeyGenerator

public class KeyGenerator
extends Object

このクラスは、秘密 (対称) 鍵ジェネレータの機能を提供します。

鍵ジェネレータは、このクラスの getInstance クラスメソッドの 1 つを使用して構築されます。

KeyGenerator オブジェクトは再使用できます。つまり、鍵の生成後、同じ KeyGenerator オブジェクトを再使用してさらに鍵を生成することができます。

鍵の生成方法には、アルゴリズム独立型とアルゴリズム特定型の 2 つがあります。この 2 つの唯一の相違点は、オブジェクトの初期化にあります。

クライアントが (init メソッドの呼び出しを介して) KeyGenerator を明示的に初期化しない場合、各プロバイダはデフォルトの初期化を提供およびドキュメント化する必要があります。

導入されたバージョン:
1.4
関連項目:
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)
          この鍵ジェネレータを初期化します。
 
クラス java.lang.Object から継承されたメソッド
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

コンストラクタの詳細

KeyGenerator

protected KeyGenerator(KeyGeneratorSpi keyGenSpi,
                       Provider provider,
                       String algorithm)
KeyGenerator オブジェクトを生成します。

パラメータ:
keyGenSpi - 委譲先
provider - プロバイダ
algorithm - アルゴリズム
メソッドの詳細

getAlgorithm

public final String getAlgorithm()
この KeyGenerator オブジェクトのアルゴリズム名を返します。

これは、この KeyGenerator オブジェクトを生成した getInstance 呼び出しの 1 つで指定された名前と同じです。

戻り値:
この KeyGenerator オブジェクトのアルゴリズム名

getInstance

public static final KeyGenerator getInstance(String algorithm)
                                      throws NoSuchAlgorithmException
指定されたアルゴリズムの秘密鍵を生成する KeyGenerator オブジェクトを返します。

このメソッドは、最優先のプロバイダから順に、登録済みのセキュリティープロバイダのリストをトラバースします。指定されたアルゴリズムをサポートする最初のプロバイダの KeyGeneratorSpi 実装をカプセル化する新しい KeyGenerator オブジェクトが返されます。

登録済みプロバイダのリストは、Security.getProviders() メソッド経由で取得できます。

パラメータ:
algorithm - 要求された鍵アルゴリズムの標準名 標準のアルゴリズム名については、「Java 暗号化アーキテクチャーリファレンスガイド」の付録 A を参照
戻り値:
新しい KeyGenerator オブジェクト
例外:
NullPointerException - 指定されたアルゴリズムが null である場合
NoSuchAlgorithmException - 指定したアルゴリズムの KeyGeneratorSpi 実装をサポートするプロバイダが存在しない場合
関連項目:
Provider

getInstance

public static final KeyGenerator getInstance(String algorithm,
                                             String provider)
                                      throws NoSuchAlgorithmException,
                                             NoSuchProviderException
指定されたアルゴリズムの秘密鍵を生成する KeyGenerator オブジェクトを返します。

指定されたプロバイダからの KeyGeneratorSpi の実装をカプセル化する新しい KeyGenerator オブジェクトが返されます。指定したプロバイダは、セキュリティープロバイダリストに登録する必要があります。

登録済みプロバイダのリストは、Security.getProviders() メソッド経由で取得できます。

パラメータ:
algorithm - 要求された鍵アルゴリズムの標準名 標準のアルゴリズム名については、「Java 暗号化アーキテクチャーリファレンスガイド」の付録 A を参照
provider - プロバイダ名
戻り値:
新しい KeyGenerator オブジェクト
例外:
NullPointerException - 指定されたアルゴリズムが null である場合
NoSuchAlgorithmException - 指定されたプロバイダに指定されたアルゴリズムの KeyGeneratorSpi 実装がない場合
NoSuchProviderException - 指定したプロバイダがセキュリティープロバイダリストに登録されていない場合
IllegalArgumentException - provider が null または空の場合
関連項目:
Provider

getInstance

public static final KeyGenerator getInstance(String algorithm,
                                             Provider provider)
                                      throws NoSuchAlgorithmException
指定されたアルゴリズムの秘密鍵を生成する KeyGenerator オブジェクトを返します。

指定された Provider オブジェクトからの KeyGeneratorSpi の実装をカプセル化する新しい KeyGenerator オブジェクトが返されます。指定した Provider オブジェクトは、プロバイダリストに登録する必要はありません。

パラメータ:
algorithm - 要求された鍵アルゴリズムの標準名 標準のアルゴリズム名については、「Java 暗号化アーキテクチャーリファレンスガイド」の付録 A を参照
provider - プロバイダ
戻り値:
新しい KeyGenerator オブジェクト
例外:
NullPointerException - 指定されたアルゴリズムが null である場合
NoSuchAlgorithmException - 指定された Provider オブジェクトに指定されたアルゴリズムの KeyGeneratorSpi の実装がない場合
IllegalArgumentException - provider が null の場合
関連項目:
Provider

getProvider

public final Provider getProvider()
この KeyGenerator オブジェクトのプロバイダを返します。

戻り値:
この KeyGenerator オブジェクトのプロバイダ

init

public final void init(SecureRandom random)
この鍵ジェネレータを初期化します。

パラメータ:
random - このジェネレータの>乱数発生の元

init

public final void init(AlgorithmParameterSpec params)
                throws InvalidAlgorithmParameterException
この鍵ジェネレータを、指定されたパラメータセットを使って初期化します。

この鍵ジェネレータが乱数バイトを必要とする場合は、インストールされているプロバイダのうち、もっとも優先順位の高いプロバイダの SecureRandom の実装を>乱数発生の元として使用して乱数バイトを取得します。SecureRandom の実装を提供するプロバイダがインストールされていない場合は、システムが提供する>乱数発生の元が使用されます。

パラメータ:
params - 鍵ジェネレータのパラメータ
例外:
InvalidAlgorithmParameterException - 指定されたパラメータがこの鍵ジェネレータに不適切な場合

init

public final void init(AlgorithmParameterSpec params,
                       SecureRandom random)
                throws InvalidAlgorithmParameterException
指定されたパラメータセットとユーザーが提供する>乱数発生の元を使って、この鍵ジェネレータを初期化します。

パラメータ:
params - 鍵ジェネレータのパラメータ
random - この鍵ジェネレータの>乱数発生の元
例外:
InvalidAlgorithmParameterException - params がこの鍵ジェネレータに不適切な場合

init

public final void init(int keysize)
この鍵ジェネレータを特定の鍵サイズに応じて初期化します。

この鍵ジェネレータが乱数バイトを必要とする場合は、インストールされているプロバイダのうち、もっとも優先順位の高いプロバイダの SecureRandom の実装を>乱数発生の元として使用して乱数バイトを取得します。SecureRandom の実装を提供するプロバイダがインストールされていない場合は、システムが提供する>乱数発生の元が使用されます。

パラメータ:
keysize - 鍵サイズ。ビット長で指定されたアルゴリズムに特定のメトリックス
例外:
InvalidParameterException - 鍵サイズが間違っているか、サポートされていない場合

init

public final void init(int keysize,
                       SecureRandom random)
ユーザーが提供する>乱数発生の元を使って、この鍵ジェネレータを特定の鍵サイズに応じて初期化します。

パラメータ:
keysize - キーサイズビット長で指定されたアルゴリズムに特定のメトリックス
random - この鍵ジェネレータの>乱数発生の元
例外:
InvalidParameterException - 鍵サイズが間違っているか、サポートされていない場合

generateKey

public final SecretKey generateKey()
秘密鍵を生成します。

戻り値:
新しい鍵

JavaTM Platform
Standard Ed. 6

バグの報告と機能のリクエスト
さらに詳しい API リファレンスおよび開発者ドキュメントについては、Java SE 開発者用ドキュメントを参照してください。開発者向けの詳細な解説、概念の概要、用語の定義、バグの回避策、およびコード実例が含まれています。

Copyright 2006 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms. Documentation Redistribution Policy も参照してください。