public abstract class CipherSpi extends Object
Cipher
クラスのサービスプロバイダインタフェース (SPI) を定義します。特定の暗号アルゴリズムの実装を提供する各暗号化サービスプロバイダは、このクラスのすべての抽象メソッドを実装する必要があります。
この CipherSpi
クラスのインスタンスをカプセル化する Cipher
のインスタンスを生成するには、アプリケーションは Cipher
エンジンクラスの getInstance
ファクトリメソッドの 1 つを呼び出して、要求された変換を指定します。アプリケーションは、必要に応じて、プロバイダの名前を指定することもできます。
変換は、指定された入力に対して実行し、何らかの出力を生成する操作 (または操作のセット) を説明する文字列です。変換には、暗号化アルゴリズム (DES など) の名前が必ず含まれます。それにフィードバックモードおよびパディング方式が続く場合もあります。
変換は、次の書式で記述されます。
後者の場合、モードおよびパディング方式には、プロバイダ固有のデフォルト値が使用されます。たとえば、次は有効な変換です。
Cipher c = Cipher.getInstance("DES/CBC/PKCS5Padding");
プロバイダは、algorithm/mode/padding の各組み合わせに対して個別のクラスを提供するか、あるいは algorithm、algorithm/mode、または algorithm//padding (二重スラッシュに注意) に対応するサブ変換を表すより汎用のクラスを提供することができます。汎用のクラスを提供する場合、要求されたモードやパディングは、プロバイダの CipherSpi
のサブクラスの engineSetMode
および engineSetPadding
メソッドを呼び出す、Cipher
の getInstance
メソッドにより自動的に設定されます。
プロバイダのマスタークラス内の Cipher
プロパティーの形式は、次のどれかになります。
// provider's subclass of "CipherSpi" implements "algName" with
// pluggable mode and padding
Cipher.
algName
// provider's subclass of "CipherSpi" implements "algName" in the
// specified "mode", with pluggable padding
Cipher.
algName/mode
// provider's subclass of "CipherSpi" implements "algName" with the
// specified "padding", with pluggable mode
Cipher.
algName//padding
// provider's subclass of "CipherSpi" implements "algName" with the
// specified "mode" and "padding"
Cipher.
algName/mode/padding
たとえば、プロバイダは、DES/ECB/PKCS5Padding、DES/CBC/PKCS5Padding、DES/CFB/PKCS5Padding、さらには DES/OFB/PKCS5Padding をそれぞれ実装する CipherSpi
のサブクラスを提供できます。このプロバイダは、マスタークラス内に次の Cipher
プロパティーを保持します。
Cipher.
DES/ECB/PKCS5Padding
Cipher.
DES/CBC/PKCS5Padding
Cipher.
DES/CFB/PKCS5Padding
Cipher.
DES/OFB/PKCS5Padding
別のプロバイダは、上の各モードのためのクラス (つまり、ECB、CBC、CFB、OFB のためにそれぞれ 1 つのクラス)、PKCS5Padding のための 1 つのクラス、および CipherSpi
からサブクラス化された汎用 DES クラスを実装できます。このプロバイダは、マスタークラス内に次の Cipher
プロパティーを保持します。
Cipher.
DES
「algorithm」形式の変換の場合、Cipher
エンジンクラスの getInstance
ファクトリメソッドは、次の規則に従ってプロバイダの CipherSpi
の実装をインスタンス化します。
CipherSpi
のサブクラスを登録済みかどうかをチェックする。
登録済みの場合、このクラスをインスタンス化して、このモードおよびパディング方式のデフォルト値 (プロバイダにより提供) を使用可能にします。
未登録の場合、例外 NoSuchAlgorithmException
をスローします。
「algorithm/mode/padding」形式の変換の場合、Cipher
エンジンクラスの getInstance
ファクトリメソッドは、次の規則に従ってプロバイダの CipherSpi
の実装をインスタンス化します。
CipherSpi
のサブクラスを登録済みかどうかをチェックする。
登録済みの場合、このクラスをインスタンス化します。
未登録の場合、次のステップに進みます。
CipherSpi
のサブクラスを登録済みかどうかをチェックする。
登録済みの場合、インスタンス化してから、新規インスタンスに対し engineSetPadding(padding)
を呼び出します。
未登録の場合、次のステップに進みます。
CipherSpi
のサブクラスを登録済みかどうかをチェックする。
登録済みの場合、インスタンス化してから、新規インスタンスに対し engineSetMode(mode)
を呼び出します。
未登録の場合、次のステップに進みます。
CipherSpi
のサブクラスを登録済みかどうかをチェックする。
回答が「はい」の場合、これをインスタンス化してから、新規インスタンスに対し engineSetMode(mode)
および engineSetPadding(padding)
を呼び出します。
未登録の場合、例外 NoSuchAlgorithmException
をスローします。
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 void |
engineUpdateAAD(byte[] src, int offset, int len)
提供されたバッファーのサブセットを使用して、Additional Authentication Data (AAD) のマルチパート更新を続行します。
|
protected void |
engineUpdateAAD(ByteBuffer src)
AAD (Additional Authentication Data) のマルチパート更新を継続します。
|
protected byte[] |
engineWrap(Key key)
鍵をラップします。
|
protected abstract void engineSetMode(String mode) throws NoSuchAlgorithmException
mode
- 暗号化モードNoSuchAlgorithmException
- 要求された暗号化モードが存在しない場合protected abstract void engineSetPadding(String padding) throws NoSuchPaddingException
padding
- パディングメカニズムNoSuchPaddingException
- 要求されたパディングメカニズムが存在しない場合protected abstract int engineGetBlockSize()
protected abstract int engineGetOutputSize(int inputLen)
inputLen
(バイト単位) を指定して、次の update
または doFinal
操作の結果を保持するために必要な出力バッファーの長さをバイト数で返します。
この呼び出しでは、以前の update
呼び出しの処理されていない (バッファーにある) データを考慮し、パディングおよび AEAD タグ付けを行います。
次の update
または doFinal
呼び出しの実際の出力長は、このメソッドが返す長さより小さいことがあります。
inputLen
- 入力長 (バイト単位)protected abstract byte[] engineGetIV()
これは、IV がユーザー指定のパスフレーズから派生するパスワードベースの暗号化または復号化のコンテキストにおいて役立ちます。
protected abstract AlgorithmParameters engineGetParameters()
返されるパラメータは、この暗号を初期化するのに使用したものと同じ場合があります。または、返されるパラメータには、この暗号にアルゴリズムパラメータが必要で、かつアルゴリズムパラメータで初期化されなかった場合に、基本となる暗号実装で使用されるデフォルトとランダムのパラメータ値の組み合わせが含まれることもあります。
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_MODE
、DECRYPT_MODE
、WRAP_MODE
、または UNWRAP_MODE
のどれか)key
- 暗号化鍵random
- 乱数発生の元InvalidKeyException
- 指定された鍵がこの暗号の初期化に不適切な場合、または指定された鍵から判定することができないアルゴリズムパラメータを必要とする場合。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_MODE
、DECRYPT_MODE
、WRAP_MODE
、または UNWRAP_MODE
のどれか)key
- 暗号化鍵params
- アルゴリズムパラメータrandom
- 乱数発生の元InvalidKeyException
- 指定された鍵がこの暗号の初期化に不適切な場合InvalidAlgorithmParameterException
- 指定されたアルゴリズムパラメータがこの暗号に不適切な場合、またはこの暗号がアルゴリズムパラメータを必要とし、params
が null の場合。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_MODE
、DECRYPT_MODE
、WRAP_MODE
、または UNWRAP_MODE
のどれか)key
- 暗号化鍵params
- アルゴリズムパラメータrandom
- 乱数発生の元InvalidKeyException
- 指定された鍵がこの暗号の初期化に不適切な場合InvalidAlgorithmParameterException
- 指定されたアルゴリズムパラメータがこの暗号に不適切な場合、またはこの暗号がアルゴリズムパラメータを必要とし、params
が null の場合。protected abstract byte[] engineUpdate(byte[] input, int inputOffset, int inputLen)
inputOffset
から始まる、input
バッファー内の最初の inputLen
バイトが処理され、結果が新しいバッファーに格納されます。
input
- 入力バッファーinputOffset
- 入力を開始する input
内のオフセットinputLen
- 入力長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
- 指定された出力バッファーが小さすぎて結果を保持できない場合protected int engineUpdate(ByteBuffer input, ByteBuffer output) throws ShortBufferException
input.position()
から始まるすべての input.remaining()
バイトが処理されます。結果は出力バッファーに格納されます。終了時に、入力バッファーの位置はリミットに等しくなりますが、リミットは変更されません。出力バッファーの位置は n だけ増加します。n は、このメソッドが返す値です。出力バッファーのリミットは変更されません。
output.remaining()
バイトが結果を保持するのに不十分な場合は、ShortBufferException
がスローされます。
ByteBuffer をバイト配列よりも効率的に処理できる場合、このメソッドをサブクラスでオーバーライドすることを検討してください。
input
- 入力 ByteBufferoutput
- 出力 ByteByfferoutput
に格納されたバイト数ShortBufferException
- 出力バッファー内に残っている容量が不足している場合NullPointerException
- いずれかのパラメータが次の場合: null
protected abstract byte[] engineDoFinal(byte[] input, int inputOffset, int inputLen) throws IllegalBlockSizeException, BadPaddingException
inputOffset
から始まる input
バッファー内の最初の inputLen
バイト、および前の update
操作でバッファーに入れられた可能性のあるすべての入力バイトが処理され、パディング (要求された場合) が適用されます。GCM/CCM などの AEAD モードが使用されている場合は、認証タグが暗号化の際に追加されるか、復号化の際に検証されます。結果は新しいバッファーに格納されます。
終了時に、このメソッドはこの暗号オブジェクトを前に engineInit
を呼び出して初期化されたときの状態にリセットします。つまり、オブジェクトはリセットされて、さらにデータを暗号化または復号化するために使用できます (engineInit
の呼び出しで指定された操作モードにより異なる)。
注:例外がスローされた場合、この暗号オブジェクトはリセットしないと再度使用できない場合があります。
input
- 入力バッファーinputOffset
- 入力を開始する input
内のオフセットinputLen
- 入力長IllegalBlockSizeException
- この暗号がブロック暗号であり、パディングが要求されておらず (暗号化モードの場合のみ)、この暗号で処理されたデータの入力長の合計がブロックサイズの倍数でない場合。または、この暗号化アルゴリズムが、指定された入力データを処理できない場合。BadPaddingException
- この暗号が復号化モードであり、パディング (またはパディング解除) が要求されたが、復号化されたデータが適切なパディングバイトでバインドされない場合。AEADBadTagException
- この暗号が AEAD モード (GCM/CCM など) で復号化し、受け取った認証タグが計算された値と一致しない場合。protected abstract int engineDoFinal(byte[] input, int inputOffset, int inputLen, byte[] output, int outputOffset) throws ShortBufferException, IllegalBlockSizeException, BadPaddingException
inputOffset
から始まる input
バッファー内の最初の inputLen
バイト、および前の update
操作でバッファーに入れられた可能性のあるすべての入力バイトが処理され、パディング (要求された場合) が適用されます。GCM/CCM などの AEAD モードが使用されている場合は、認証タグが暗号化の際に追加されるか、復号化の際に検証されます。結果は、outputOffset
から始まる output
バッファーに格納されます。
output
バッファーが小さすぎて結果を保持できない場合は、ShortBufferException
がスローされます。
終了時に、このメソッドはこの暗号オブジェクトを前に engineInit
を呼び出して初期化されたときの状態にリセットします。つまり、オブジェクトはリセットされて、さらにデータを暗号化または復号化するために使用できます (engineInit
の呼び出しで指定された操作モードにより異なる)。
注:例外がスローされた場合、この暗号オブジェクトはリセットしないと再度使用できない場合があります。
input
- 入力バッファーinputOffset
- 入力を開始する input
内のオフセットinputLen
- 入力長output
- 結果を格納するバッファーoutputOffset
- 結果が格納される output
内のオフセットoutput
に格納されたバイト数IllegalBlockSizeException
- この暗号がブロック暗号であり、パディングが要求されておらず (暗号化モードの場合のみ)、この暗号で処理されたデータの入力長の合計がブロックサイズの倍数でない場合。または、この暗号化アルゴリズムが、指定された入力データを処理できない場合。ShortBufferException
- 指定された出力バッファーが小さすぎて結果を保持できない場合BadPaddingException
- この暗号が復号化モードであり、パディング (またはパディング解除) が要求されたが、復号化されたデータが適切なパディングバイトでバインドされない場合。AEADBadTagException
- この暗号が AEAD モード (GCM/CCM など) で復号化し、受け取った認証タグが計算された値と一致しない場合。protected int engineDoFinal(ByteBuffer input, ByteBuffer output) throws ShortBufferException, IllegalBlockSizeException, BadPaddingException
input.position()
から始まるすべての input.remaining()
バイトが処理されます。GCM/CCM などの AEAD モードが使用されている場合は、認証タグが暗号化の際に追加されるか、復号化の際に検証されます。結果は出力バッファーに格納されます。終了時に、入力バッファーの位置はリミットに等しくなりますが、リミットは変更されません。出力バッファーの位置は n だけ増加します。n は、このメソッドが返す値です。出力バッファーのリミットは変更されません。
output.remaining()
バイトが結果を保持するのに不十分な場合は、ShortBufferException
がスローされます。
終了時に、このメソッドはこの暗号オブジェクトを前に engineInit
を呼び出して初期化されたときの状態にリセットします。つまり、オブジェクトはリセットされて、さらにデータを暗号化または復号化するために使用できます (engineInit
の呼び出しで指定された操作モードにより異なる)。
注:例外がスローされた場合、この暗号オブジェクトはリセットしないと再度使用できない場合があります。
ByteBuffer をバイト配列よりも効率的に処理できる場合、このメソッドをサブクラスでオーバーライドすることを検討してください。
input
- 入力 ByteBufferoutput
- 出力 ByteByfferoutput
に格納されたバイト数IllegalBlockSizeException
- この暗号がブロック暗号であり、パディングが要求されておらず (暗号化モードの場合のみ)、この暗号で処理されたデータの入力長の合計がブロックサイズの倍数でない場合。または、この暗号化アルゴリズムが、指定された入力データを処理できない場合。ShortBufferException
- 出力バッファー内に残っている容量が不足している場合BadPaddingException
- この暗号が復号化モードであり、パディング (またはパディング解除) が要求されたが、復号化されたデータが適切なパディングバイトでバインドされない場合。AEADBadTagException
- この暗号が AEAD モード (GCM/CCM など) で復号化し、受け取った認証タグが計算された値と一致しない場合。NullPointerException
- いずれかのパラメータが次の場合: null
protected byte[] engineWrap(Key key) throws IllegalBlockSizeException, InvalidKeyException
この具象メソッドは、事前に定義されたこの abstract クラスに追加されたものです。下位互換性のために、abstract メソッドにはできません。鍵をラップするために、プロバイダによってオーバーライドされる場合があります。そのようなオーバーライドを行うと、指定された鍵をラップできない場合に、IllegalBlockSizeException または InvalidKeyException (指定された環境下) がスローされます。このメソッドがオーバーライドされない場合は、常に UnsupportedOperationException がスローされます。
key
- ラップされる鍵。IllegalBlockSizeException
- この暗号がブロック暗号であり、パディングが要求されておらず、ラップされる鍵のエンコーディングの長さがブロックサイズの倍数でない場合。InvalidKeyException
- この暗号を使用して鍵をラップすることが不可能か安全でない場合 (ハードウェア保護された鍵がソフトウェアだけの暗号に渡される場合など)。protected Key engineUnwrap(byte[] wrappedKey, String wrappedKeyAlgorithm, int wrappedKeyType) throws InvalidKeyException, NoSuchAlgorithmException
この具象メソッドは、事前に定義されたこの abstract クラスに追加されたものです。下位互換性のために、abstract メソッドにはできません。前にラップされた鍵をラップ解除するために、プロバイダによってオーバーライドされる場合があります。そのようなオーバーライドを行うと、指定された、ラップされている鍵をラップ解除できない場合に、InvalidKeyException がスローされます。このメソッドがオーバーライドされない場合は、常に UnsupportedOperationException がスローされます。
wrappedKey
- ラップを解除される鍵。wrappedKeyAlgorithm
- ラップされた鍵に関連したアルゴリズム。wrappedKeyType
- ラップされた鍵のタイプ。これは SECRET_KEY
、PRIVATE_KEY
、または PUBLIC_KEY
のいずれかです。NoSuchAlgorithmException
- インストールされているどのプロバイダも wrappedKeyAlgorithm
の wrappedKeyType
タイプの鍵を作成できない場合。InvalidKeyException
- wrappedKey
が wrappedKeyAlgorithm
の wrappedKeyType
タイプのラップされた鍵を表さない場合。protected int engineGetKeySize(Key key) throws InvalidKeyException
この具象メソッドは、事前に定義されたこの abstract クラスに追加されたものです。プロバイダによってオーバーライドされない場合は、UnsupportedOperationException
をスローします。
key
- 鍵オブジェクト。InvalidKeyException
- key
が無効である場合protected void engineUpdateAAD(byte[] src, int offset, int len)
暗号が AEAD (GCM/CCM) などのモードで操作されると、このメソッドの呼び出しで AAD が提供されます。この暗号が GCM または CCM モードで操作されている場合は、(update
および doFinal
メソッドを介した) 暗号テキスト上の操作を開始する前に、すべての AAD が提供される必要があります。
src
- AAD を格納するバッファーoffset
- AAD 入力を開始する src
内のオフセットlen
- AAD バイトの数IllegalStateException
- この暗号が誤った状態であり (まだ初期化されていないなど)、AAD を受け入れない場合、または GCM または CCM モードで操作していて、アクティブな暗号化/復号化操作に対してすでに update
メソッドが呼び出されている場合UnsupportedOperationException
- このメソッドが実装によってオーバーライドされていない場合protected void engineUpdateAAD(ByteBuffer src)
暗号が AEAD (GCM/CCM) などのモードで操作されると、このメソッドの呼び出しで AAD が提供されます。この暗号が GCM または CCM モードで操作されている場合は、(update
および doFinal
メソッドを介した) 暗号テキスト上の操作を開始する前に、すべての AAD が提供される必要があります。
src.position()
から始まるすべての src.remaining()
バイトが処理されます。終了時に、入力バッファーの位置はリミットに等しくなりますが、リミットは変更されません。
src
- AAD を格納するバッファーIllegalStateException
- この暗号が誤った状態であり (まだ初期化されていないなど)、AAD を受け入れない場合、または GCM または CCM モードで操作していて、アクティブな暗号化/復号化操作に対してすでに update
メソッドが呼び出されている場合UnsupportedOperationException
- このメソッドが実装によってオーバーライドされていない場合 バグまたは機能を送信
詳細な API リファレンスおよび開発者ドキュメントについては、Java SE のドキュメントを参照してください。そのドキュメントには、概念的な概要、用語の定義、回避方法、有効なコード例などの、開発者を対象にしたより詳細な説明が含まれています。
Copyright © 1993, 2013, Oracle and/or its affiliates. All rights reserved.