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が正常に生成されたかどうかを返します。
- 
コンストラクタの詳細- 
ExemptionMechanismprotected ExemptionMechanism(ExemptionMechanismSpi exmechSpi, Provider provider, String mechanism)ExemptionMechanismオブジェクトを生成します。- パラメータ:
- exmechSpi- 委譲先
- provider- プロバイダ
- mechanism- 除外メカニズム
 
 
- 
- 
メソッドの詳細- 
getNamepublic final String getName()このExemptionMechanismオブジェクトの除外メカニズム名を返します。これは、この ExemptionMechanismオブジェクトを作成したgetInstance呼出しのいずれかに指定された名前と同じです。- 戻り値:
- このExemptionMechanismオブジェクトの除外メカニズム名。
 
- 
getInstancepublic 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
 
- 
getInstancepublic 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
 
- 
getInstancepublic 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
 
- 
getProviderpublic final Provider getProvider()このExemptionMechanismオブジェクトのプロバイダを返します。- 戻り値:
- このExemptionMechanismオブジェクトのプロバイダ。
 
- 
isCryptoAllowedpublic final boolean isCryptoAllowed(Key key) throws ExemptionMechanismExceptionこの除外メカニズムにより結果Blobが正常に生成されたかどうかを返します。このメソッドは、渡されたキーが、この除外メカニズムが初期化および生成段階で使用したキーと同じであることも確認します。 - パラメータ:
- key- 暗号が使用するキー。
- 戻り値:
- この除外メカニズムにより同じキーの結果Blobが正常に生成されたどうかを返す。keyがnullの場合はfalse。
- 例外:
- ExemptionMechanismException- この除外メカニズム・オブジェクトにより結果Blobが正常に生成されたかどうかを判定する際に問題が見つかった場合。
 
- 
getOutputSizepublic final int getOutputSize(int inputLen) throws IllegalStateException入力の長さinputLen(バイト単位)を指定して、次のgenExemptionBlob操作の結果を保持するために必要な出力バッファの長さをバイト数で返します。次の genExemptionBlob呼出しの実際の出力長は、このメソッドが返す長さより小さいことがあります。- パラメータ:
- inputLen- 入力長(バイト単位)
- 戻り値:
- 必要な出力バッファ・サイズ(バイト単位)
- 例外:
- IllegalStateException- この除外メカニズムが誤った状態にある場合(まだ初期化されていないなど)
 
- 
initpublic final void init(Key key) throws InvalidKeyException, ExemptionMechanismExceptionキーを使用してこの除外メカニズムを初期化します。この除外メカニズムが、指定された keyから派生できないアルゴリズム・パラメータを必要とする場合、基本となる除外メカニズムの実装は、プロバイダ固有のデフォルト値を使用して必要なパラメータ自体を生成します。アルゴリズム・パラメータを呼出し側で指定する必要がある場合は、InvalidKeyExceptionが発生します。- パラメータ:
- key- この除外メカニズムのキー
- 例外:
- InvalidKeyException- 指定されたキーがこの除外メカニズムに不適切な場合。
- ExemptionMechanismException- 初期化の処理で問題が見つかった場合。
 
- 
initpublic final void init(Key key, AlgorithmParameterSpec params) throws InvalidKeyException, InvalidAlgorithmParameterException, ExemptionMechanismExceptionキーとアルゴリズム・パラメータのセットを使用してこの除外メカニズムを初期化します。この除外メカニズムがアルゴリズム・パラメータを必要とし、 paramsがnullである場合、基本となる除外メカニズムの実装は、プロバイダ固有のデフォルト値を使用して必要なパラメータ自体を生成します。アルゴリズム・パラメータを呼出し側で指定する必要がある場合は、InvalidAlgorithmParameterExceptionが発生します。- パラメータ:
- key- この除外メカニズムのキー
- params- アルゴリズム・パラメータ
- 例外:
- InvalidKeyException- 指定されたキーがこの除外メカニズムに不適切な場合。
- InvalidAlgorithmParameterException- 指定されたアルゴリズム・パラメータがこの除外メカニズムに不適切な場合。
- ExemptionMechanismException- 初期化の処理で問題が見つかった場合。
 
- 
initpublic final void init(Key key, AlgorithmParameters params) throws InvalidKeyException, InvalidAlgorithmParameterException, ExemptionMechanismExceptionキーとアルゴリズム・パラメータのセットを使用してこの除外メカニズムを初期化します。この除外メカニズムがアルゴリズム・パラメータを必要とし、 paramsがnullである場合、基本となる除外メカニズムの実装は、プロバイダ固有のデフォルト値を使用して必要なパラメータ自体を生成します。アルゴリズム・パラメータを呼出し側で指定する必要がある場合は、InvalidAlgorithmParameterExceptionが発生します。- パラメータ:
- key- この除外メカニズムのキー
- params- アルゴリズム・パラメータ
- 例外:
- InvalidKeyException- 指定されたキーがこの除外メカニズムに不適切な場合。
- InvalidAlgorithmParameterException- 指定されたアルゴリズム・パラメータがこの除外メカニズムに不適切な場合。
- ExemptionMechanismException- 初期化の処理で問題が見つかった場合。
 
- 
genExemptionBlobpublic final byte[] genExemptionBlob() throws IllegalStateException, ExemptionMechanismException除外メカニズムのキーBlobを生成します。- 戻り値:
- 結果のキーBlobの入った新しいバッファ
- 例外:
- IllegalStateException- この除外メカニズムが誤った状態にある場合(初期化されていないなど)。
- ExemptionMechanismException- 生成の処理で問題が見つかった場合。
 
- 
genExemptionBlobpublic final int genExemptionBlob(byte[] output) throws IllegalStateException, ShortBufferException, ExemptionMechanismException除外メカニズムのキーBlobを生成して、結果をoutputバッファに格納します。outputバッファが小さすぎて結果を保持できない場合は、ShortBufferExceptionがスローされます。 この場合、より大きな出力バッファを使用してこの呼出しを繰り返します。getOutputSizeを使用して、必要な出力バッファのサイズを判定します。- パラメータ:
- output- 結果を格納するバッファ
- 戻り値:
- outputに格納されたバイト数
- 例外:
- IllegalStateException- この除外メカニズムが誤った状態にある場合(初期化されていないなど)。
- ShortBufferException- 指定された出力バッファが小さすぎて結果を保持できない場合。
- ExemptionMechanismException- 生成の処理で問題が見つかった場合。
 
- 
genExemptionBlobpublic final int genExemptionBlob(byte[] output, int outputOffset) throws IllegalStateException, ShortBufferException, ExemptionMechanismException除外メカニズムのキーBlobを生成して、結果をoutputOffsetから始まるoutputバッファに格納します。outputバッファが小さすぎて結果を保持できない場合は、ShortBufferExceptionがスローされます。 この場合、より大きな出力バッファを使用してこの呼出しを繰り返します。getOutputSizeを使用して、必要な出力バッファのサイズを判定します。- パラメータ:
- output- 結果を格納するバッファ
- outputOffset- 結果が格納される- output内のオフセット
- 戻り値:
- outputに格納されたバイト数
- 例外:
- IllegalStateException- この除外メカニズムが誤った状態にある場合(初期化されていないなど)。
- ShortBufferException- 指定された出力バッファが小さすぎて結果を保持できない場合。
- ExemptionMechanismException- 生成の処理で問題が見つかった場合。
 
 
-