JavaTM 2 Platform
Standard Ed. 5.0

javax.crypto
クラス ExemptionMechanism

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

public class ExemptionMechanism
extends Object

このクラスは、除外機構の機能と、「鍵の回復」、「鍵の弱化」、および「鍵エスクロー」の例を提供します。

除外機構を使用するアプリケーションまたはアプレットには、使用しないものより強力な暗号化機能を付与できます。

導入されたバージョン:
1.4

コンストラクタの概要
protected ExemptionMechanism(ExemptionMechanismSpi exmechSpi, Provider provider, String mechanism)
          ExemptionMechanism オブジェクトを作成します。
 
メソッドの概要
protected  void finalize()
          ExemptionMechanism オブジェクトへの参照が存在しなくなったときに、このオブジェクトによって格納された鍵が確実に消されるようにします。
 byte[] genExemptionBlob()
          除外機構の鍵 Blob を生成します。
 int genExemptionBlob(byte[] output)
          除外機構の鍵 Blob を生成して、結果を output バッファに格納します。
 int genExemptionBlob(byte[] output, int outputOffset)
          除外機構の鍵 Blob を生成して、結果を outputOffset から始まる output バッファに格納します。
static ExemptionMechanism getInstance(String algorithm)
          指定された除外機構アルゴリズムを実装する ExemptionMechanism オブジェクトを作成します。
static ExemptionMechanism getInstance(String algorithm, Provider provider)
          指定されたプロバイダから、指定された除外機構アルゴリズムの ExemptionMechanism オブジェクトを生成します。
static ExemptionMechanism getInstance(String algorithm, String provider)
          指定されたプロバイダから、指定された除外機構の ExemptionMechanism オブジェクトを作成します。
 String getName()
          この ExemptionMechanism オブジェクトの除外機構名を返します。
 int getOutputSize(int inputLen)
          入力の長さ inputLen (バイト単位) を指定して、次の genExemptionBlob 操作の結果を保持するために必要な出力バッファの長さをバイト数で返します。
 Provider getProvider()
          この ExemptionMechanism オブジェクトのプロバイダを返します。
 void init(Key key)
          鍵を使用してこの除外機構を初期化します。
 void init(Key key, AlgorithmParameters params)
          鍵とアルゴリズムパラメータのセットを使用してこの除外機構を初期化します。
 void init(Key key, AlgorithmParameterSpec params)
          鍵とアルゴリズムパラメータのセットを使用してこの除外機構を初期化します。
 boolean isCryptoAllowed(Key key)
          この除外機構により結果 Blob が正常に生成されたかどうかを返します。
 
クラス java.lang.Object から継承されたメソッド
clone, equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

コンストラクタの詳細

ExemptionMechanism

protected ExemptionMechanism(ExemptionMechanismSpi exmechSpi,
                             Provider provider,
                             String mechanism)
ExemptionMechanism オブジェクトを作成します。

パラメータ:
exmechSpi - 委譲先
provider - プロバイダ
mechanism - 除外機構
メソッドの詳細

getName

public final String getName()
この ExemptionMechanism オブジェクトの除外機構名を返します。

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

戻り値:
この ExemptionMechanism オブジェクトの除外機構名

getInstance

public static final ExemptionMechanism getInstance(String algorithm)
                                            throws NoSuchAlgorithmException
指定された除外機構アルゴリズムを実装する ExemptionMechanism オブジェクトを作成します。デフォルトのプロバイダのパッケージが、要求された除外機構アルゴリズムの実装を提供している場合は、その実装を持った ExemptionMechanism クラスのインスタンスが返されます。除外機構がデフォルトのプロバイダパッケージで得られない場合は、ほかのプロバイダパッケージが検索されます。

パラメータ:
algorithm - 要求された除外機構の標準的な名前。除外機構の標準名については、「Java 暗号化アーキテクチャ API の仕様およびリファレンス」の付録 A を参照
戻り値:
新しい ExemptionMechanism オブジェクト
例外:
NullPointerException - algorithm が null の場合
NoSuchAlgorithmException - 指定されたアルゴリズムが、デフォルトのプロバイダパッケージにも、検索したほかのプロバイダパッケージにもない場合

getInstance

public static final ExemptionMechanism getInstance(String algorithm,
                                                   String provider)
                                            throws NoSuchAlgorithmException,
                                                   NoSuchProviderException
指定されたプロバイダから、指定された除外機構の ExemptionMechanism オブジェクトを作成します。

パラメータ:
algorithm - 要求された除外機構の標準的な名前。除外機構の標準名については、「Java 暗号化アーキテクチャ API の仕様およびリファレンス」の付録 A を参照
provider - プロバイダ名
戻り値:
新しい ExemptionMechanism オブジェクト
例外:
NullPointerException - algorithm が null の場合
NoSuchAlgorithmException - 指定されたプロバイダに指定されたアルゴリズムがない場合
NoSuchProviderException - 指定されたプロバイダが設定されていない場合
IllegalArgumentException - provider が null の場合

getInstance

public static final ExemptionMechanism getInstance(String algorithm,
                                                   Provider provider)
                                            throws NoSuchAlgorithmException
指定されたプロバイダから、指定された除外機構アルゴリズムの ExemptionMechanism オブジェクトを生成します。provider は登録されている必要はないことに注意してください。

パラメータ:
algorithm - 要求された除外機構の標準的な名前。除外機構の標準名については、「Java 暗号化アーキテクチャ API の仕様およびリファレンス」の付録 A を参照
provider - プロバイダ
戻り値:
新しい ExemptionMechanism オブジェクト
例外:
NullPointerException - algorithm が null の場合
NoSuchAlgorithmException - 指定されたプロバイダに指定されたアルゴリズムがない場合
IllegalArgumentException - provider が null の場合

getProvider

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

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

isCryptoAllowed

public final boolean isCryptoAllowed(Key key)
                              throws ExemptionMechanismException
この除外機構により結果 Blob が正常に生成されたかどうかを返します。

このメソッドは、渡された鍵が、この除外機構が初期化および生成段階で使用した鍵と同じであることも確認します。

パラメータ:
key - 暗号が使用する鍵
戻り値:
この除外機構により同じ鍵の結果 Blob が正常に生成されたかどうか。key が null の場合は false
例外:
ExemptionMechanismException - この除外機構オブジェクトにより結果 Blob が正常に生成されたかどうかを判定する際に問題が見つかった場合

getOutputSize

public final int getOutputSize(int inputLen)
                        throws IllegalStateException
入力の長さ inputLen (バイト単位) を指定して、次の genExemptionBlob 操作の結果を保持するために必要な出力バッファの長さをバイト数で返します。

次の genExemptionBlob 呼び出しの実際の出力長は、このメソッドが返す長さより小さいことがあります。

パラメータ:
inputLen - 入力長 (バイト単位)
戻り値:
必要な出力バッファサイズ (バイト単位)
例外:
IllegalStateException - この除外機構が誤った状態にある場合 (たとえば、まだ初期化されていない)

init

public final void init(Key key)
                throws InvalidKeyException,
                       ExemptionMechanismException
鍵を使用してこの除外機構を初期化します。

この除外機構が、指定された key から派生できないアルゴリズムパラメータを必要とする場合、基本となる除外機構の実装は、プロバイダ固有のデフォルト値を使用して必要なパラメータ自体を生成します。アルゴリズムパラメータを呼び出し側で指定する必要がある場合は、InvalidKeyException が発生します。

パラメータ:
key - この除外機構の鍵
例外:
InvalidKeyException - 指定された鍵がこの除外機構に不適切な場合
ExemptionMechanismException - 初期化の処理で問題が見つかった場合

init

public final void init(Key key,
                       AlgorithmParameterSpec params)
                throws InvalidKeyException,
                       InvalidAlgorithmParameterException,
                       ExemptionMechanismException
鍵とアルゴリズムパラメータのセットを使用してこの除外機構を初期化します。

この除外機構がアルゴリズムパラメータを必要とし、params が null である場合、基本となる除外機構の実装は、プロバイダ固有のデフォルト値を使用して必要なパラメータ自体を生成します。アルゴリズムパラメータを呼び出し側で指定する必要がある場合は、InvalidAlgorithmParameterException が発生します。

パラメータ:
key - この除外機構の鍵
params - アルゴリズムパラメータ
例外:
InvalidKeyException - 指定された鍵がこの除外機構に不適切な場合
InvalidAlgorithmParameterException - 指定されたアルゴリズムパラメータがこの除外機構に不適切な場合
ExemptionMechanismException - 初期化の処理で問題が見つかった場合

init

public final void init(Key key,
                       AlgorithmParameters params)
                throws InvalidKeyException,
                       InvalidAlgorithmParameterException,
                       ExemptionMechanismException
鍵とアルゴリズムパラメータのセットを使用してこの除外機構を初期化します。

この除外機構がアルゴリズムパラメータを必要とし、params が null である場合、基本となる除外機構の実装は、プロバイダ固有のデフォルト値を使用して必要なパラメータ自体を生成します。アルゴリズムパラメータを呼び出し側で指定する必要がある場合は、InvalidAlgorithmParameterException が発生します。

パラメータ:
key - この除外機構の鍵
params - アルゴリズムパラメータ
例外:
InvalidKeyException - 指定された鍵がこの除外機構に不適切な場合
InvalidAlgorithmParameterException - 指定されたアルゴリズムパラメータがこの除外機構に不適切な場合
ExemptionMechanismException - 初期化の処理で問題が見つかった場合

genExemptionBlob

public final byte[] genExemptionBlob()
                              throws IllegalStateException,
                                     ExemptionMechanismException
除外機構の鍵 Blob を生成します。

戻り値:
結果の鍵 Blob の入った新しいバッファ
例外:
IllegalStateException - この除外機構が誤った状態にある場合 (たとえば、初期化されていない)
ExemptionMechanismException - 生成の処理で問題が見つかった場合

genExemptionBlob

public final int genExemptionBlob(byte[] output)
                           throws IllegalStateException,
                                  ShortBufferException,
                                  ExemptionMechanismException
除外機構の鍵 Blob を生成して、結果を output バッファに格納します。

output バッファが小さすぎて結果を保持できない場合は、ShortBufferException がスローされます。この場合、より大きな出力バッファを使用してこの呼び出しを繰り返します。getOutputSize を使用して、必要な出力バッファのサイズを判定します。

パラメータ:
output - 結果を格納するバッファ
戻り値:
output に格納されたバイト数
例外:
IllegalStateException - この除外機構が誤った状態にある場合 (たとえば、初期化されていない)
ShortBufferException - 指定された出力バッファが小さすぎて結果を保持できない場合
ExemptionMechanismException - 生成の処理で問題が見つかった場合

genExemptionBlob

public final int genExemptionBlob(byte[] output,
                                  int outputOffset)
                           throws IllegalStateException,
                                  ShortBufferException,
                                  ExemptionMechanismException
除外機構の鍵 Blob を生成して、結果を outputOffset から始まる output バッファに格納します。

output バッファが小さすぎて結果を保持できない場合は、ShortBufferException がスローされます。この場合、より大きな出力バッファを使用してこの呼び出しを繰り返します。getOutputSize を使用して、必要な出力バッファのサイズを判定します。

パラメータ:
output - 結果を格納するバッファ
outputOffset - 結果が格納される output 内のオフセット
戻り値:
output に格納されたバイト数
例外:
IllegalStateException - この除外機構が誤った状態にある場合 (たとえば、初期化されていない)
ShortBufferException - 指定された出力バッファが小さすぎて結果を保持できない場合
ExemptionMechanismException - 生成の処理で問題が見つかった場合

finalize

protected void finalize()
ExemptionMechanism オブジェクトへの参照が存在しなくなったときに、このオブジェクトによって格納された鍵が確実に消されるようにします。

オーバーライド:
クラス Object 内の finalize

JavaTM 2 Platform
Standard Ed. 5.0

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

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