- java.lang.Object
-
- javax.crypto.ExemptionMechanism
-
public class ExemptionMechanism extends Object
このクラスは、除外メカニズムの機能と、鍵の回復、鍵の弱化、および鍵エスクローの例を提供します。除外メカニズムを使用するアプリケーションまたはアプレットには、使用しないものより強力な暗号化機能を付与できます。
- 導入されたバージョン:
- 1.4
-
-
コンストラクタのサマリー
コンストラクタ 修飾子 コンストラクタ 説明 protected
ExemptionMechanism(ExemptionMechanismSpi exmechSpi, Provider provider, String mechanism)
ExemptionMechanismオブジェクトを生成します。
-
メソッドのサマリー
すべてのメソッド staticメソッド インスタンス・メソッド 具象メソッド 修飾子と型 メソッド 説明 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, String provider)
指定した除外メカニズム・アルゴリズムを実装するExemptionMechanism
オブジェクトを返します。static ExemptionMechanism
getInstance(String algorithm, Provider 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が正常に生成されたかどうかを返します。
-
-
-
コンストラクタの詳細
-
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.preferred
Security
プロパティを使用して、指定されたアルゴリズムの優先プロバイダの順序を決定します。 これは、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
- 生成の処理で問題が見つかった場合。
-
-