- java.lang.Object
-
- javax.crypto.ExemptionMechanism
-
public class ExemptionMechanism extends Object
このクラスは、除外メカニズムの機能と、キーの回復、キーの弱化、およびキー・エスクローの例を提供します。除外メカニズムを使用するアプリケーションまたはアプレットは、使用しないアプリケーションまたはアプレットに比べて強力な暗号化機能が付与されます。
- 導入されたバージョン:
- 1.4
-
-
コンストラクタのサマリー
コンストラクタ 修飾子 コンストラクタ 説明 protectedExemptionMechanism(ExemptionMechanismSpi exmechSpi, Provider provider, String mechanism)ExemptionMechanismオブジェクトを生成します。
-
メソッドのサマリー
すべてのメソッド 静的メソッド インスタンス・メソッド 具象メソッド 修飾子と型 メソッド 説明 byte[]genExemptionBlob()除外メカニズムのキーBlobを生成します。intgenExemptionBlob(byte[] output)除外メカニズムのキーBlobを生成して、結果をoutputバッファに格納します。intgenExemptionBlob(byte[] output, int outputOffset)除外メカニズムのキーBlobを生成して、結果をoutputOffsetから始まるoutputバッファに格納します。static ExemptionMechanismgetInstance(String algorithm)指定した除外メカニズム・アルゴリズムを実装するExemptionMechanismオブジェクトを返します。static ExemptionMechanismgetInstance(String algorithm, String provider)指定した除外メカニズム・アルゴリズムを実装するExemptionMechanismオブジェクトを返します。static ExemptionMechanismgetInstance(String algorithm, Provider provider)指定した除外メカニズム・アルゴリズムを実装するExemptionMechanismオブジェクトを返します。StringgetName()このExemptionMechanismオブジェクトの除外メカニズム名を返します。intgetOutputSize(int inputLen)入力の長さinputLen(バイト単位)を指定して、次のgenExemptionBlob操作の結果を保持するために必要な出力バッファの長さをバイト数で返します。ProvidergetProvider()このExemptionMechanismオブジェクトのプロバイダを返します。voidinit(Key key)キーを使用してこの除外メカニズムを初期化します。voidinit(Key key, AlgorithmParameters params)キーとアルゴリズム・パラメータのセットを使用してこの除外メカニズムを初期化します。voidinit(Key key, AlgorithmParameterSpec params)キーとアルゴリズム・パラメータのセットを使用してこの除外メカニズムを初期化します。booleanisCryptoAllowed(Key key)この除外メカニズムにより結果Blobが正常に生成されたかどうかを返します。
-
-
-
コンストラクタの詳細
-
ExemptionMechanism
protected ExemptionMechanism(ExemptionMechanismSpi exmechSpi, Provider provider, String mechanism)
ExemptionMechanismオブジェクトを生成します。- パラメータ:
exmechSpi- 委譲先provider- プロバイダmechanism- 除外メカニズム
-
-
メソッドの詳細
-
getName
public final String getName()
このExemptionMechanismオブジェクトの除外メカニズム名を返します。これは、この
ExemptionMechanismオブジェクトを作成したgetInstance呼出しのいずれかに指定された名前と同じです。- 戻り値:
- この
ExemptionMechanismオブジェクトの除外メカニズム名。
-
getInstance
public static final ExemptionMechanism getInstance(String algorithm) throws NoSuchAlgorithmException
指定した除外メカニズム・アルゴリズムを実装するExemptionMechanismオブジェクトを返します。このメソッドは、最優先のProviderから順に、登録済みのセキュリティProviderのリストをトラバースします。 指定されたアルゴリズムをサポートする最初のプロバイダからのExemptionMechanismSpiの実装をカプセル化する新しいExemptionMechanismオブジェクトが返されます。
登録済みプロバイダのリストは、
Security.getProviders()メソッド経由で取得できます。- 実装上のノート:
- JDKリファレンス実装では、
jdk.security.provider.preferredSecurityプロパティを使用して、指定されたアルゴリズムの優先プロバイダの順序を決定します。 これは、Security.getProviders()によって返されるプロバイダの順序とは異なる場合があります。 - パラメータ:
algorithm- 要求された除外メカニズムの標準名。 標準除外メカニズム名の詳細については、「Javaセキュリティ標準アルゴリズム名指定」のExemptionMechanismセクションを参照してください。- 戻り値:
- 新しい
ExemptionMechanismオブジェクト - 例外:
NoSuchAlgorithmException-Providerが、指定されたアルゴリズムのExemptionMechanismSpi実装をサポートしていない場合NullPointerException-algorithmがnullである場合- 関連項目:
Provider
-
getInstance
public static final ExemptionMechanism getInstance(String algorithm, String provider) throws NoSuchAlgorithmException, NoSuchProviderException
指定した除外メカニズム・アルゴリズムを実装するExemptionMechanismオブジェクトを返します。指定されたプロバイダのExemptionMechanismSpi実装をカプセル化する新しいExemptionMechanismオブジェクトが返されます。 指定したプロバイダは、セキュリティ・プロバイダ・リストに登録する必要があります。
登録済みプロバイダのリストは、
Security.getProviders()メソッド経由で取得できます。- パラメータ:
algorithm- 要求された除外メカニズムの標準名。 標準除外メカニズム名の詳細については、「Javaセキュリティ標準アルゴリズム名指定」のExemptionMechanismセクションを参照してください。provider- プロバイダ名。- 戻り値:
- 新しい
ExemptionMechanismオブジェクト - 例外:
IllegalArgumentException-providerがnullまたは空の場合NoSuchAlgorithmException- 指定されたアルゴリズムのExemptionMechanismSpi実装が、指定されたプロバイダから利用可能でない場合NoSuchProviderException- 指定されたプロバイダがセキュリティ・プロバイダ・リストに登録されていない場合NullPointerException-algorithmがnullである場合- 関連項目:
Provider
-
getInstance
public static final ExemptionMechanism getInstance(String algorithm, Provider provider) throws NoSuchAlgorithmException
指定した除外メカニズム・アルゴリズムを実装するExemptionMechanismオブジェクトを返します。指定されたProviderオブジェクトのExemptionMechanismSpi実装をカプセル化する新しいExemptionMechanismオブジェクトが返されます。 指定されたProviderオブジェクトは、プロバイダ・リストに登録する必要はありません。
- パラメータ:
algorithm- 要求された除外メカニズムの標準名。 標準除外メカニズム名の詳細については、「Javaセキュリティ標準アルゴリズム名指定」のExemptionMechanismセクションを参照してください。provider- プロバイダ- 戻り値:
- 新しい
ExemptionMechanismオブジェクト - 例外:
IllegalArgumentException-providerがnullの場合NoSuchAlgorithmException- 指定されたアルゴリズムのExemptionMechanismSpi実装が、指定されたProvider objectから使用できない場合NullPointerException-algorithmがnullである場合- 関連項目:
Provider
-
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- 生成の処理で問題が見つかった場合。
-
-