モジュール java.base
パッケージ javax.crypto

クラスExemptionMechanism


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

    除外メカニズムを使用するアプリケーションまたはアプレットには、使用しないものより強力な暗号化機能を付与できます。

    導入されたバージョン:
    1.4
    • メソッドのサマリー

      すべてのメソッド 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 - 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

        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 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 - 生成の処理で問題が見つかった場合。