クラスExemptionMechanism

java.lang.Object
javax.crypto.ExemptionMechanism

public class ExemptionMechanism extends Object
このクラスは、除外メカニズムの機能と、キーの回復キーの弱化、およびキー・エスクローの例を提供します。

除外メカニズムを使用するアプリケーションは、使用しないアプリケーションに比べて強力な暗号化機能が付与されます。

導入されたバージョン:
1.4
  • コンストラクタのサマリー

    コンストラクタ
    修飾子
    コンストラクタ
    説明
    protected
    ExemptionMechanism(ExemptionMechanismSpi exmechSpi, Provider provider, String mechanism)
    ExemptionMechanismオブジェクトを作成します。
  • メソッドのサマリー

    修飾子と型
    メソッド
    説明
    final byte[]
    除外メカニズムのキーBlobを生成します。
    final int
    genExemptionBlob(byte[] output)
    除外メカニズムのキーBlobを生成して、結果をoutputバッファに格納します。
    final int
    genExemptionBlob(byte[] output, int outputOffset)
    除外メカニズムのキーBlobを生成して、結果をoutputOffsetから始まるoutputバッファに格納します。
    static final ExemptionMechanism
    getInstance(String algorithm)
    指定した除外メカニズム・アルゴリズムを実装するExemptionMechanismオブジェクトを返します。
    static final ExemptionMechanism
    getInstance(String algorithm, String provider)
    指定した除外メカニズム・アルゴリズムを実装するExemptionMechanismオブジェクトを返します。
    static final ExemptionMechanism
    getInstance(String algorithm, Provider provider)
    指定した除外メカニズム・アルゴリズムを実装するExemptionMechanismオブジェクトを返します。
    final String
    このExemptionMechanismオブジェクトの除外メカニズム名を返します。
    final int
    getOutputSize(int inputLen)
    入力の長さinputLen (バイト単位)を指定して、次のgenExemptionBlob操作の結果を保持するために必要な出力バッファの長さをバイト数で返します。
    final Provider
    このExemptionMechanismオブジェクトのプロバイダを返します。
    final void
    init(Key key)
    キーを使用してこの除外メカニズムを初期化します。
    final void
    キーとアルゴリズム・パラメータのセットを使用してこの除外メカニズムを初期化します。
    final void
    キーとアルゴリズム・パラメータのセットを使用してこの除外メカニズムを初期化します。
    final boolean
    この除外メカニズムにより結果Blobが正常に生成されたかどうかを返します。

    クラスオブジェクトで宣言されたメソッド

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    修飾子と型
    メソッド
    説明
    protected Object
    このオブジェクトのコピーを作成して、返します。
    boolean
    このオブジェクトと他のオブジェクトが等しいかどうかを示します。
    protected void
    削除予定のため非推奨: このAPI要素は、将来のバージョンで削除される可能性があります。
    最終決定は非推奨であり、将来のリリースで削除される可能性があります。
    final Class<?>
    このObjectの実行時クラスを返します。
    int
    このオブジェクトに対するハッシュ・コード値を返します。
    final void
    このオブジェクトのモニターで待機中のスレッドを1つ再開します。
    final void
    このオブジェクトのモニターで待機中のすべてのスレッドを再開します。
    オブジェクトの文字列表現を返します。
    final void
    現在のスレッドが目覚めるまで待機します。通常、notifiedまたはinterruptedです。
    final void
    wait(long timeoutMillis)
    現在のスレッドは、通常、notifiedまたはinterruptedであるか、一定のリアルタイムが経過するまで、目覚めるまで待機します。
    final void
    wait(long timeoutMillis, int nanos)
    現在のスレッドは、通常、notifiedまたはinterruptedであるか、一定のリアルタイムが経過するまで、目覚めるまで待機します。
  • コンストラクタの詳細

    • 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.preferred Securityプロパティを使用して、指定したアルゴリズムの優先プロバイダ順序を決定します。 これは、Security.getProviders()によって返されるプロバイダの順序とは異なる場合があります。
      パラメータ:
      algorithm - 要求された除外メカニズムの標準名。 標準の免税メカニズム名の詳細は、「Javaセキュリティ標準アルゴリズム名仕様」のExemptionMechanismの項を参照してください。
      戻り値:
      新しいExemptionMechanismオブジェクト
      スロー:
      NoSuchAlgorithmException - Providerが、指定されたアルゴリズムのExemptionMechanismSpi実装をサポートしていない場合
      NullPointerException - algorithmnullである場合
      外部仕様
      関連項目:
    • 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である場合
      外部仕様
      関連項目:
    • getInstance

      public static final ExemptionMechanism getInstance(String algorithm, Provider provider) throws NoSuchAlgorithmException
      指定した除外メカニズム・アルゴリズムを実装するExemptionMechanismオブジェクトを返します。

      指定されたプロバイダ・オブジェクトからExemptionMechanismSpi実装をカプセル化する新しいExemptionMechanismオブジェクトが返されます。 指定したプロバイダ・オブジェクトは、プロバイダ・リストに登録する必要はありません。

      パラメータ:
      algorithm - 要求された除外メカニズムの標準名。 標準の免税メカニズム名の詳細は、「Javaセキュリティ標準アルゴリズム名仕様」のExemptionMechanismの項を参照してください。
      provider - プロバイダ
      戻り値:
      新しいExemptionMechanismオブジェクト
      スロー:
      IllegalArgumentException - providernullの場合
      NoSuchAlgorithmException - 指定されたアルゴリズムのExemptionMechanismSpi実装が、指定されたProviderオブジェクトから使用できない場合
      NullPointerException - algorithmnullである場合
      外部仕様
      関連項目:
    • getProvider

      public final Provider getProvider()
      このExemptionMechanismオブジェクトのプロバイダを返します。
      戻り値:
      このExemptionMechanismオブジェクトのプロバイダ。
    • isCryptoAllowed

      public final boolean isCryptoAllowed(Key key) throws ExemptionMechanismException
      この除外メカニズムにより結果Blobが正常に生成されたかどうかを返します。

      このメソッドは、渡されたキーが、この除外メカニズムが初期化および生成段階で使用したキーと同じであることも確認します。

      パラメータ:
      key - 暗号が使用するキー。
      戻り値:
      この免税メカニズムによって同じキーの結果BLOBが正常に生成されたかどうか。keynullの場合は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

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

      この免税メカニズムでアルゴリズム・パラメータが必要で、paramsnullの場合、基礎となる免税メカニズムの実装では、必須パラメータ自体(プロバイダ固有のデフォルト値の使用)を生成する必要があります。コール元でアルゴリズム・パラメータを指定する必要がある場合は、InvalidAlgorithmParameterExceptionが発生します。

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

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

      この免税メカニズムでアルゴリズム・パラメータが必要で、paramsnullの場合、基礎となる免税メカニズムの実装では、必須パラメータ自体(プロバイダ固有のデフォルト値の使用)を生成する必要があります。コール元でアルゴリズム・パラメータを指定する必要がある場合は、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 - 生成の処理で問題が見つかった場合。