JavaTM Platform
Standard Ed. 6

javax.crypto
クラス CipherSpi

java.lang.Object
  上位を拡張 javax.crypto.CipherSpi

public abstract class CipherSpi
extends Object

このクラスは、Cipher クラスの Service Provider Interface (SPI) を定義します。特定の暗号アルゴリズムの実装を提供する各暗号化サービスプロバイダは、このクラスのすべての抽象メソッドを実装する必要があります。

この CipherSpi クラスのインスタンスをカプセル化する Cipher のインスタンスを生成するには、アプリケーションは Cipher エンジンクラスの getInstance ファクトリメソッドの 1 つを呼び出して、要求された「変換」を指定します。アプリケーションは、必要に応じて、プロバイダの名前を指定することもできます。

「変換」とは、出力を生成するために、指定された入力に対して実行する操作 (または一連の操作) を記述する文字列のことです。変換には常に暗号化アルゴリズム名 (DES など) が含まれており、フィードバックモードとパディング方式があとに続くことがあります。

変換は、次の書式で記述されます。

後者の場合、モードとパディング方式についてはプロバイダ固有のデフォルト値が使用されます。有効な変換の例を次に示します。

Cipher c = Cipher.getInstance("DES/CBC/PKCS5Padding");
 

プロバイダは、「アルゴリズム/モード/パディング」の各組み合わせに対して個別のクラスを提供するか、あるいは「アルゴリズム」、「アルゴリズム/モード」、または「アルゴリズム//パディング」 (二重スラッシュに注意) に対応するサブ変換を表すより総称クラスを提供することができます。総称クラスを提供する場合、要求されたモードやパディングは、プロバイダの CipherSpi のサブクラスの engineSetMode および engineSetPadding メソッドを呼び出す、CiphergetInstance メソッドにより自動的に設定されます。

プロバイダのマスタークラス内の Cipher プロパティーの形式は、次のどれかになります。

たとえば、プロバイダは DES/ECB/PKCS5Padding、DES/CBC/PKCS5Padding、DES/CFB/PKCS5Padding、さらに DES/OFB/PKCS5Padding をそれぞれ実装する CipherSpi のサブクラスを提供可能です。このプロバイダは、マスタークラス内に次の Cipher プロパティーを保持します。

別のプロバイダは、上記の各モードに対応したクラス (ECB、CBC、CFB、および OFB 用にそれぞれ 1 つのクラス) を実装できます。また、PKCS5Padding に対応する 1 つのクラス、および CipherSpi からサブクラス化された総称 DES クラスも実装できます。このプロバイダは、マスタークラス内に次の Cipher プロパティーを保持します。

「algorithm」形式の変換の場合、Cipher エンジンクラスの getInstance ファクトリメソッドは、次の規則に従ってプロバイダの CipherSpi 実装をインスタンス化します。

  1. プロバイダが、指定された「algorithm」に対応する CipherSpi のサブクラスを登録済みかどうかをチェックする。 

    登録済みの場合、このクラスをインスタンス化して、このモードおよびパディング方式のデフォルト値 (プロバイダにより提供) を使用可能にします。 

    未登録の場合、例外 NoSuchAlgorithmException をスローします。

「algorithm/mode/padding」形式の変換の場合、Cipher エンジンクラスの getInstance ファクトリメソッドは、次の規則に従ってプロバイダの CipherSpi 実装をインスタンス化します。

  1. プロバイダが、指定された「algorithm/mode/padding」変換に対応する CipherSpi のサブクラスを登録済みかどうかをチェックする。 

    登録済みの場合、このクラスをインスタンス化します。 

    未登録の場合、次のステップに進みます。

  2. プロバイダが、サブ変換「algorithm/mode」に対応する CipherSpi のサブクラスを登録済みかどうかをチェックする。 

    登録済みの場合、このクラスをインスタンス化してから、新規インスタンスに対し engineSetPadding(padding) を呼び出します。 

    未登録の場合、次のステップに進みます。

  3. プロバイダが、サブ変換「algorithm//padding」 (ダブルスラッシュに注意) に対応する CipherSpi のサブクラスを登録済みかどうかをチェックする。 

    登録済みの場合、このクラスをインスタンス化してから、新規インスタンスに対し engineSetMode(mode) を呼び出します。 

    未登録の場合、次のステップに進みます。

  4. プロバイダが、サブ変換「algorithm」に対応する CipherSpi のサブクラスを登録済みかどうかをチェックする。 

    登録済みの場合、このクラスをインスタンス化してから、新規インスタンスに対し engineSetMode(mode) および engineSetPadding(padding) を呼び出します。 

    未登録の場合、例外 NoSuchAlgorithmException をスローします。

導入されたバージョン:
1.4
関連項目:
KeyGenerator, SecretKey

コンストラクタの概要
CipherSpi()
           
 
メソッドの概要
protected abstract  byte[] engineDoFinal(byte[] input, int inputOffset, int inputLen)
          単一の部分から成る操作でデータを暗号化または復号化するか、複数の部分から成る操作を終了します。
protected abstract  int engineDoFinal(byte[] input, int inputOffset, int inputLen, byte[] output, int outputOffset)
          単一の部分から成る操作でデータを暗号化または復号化するか、複数の部分から成る操作を終了します。
protected  int engineDoFinal(ByteBuffer input, ByteBuffer output)
          単一の部分から成る操作でデータを暗号化または復号化するか、複数の部分から成る操作を終了します。
protected abstract  int engineGetBlockSize()
          ブロックサイズを返します (バイト単位)。
protected abstract  byte[] engineGetIV()
          新しいバッファーの初期化ベクタ (IV) を返します。
protected  int engineGetKeySize(Key key)
          指定された鍵オブジェクトの鍵サイズをビット単位で返します。
protected abstract  int engineGetOutputSize(int inputLen)
          入力の長さ inputLen (バイト単位) を指定して、次の update または doFinal 操作の結果を保持するために必要な出力バッファーの長さをバイト数で返します。
protected abstract  AlgorithmParameters engineGetParameters()
          この暗号で使用されるパラメータを返します。
protected abstract  void engineInit(int opmode, Key key, AlgorithmParameterSpec params, SecureRandom random)
          鍵、アルゴリズムパラメータのセット、および乱数発生の元を使用してこの暗号を初期化します。
protected abstract  void engineInit(int opmode, Key key, AlgorithmParameters params, SecureRandom random)
          鍵、アルゴリズムパラメータのセット、および乱数発生の元を使用してこの暗号を初期化します。
protected abstract  void engineInit(int opmode, Key key, SecureRandom random)
          鍵と乱数発生の元を使用してこの暗号を初期化します。
protected abstract  void engineSetMode(String mode)
          この暗号のモードを設定します。
protected abstract  void engineSetPadding(String padding)
          この暗号のパディング機構を設定します。
protected  Key engineUnwrap(byte[] wrappedKey, String wrappedKeyAlgorithm, int wrappedKeyType)
          前にラップされた鍵をラップ解除します。
protected abstract  byte[] engineUpdate(byte[] input, int inputOffset, int inputLen)
          複数の部分から成る暗号化または復号化操作 (この暗号の初期化方法により異なる) を継続し、別のデータ部分を処理します。
protected abstract  int engineUpdate(byte[] input, int inputOffset, int inputLen, byte[] output, int outputOffset)
          複数の部分から成る暗号化または復号化操作 (この暗号の初期化方法により異なる) を継続し、別のデータ部分を処理します。
protected  int engineUpdate(ByteBuffer input, ByteBuffer output)
          複数の部分から成る暗号化または復号化操作 (この暗号の初期化方法により異なる) を継続し、別のデータ部分を処理します。
protected  byte[] engineWrap(Key key)
          鍵をラップします。
 
クラス java.lang.Object から継承されたメソッド
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

コンストラクタの詳細

CipherSpi

public CipherSpi()
メソッドの詳細

engineSetMode

protected abstract void engineSetMode(String mode)
                               throws NoSuchAlgorithmException
この暗号のモードを設定します。

パラメータ:
mode - 暗号化モード
例外:
NoSuchAlgorithmException - 要求された暗号化モードが存在しない場合

engineSetPadding

protected abstract void engineSetPadding(String padding)
                                  throws NoSuchPaddingException
この暗号のパディング機構を設定します。

パラメータ:
padding - パディング機構
例外:
NoSuchPaddingException - 要求されたパディング機構が存在しない場合

engineGetBlockSize

protected abstract int engineGetBlockSize()
ブロックサイズを返します (バイト単位)。

戻り値:
ブロックサイズ (バイト単位)。基本となるアルゴリズムがブロック暗号でない場合は 0

engineGetOutputSize

protected abstract int engineGetOutputSize(int inputLen)
入力の長さ inputLen (バイト単位) を指定して、次の update または doFinal 操作の結果を保持するために必要な出力バッファーの長さをバイト数で返します。

この呼び出しでは、以前の update 呼び出しの処理されていない (バッファーにある) データを考慮し、パディングします。

次の update または doFinal 呼び出しの実際の出力長は、このメソッドが返す長さより小さいことがあります。

パラメータ:
inputLen - 入力長 (バイト単位)
戻り値:
必要な出力バッファーサイズ (バイト単位)

engineGetIV

protected abstract byte[] engineGetIV()
新しいバッファーの初期化ベクタ (IV) を返します。

これは、IV がユーザー指定のパスフレーズから派生するパスワードベースの暗号化または復号化のコンテキストにおいて役立ちます。

戻り値:
新しいバッファー内の初期化ベクタ。基本となるアルゴリズムが IV を使用しない場合、または IV が設定されていない場合は null

engineGetParameters

protected abstract AlgorithmParameters engineGetParameters()
この暗号で使用されるパラメータを返します。

返されるパラメータは、この暗号を初期化するのに使用したものと同じ場合があります。または、返されるパラメータには、この暗号にアルゴリズムパラメータが必要で、かつアルゴリズムパラメータで初期化されなかった場合に、基本となる暗号実装で使用されるデフォルトとランダムのパラメータ値の組み合わせが含まれることもあります。

戻り値:
この暗号で使用されるパラメータ。この暗号でパラメータを使用しない場合は null

engineInit

protected abstract void engineInit(int opmode,
                                   Key key,
                                   SecureRandom random)
                            throws InvalidKeyException
鍵と乱数発生の元を使用してこの暗号を初期化します。

この暗号は、opmode の値に従って、暗号化、復号化、鍵ラッピング、または鍵ラッピング解除の 4 つの操作の 1 つに合わせて初期化されます。

この暗号が、指定された key から派生できないアルゴリズムパラメータを必要とする場合、基本となる暗号実装は、暗号化または鍵ラッピング用に初期化されていれば、プロバイダ固有のデフォルトまたはランダム値を使用して必要なパラメータ自体を生成し、復号化または鍵ラッピング解除用に初期化されていれば、InvalidKeyException を発生させます。生成されたパラメータは、engineGetParameters または engineGetIV (パラメータが IV の場合) を使用して取り出すことができます。

この暗号 (基本となるフィードバックまたはパディング方式を含む) が乱数バイトを必要とする場合 (パラメータ生成のためなど) は、random から取得します。

Cipher オブジェクトが初期化されると、以前に取得した状態はすべて失われます。つまり、Cipher を初期化することは、その Cipher の新しいインスタンスを作成して初期化することと同じです。

パラメータ:
opmode - この暗号の操作モード (ENCRYPT_MODEDECRYPT_MODEWRAP_MODE、または UNWRAP_MODE のどれか)
key - 暗号化鍵
random - 乱数発生の元
例外:
InvalidKeyException - 指定された鍵がこの暗号の初期化に不適切な場合、またはこの暗号が復号化用に初期化され、指定された鍵から判定することができないアルゴリズムパラメータを必要とする場合

engineInit

protected abstract void engineInit(int opmode,
                                   Key key,
                                   AlgorithmParameterSpec params,
                                   SecureRandom random)
                            throws InvalidKeyException,
                                   InvalidAlgorithmParameterException
鍵、アルゴリズムパラメータのセット、および乱数発生の元を使用してこの暗号を初期化します。

この暗号は、opmode の値に従って、暗号化、復号化、鍵ラッピング、または鍵ラッピング解除の 4 つの操作の 1 つに合わせて初期化されます。

この暗号がアルゴリズムパラメータを必要とし、params が null の場合、基本となる暗号実装は、暗号化または鍵ラッピング用に初期化されていれば、プロバイダ固有のデフォルトまたはランダム値を使用して必要なパラメータ自体を生成し、復号化または鍵ラッピング解除用に初期化されていれば、InvalidAlgorithmParameterException を発生させます。生成されたパラメータは、engineGetParameters または engineGetIV (パラメータが IV の場合) を使用して取り出すことができます。

この暗号 (基本となるフィードバックまたはパディング方式を含む) が乱数バイトを必要とする場合 (パラメータ生成のためなど) は、random から取得します。

Cipher オブジェクトが初期化されると、以前に取得した状態はすべて失われます。つまり、Cipher を初期化することは、その Cipher の新しいインスタンスを作成して初期化することと同じです。

パラメータ:
opmode - この暗号の操作モード (ENCRYPT_MODEDECRYPT_MODEWRAP_MODE、または UNWRAP_MODE のどれか)
key - 暗号化鍵
params - アルゴリズムパラメータ
random - 乱数発生の元
例外:
InvalidKeyException - 指定された鍵がこの暗号の初期化に不適切な場合
InvalidAlgorithmParameterException - 指定されたアルゴリズムパラメータがこの暗号に不適切な場合、またはこの暗号が復号化用に初期化され、アルゴリズムパラメータを必要とし、params が null の場合

engineInit

protected abstract void engineInit(int opmode,
                                   Key key,
                                   AlgorithmParameters params,
                                   SecureRandom random)
                            throws InvalidKeyException,
                                   InvalidAlgorithmParameterException
鍵、アルゴリズムパラメータのセット、および乱数発生の元を使用してこの暗号を初期化します。

この暗号は、opmode の値に従って、暗号化、復号化、鍵ラッピング、または鍵ラッピング解除の 4 つの操作の 1 つに合わせて初期化されます。

この暗号がアルゴリズムパラメータを必要とし、params が null の場合、基本となる暗号実装は、暗号化または鍵ラッピング用に初期化されていれば、プロバイダ固有のデフォルトまたはランダム値を使用して必要なパラメータ自体を生成し、復号化または鍵ラッピング解除用に初期化されていれば、InvalidAlgorithmParameterException を発生させます。生成されたパラメータは、engineGetParameters または engineGetIV (パラメータが IV の場合) を使用して取り出すことができます。

この暗号 (基本となるフィードバックまたはパディング方式を含む) が乱数バイトを必要とする場合 (パラメータ生成のためなど) は、random から取得します。

Cipher オブジェクトが初期化されると、以前に取得した状態はすべて失われます。つまり、Cipher を初期化することは、その Cipher の新しいインスタンスを作成して初期化することと同じです。

パラメータ:
opmode - この暗号の操作モード (ENCRYPT_MODEDECRYPT_MODEWRAP_MODE、または UNWRAP_MODE のどれか)
key - 暗号化鍵
params - アルゴリズムパラメータ
random - 乱数発生の元
例外:
InvalidKeyException - 指定された鍵がこの暗号の初期化に不適切な場合
InvalidAlgorithmParameterException - 指定されたアルゴリズムパラメータがこの暗号に不適切な場合、またはこの暗号が復号化用に初期化され、アルゴリズムパラメータを必要とし、params が null の場合

engineUpdate

protected abstract byte[] engineUpdate(byte[] input,
                                       int inputOffset,
                                       int inputLen)
複数の部分から成る暗号化または復号化操作 (この暗号の初期化方法により異なる) を継続し、別のデータ部分を処理します。

inputOffset から始まる、input バッファー内の最初の inputLen バイトが処理され、結果が新しいバッファーに格納されます。

パラメータ:
input - 入力バッファー
inputOffset - 入力を開始する input 内のオフセット
inputLen - 入力長
戻り値:
結果の入った新しいバッファー。基本となる暗号がブロック暗号であり、入力データが短かすぎて新しいブロックにならない場合は null

engineUpdate

protected abstract int engineUpdate(byte[] input,
                                    int inputOffset,
                                    int inputLen,
                                    byte[] output,
                                    int outputOffset)
                             throws ShortBufferException
複数の部分から成る暗号化または復号化操作 (この暗号の初期化方法により異なる) を継続し、別のデータ部分を処理します。

inputOffset から始まる、input バッファーー内の最初の inputLen バイトが処理され、結果は output バッファーの outputOffset から始まる位置に格納されます。

output バッファーが小さすぎて結果を保持できない場合は、ShortBufferException がスローされます。

パラメータ:
input - 入力バッファー
inputOffset - 入力を開始する input 内のオフセット
inputLen - 入力長
output - 結果を格納するバッファー
outputOffset - 結果が格納される output 内のオフセット
戻り値:
output に格納されたバイト数
例外:
ShortBufferException - 指定された出力バッファーが小さすぎて結果を保持できない場合

engineUpdate

protected int engineUpdate(ByteBuffer input,
                           ByteBuffer output)
                    throws ShortBufferException
複数の部分から成る暗号化または復号化操作 (この暗号の初期化方法により異なる) を継続し、別のデータ部分を処理します。

input.position() から始まるすべての input.remaining() バイトが処理されます。結果は出力バッファーに格納されます。終了時に、入力バッファーの位置はリミットに等しくなりますが、リミットは変更されません。出力バッファーの位置は n だけ増加します。n は、このメソッドが返す値です。出力バッファーのリミットは変更されません。

output.remaining() バイトが結果を保持するのに不十分な場合は、ShortBufferException がスローされます。

ByteBuffer をバイト配列よりも効率的に処理できる場合、このメソッドをサブクラスでオーバーライドすることを検討してください。

パラメータ:
input - 入力 ByteBuffer
output - 出力 ByteByffer
戻り値:
output に格納されたバイト数
例外:
ShortBufferException - 出力バッファー内に残っている容量が不足している場合
NullPointerException - どちらのパラメータも null の場合
導入されたバージョン:
1.5

engineDoFinal

protected abstract byte[] engineDoFinal(byte[] input,
                                        int inputOffset,
                                        int inputLen)
                                 throws IllegalBlockSizeException,
                                        BadPaddingException
単一の部分から成る操作でデータを暗号化または復号化するか、複数の部分から成る操作を終了します。データは、この暗号が初期化された方法に従って、暗号化または復号化されます。

inputOffset から始まる input バッファー内の最初の inputLen バイト、および前の update 操作でバッファーに入れられた可能性のあるすべての入力バイトが処理され、パディング (要求された場合) が適用されます。結果は新しいバッファーに格納されます。

終了時に、このメソッドはこの暗号オブジェクトを前に engineInit を呼び出して初期化されたときの状態にリセットします。つまり、オブジェクトはリセットされて、さらにデータを暗号化または復号化するために使用できます (engineInit の呼び出しで指定された操作モードにより異なる)。

注:例外がスローされる場合、この暗号オブジェクトはリセットしないと再度使用できない場合があります。

パラメータ:
input - 入力バッファー
inputOffset - 入力を開始する input 内のオフセット
inputLen - 入力長
戻り値:
結果の入った新しいバッファー
例外:
IllegalBlockSizeException - この暗号がブロック暗号であり、パディングが要求されておらず (暗号化モードの場合のみ)、この暗号で処理されたデータの入力長の合計がブロックサイズの倍数でない場合。または、この暗号化アルゴリズムが、指定された入力データを処理できない場合
BadPaddingException - この暗号が復号化モードであり、パディング (またはパディング解除) が要求されたが、復号化されたデータが適切なパディングバイトでバインドされない場合

engineDoFinal

protected abstract int engineDoFinal(byte[] input,
                                     int inputOffset,
                                     int inputLen,
                                     byte[] output,
                                     int outputOffset)
                              throws ShortBufferException,
                                     IllegalBlockSizeException,
                                     BadPaddingException
単一の部分から成る操作でデータを暗号化または復号化するか、複数の部分から成る操作を終了します。データは、この暗号が初期化された方法に従って、暗号化または復号化されます。

inputOffset から始まる input バッファー内の最初の inputLen バイト、および前の update 操作でバッファーに入れられた可能性のあるすべての入力バイトが処理され、パディング (要求された場合) が適用されます。結果は、outputOffset から始まる output バッファーに格納されます。

output バッファーが小さすぎて結果を保持できない場合は、ShortBufferException がスローされます。

終了時に、このメソッドはこの暗号オブジェクトを前に engineInit を呼び出して初期化されたときの状態にリセットします。つまり、オブジェクトはリセットされて、さらにデータを暗号化または復号化するために使用できます (engineInit の呼び出しで指定された操作モードにより異なる)。

注:例外がスローされる場合、この暗号オブジェクトはリセットしないと再度使用できない場合があります。

パラメータ:
input - 入力バッファー
inputOffset - 入力を開始する input 内のオフセット
inputLen - 入力長
output - 結果を格納するバッファー
outputOffset - 結果が格納される output 内のオフセット
戻り値:
output に格納されたバイト数
例外:
IllegalBlockSizeException - この暗号がブロック暗号であり、パディングが要求されておらず (暗号化モードの場合のみ)、この暗号で処理されたデータの入力長の合計がブロックサイズの倍数でない場合。または、この暗号化アルゴリズムが、指定された入力データを処理できない場合
ShortBufferException - 指定された出力バッファーが小さすぎて結果を保持できない場合
BadPaddingException - この暗号が復号化モードであり、パディング (またはパディング解除) が要求されたが、復号化されたデータが適切なパディングバイトでバインドされない場合

engineDoFinal

protected int engineDoFinal(ByteBuffer input,
                            ByteBuffer output)
                     throws ShortBufferException,
                            IllegalBlockSizeException,
                            BadPaddingException
単一の部分から成る操作でデータを暗号化または復号化するか、複数の部分から成る操作を終了します。データは、この暗号が初期化された方法に従って、暗号化または復号化されます。

input.position() から始まるすべての input.remaining() バイトが処理されます。結果は出力バッファーに格納されます。終了時に、入力バッファーの位置はリミットに等しくなりますが、リミットは変更されません。出力バッファーの位置は n だけ増加します。n は、このメソッドが返す値です。出力バッファーのリミットは変更されません。

output.remaining() バイトが結果を保持するのに不十分な場合は、ShortBufferException がスローされます。

終了時に、このメソッドはこの暗号オブジェクトを前に engineInit を呼び出して初期化されたときの状態にリセットします。つまり、オブジェクトはリセットされて、さらにデータを暗号化または復号化するために使用できます (engineInit の呼び出しで指定された操作モードにより異なる)。

注:例外がスローされる場合、この暗号オブジェクトはリセットしないと再度使用できない場合があります。

ByteBuffer をバイト配列よりも効率的に処理できる場合、このメソッドをサブクラスでオーバーライドすることを検討してください。

パラメータ:
input - 入力 ByteBuffer
output - 出力 ByteByffer
戻り値:
output に格納されたバイト数
例外:
IllegalBlockSizeException - この暗号がブロック暗号であり、パディングが要求されておらず (暗号化モードの場合のみ)、この暗号で処理されたデータの入力長の合計がブロックサイズの倍数でない場合。または、この暗号化アルゴリズムが、指定された入力データを処理できない場合
ShortBufferException - 出力バッファー内に残っている容量が不足している場合
BadPaddingException - この暗号が復号化モードであり、パディング (またはパディング解除) が要求されたが、復号化されたデータが適切なパディングバイトでバインドされない場合
NullPointerException - どちらのパラメータも null の場合
導入されたバージョン:
1.5

engineWrap

protected byte[] engineWrap(Key key)
                     throws IllegalBlockSizeException,
                            InvalidKeyException
鍵をラップします。

この具象メソッドは、事前に定義されたこの abstract クラスに追加されたものです。下位互換性のために、抽象メソッドにはできません。鍵をラップするために、プロバイダによってオーバーライドされる場合があります。そのようなオーバーライドを行うと、指定された鍵をラップできない場合に、IllegalBlockSizeException または InvalidKeyException (指定された環境下) がスローされます。このメソッドがオーバーライドされない場合は、常に UnsupportedOperationException がスローされます。

パラメータ:
key - ラップされる鍵
戻り値:
ラップされた鍵
例外:
IllegalBlockSizeException - この暗号がブロック暗号であり、パディングが要求されておらず、ラップされる鍵のエンコーディングの長さがブロックサイズの倍数でない場合
InvalidKeyException - この暗号を使用して鍵をラップすることが不可能か安全でない場合 (ハードウェア保護された鍵がソフトウェアだけの暗号に渡される場合など)

engineUnwrap

protected Key engineUnwrap(byte[] wrappedKey,
                           String wrappedKeyAlgorithm,
                           int wrappedKeyType)
                    throws InvalidKeyException,
                           NoSuchAlgorithmException
前にラップされた鍵をラップ解除します。

この具象メソッドは、事前に定義されたこの abstract クラスに追加されたものです。下位互換性のために、抽象メソッドにはできません。前にラップされた鍵をラップ解除するために、プロバイダによってオーバーライドされる場合があります。そのようなオーバーライドを行うと、指定された、ラップされている鍵をラップ解除できない場合に、InvalidKeyException がスローされます。このメソッドがオーバーライドされない場合は、常に UnsupportedOperationException がスローされます。

パラメータ:
wrappedKey - ラップを解除される鍵
wrappedKeyAlgorithm - ラップされた鍵に関連したアルゴリズム
wrappedKeyType - ラップされた鍵のタイプ。SECRET_KEYPRIVATE_KEY、または PUBLIC_KEY のどれか
戻り値:
ラップ解除された鍵
例外:
NoSuchAlgorithmException - インストールされているどのプロバイダも wrappedKeyAlgorithmwrappedKeyType タイプの鍵を作成できない場合
InvalidKeyException - wrappedKeywrappedKeyAlgorithmwrappedKeyType タイプのラップされた鍵を表さない場合

engineGetKeySize

protected int engineGetKeySize(Key key)
                        throws InvalidKeyException
指定された鍵オブジェクトの鍵サイズをビット単位で返します。 

この具象メソッドは、事前に定義されたこの abstract クラスに追加されたものです。プロバイダによってオーバーライドされない場合は、UnsupportedOperationException をスローします。

パラメータ:
key - 鍵オブジェクト
戻り値:
指定された鍵オブジェクトの鍵サイズ
例外:
InvalidKeyException - key が無効な場合

JavaTM Platform
Standard Ed. 6

バグの報告と機能のリクエスト
さらに詳しい API リファレンスおよび開発者ドキュメントについては、Java SE 開発者用ドキュメントを参照してください。開発者向けの詳細な解説、概念の概要、用語の定義、バグの回避策、およびコード実例が含まれています。

Copyright 2006 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms. Documentation Redistribution Policy も参照してください。