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