モジュール java.base
パッケージ 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オブジェクトを生成します。
  • メソッドのサマリー

    修飾子と型 メソッド 説明
    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が正常に生成されたかどうかを返します。

    クラス java.lang.Objectで宣言されたメソッド

    cloneequalsfinalizegetClasshashCodenotifynotifyAlltoStringwaitwaitwait
  • コンストラクタの詳細

    • 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 - algorithmnullである場合
      関連項目:
      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 - providernullまたは空の場合
      NoSuchAlgorithmException - 指定されたアルゴリズムのExemptionMechanismSpi実装が、指定されたプロバイダから利用可能でない場合
      NoSuchProviderException - 指定されたプロバイダがセキュリティ・プロバイダ・リストに登録されていない場合
      NullPointerException - algorithmnullである場合
      関連項目:
      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 - algorithmnullである場合
      関連項目:
      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

      キーとアルゴリズム・パラメータのセットを使用してこの除外メカニズムを初期化します。

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

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

      キーとアルゴリズム・パラメータのセットを使用してこの除外メカニズムを初期化します。

      この除外メカニズムがアルゴリズム・パラメータを必要とし、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 - 生成の処理で問題が見つかった場合。