- すべての実装されたインタフェース:
Closeable
,AutoCloseable
CipherInputStream
はInputStream
およびCipher
オブジェクトで構成されているため、read()メソッドは、基礎となるInputStream
から読み取られたが、さらにCipher
オブジェクトによって処理されたデータを返します。 Cipher
オブジェクトは、CipherInputStream
で使用する前に完全に初期化する必要があります。
たとえば、Cipher
オブジェクトが復号化用に初期化されている場合、復号化されたデータを返す前に、CipherInputStream
はデータの読取りと復号化を試みます。
このクラスは、上位クラスjava.io.FilterInputStream
およびjava.io.InputStream
のセマンティックス(特にエラーに関するセマンティックス)に厳密に準拠します。 このクラスでは、それらのメソッドは上位クラスで厳密に指定されており、すべてオーバーライドされます。 さらに、このクラスは、上位クラスがスローしない例外をすべてキャッチします。 特に、skip
メソッドはスキップし、available
メソッドは、カプセル化されたCipher
オブジェクトによって処理されたデータのみをカウントします。 このクラスでは、復号化中に失敗した整合性チェックによってスローされたBadPaddingException
およびその他の例外を捕捉できます。 これらの例外は再スローされないため、クライアントは整合性チェックが失敗したことを通知されません。 この動作のため、このクラスは操作の認証済モードで復号化との使用には適していない可能性があります(GCMなど)。 認証された暗号化を必要とするアプリケーションでは、このクラスを使用するかわりに、Cipher
APIを直接使用できます。
このクラスを使用するプログラマが、このクラス(スーパークラスの1つに後で追加される新しいメソッドやコンストラクタなど)で定義またはオーバーライドされていないメソッドを使用しないようにすることが重要です。これらのメソッドの設計および実装は、CipherInputStream
に関するセキュリティの影響を考慮することはほとんどないためです。
- 導入されたバージョン:
- 1.4
- 関連項目:
-
フィールドのサマリー
クラスjava.io.FilterInputStreamで宣言されたフィールド
in
-
コンストラクタのサマリー
修飾子コンストラクタ説明protected
Cipher
オブジェクトを指定せずに、InputStream
からCipherInputStream
を構築します。CipherInputStream
(InputStream is, Cipher c) InputStream
およびCipher
オブジェクトからCipherInputStream
を構築します。 -
メソッドのサマリー
修飾子と型メソッド説明int
ブロックせずに入力ストリームから読み込むことができるバイト数を返します。void
close()
この入力ストリームを閉じて、そのストリームに関連するすべてのシステム・リソースを解放します。boolean
この入力ストリームがmark
およびreset
メソッドをサポートしているかどうかを判定します。これらのメソッドはサポートされていません。int
read()
この入力ストリームからデータの次のバイトを読み込みます。int
read
(byte[] b) 最大b.length
バイトのデータを、この入力ストリームからバイト配列に読み込みます。int
read
(byte[] b, int off, int len) 最大len
バイトのデータを、この入力ストリームからバイト配列に読み込みます。long
skip
(long n) ブロックせずにこの入力ストリームから読み込むことができるバイトからn
バイトの入力をスキップします。クラスjava.io.FilterInputStreamで宣言されたメソッド
mark, reset
クラスjava.io.InputStreamで宣言されたメソッド
nullInputStream, readAllBytes, readNBytes, readNBytes, skipNBytes, transferTo
-
コンストラクタの詳細
-
CipherInputStream
public CipherInputStream(InputStream is, Cipher c) InputStream
およびCipher
オブジェクトからCipherInputStream
を構築します。
ノート: 指定された入力ストリームまたは暗号がnull
の場合、NullPointerException
は後で使用するときにスローされます。- パラメータ:
is
- 処理される入力ストリームc
- 初期化されたCipher
オブジェクト
-
CipherInputStream
protected CipherInputStream(InputStream is) Cipher
オブジェクトを指定せずに、InputStream
からCipherInputStream
を構築します。 これは、NullCipher
を使用してCipherInputStream
を構築する効果があります。
ノート: 指定された入力ストリームがnull
の場合、NullPointerException
は使用時に後でスローされます。- パラメータ:
is
- 処理される入力ストリーム
-
-
メソッドの詳細
-
read
public int read() throws IOExceptionこの入力ストリームからデータの次のバイトを読み込みます。 バイト値は、0
-255
の範囲のint
として返されます。 ストリームの終わりに達したために読み込むバイトがない場合は、-1
が返されます。 入力データが読み込めるようになるか、ストリームの終わりが検出されるか、または例外が発生するまで、このメソッドはブロックされます。- オーバーライド:
read
、クラスFilterInputStream
- 戻り値:
- データの次のバイト。ストリームの終わりに達した場合は
-1
。 - 例外:
IOException
- 入出力エラーが発生した場合。- 関連項目:
-
read
public int read(byte[] b) throws IOException 最大b.length
バイトのデータを、この入力ストリームからバイト配列に読み込みます。InputStream
のread
メソッドは、引数b
、0
、およびb.length
の3つの引数をとるread
メソッドを呼び出します。- オーバーライド:
read
、クラスFilterInputStream
- パラメータ:
b
- データの読込み先のバッファ。- 戻り値:
- バッファに読み込まれたバイトの合計数。ストリームの終わりに達してデータがない場合は
-1
。 - 例外:
IOException
- 入出力エラーが発生した場合。- 関連項目:
-
read
public int read(byte[] b, int off, int len) throws IOException 最大len
バイトのデータを、この入力ストリームからバイト配列に読み込みます。 このメソッドは、入力の一部が利用できるようになるまでブロックします。 最初の引数がnull
の場合、最大len
バイトが読み取られ、破棄されます。- オーバーライド:
read
、クラスFilterInputStream
- パラメータ:
b
- データの読込み先のバッファ。off
- 転送先配列の開始オフセットbuf
len
- 読み込まれる最大バイト数。- 戻り値:
- バッファに読み込まれたバイトの合計数。ストリームの終わりに達してデータがない場合は
-1
。 - 例外:
IOException
- 入出力エラーが発生した場合。- 関連項目:
-
skip
public long skip(long n) throws IOException ブロックせずにこの入力ストリームから読み込むことができるバイトからn
バイトの入力をスキップします。スキップされるバイトが要求されたバイトより少ない場合があります。 実際にスキップされたバイト数は、
n
またはavailable
を呼び出した結果のうち小さい方です。n
がゼロより小さい場合、バイトはスキップされません。スキップされた実際のバイト数が返されます。
- オーバーライド:
skip
、クラスFilterInputStream
- パラメータ:
n
- スキップされるバイト数。- 戻り値:
- 実際にスキップされたバイト数。
- 例外:
IOException
- 入出力エラーが発生した場合。- 関連項目:
-
available
public int available() throws IOExceptionブロックせずに入力ストリームから読み込むことができるバイト数を返します。InputStream
のavailable
メソッドは0
を返します。 サブクラスはこのメソッドをオーバーライドする必要があります。- オーバーライド:
available
、クラスFilterInputStream
- 戻り値:
- ブロックしないで入力ストリームから読み込むことができるバイト数。
- 例外:
IOException
- 入出力エラーが発生した場合。
-
close
public void close() throws IOExceptionこの入力ストリームを閉じて、そのストリームに関連するすべてのシステム・リソースを解放します。CipherInputStream
のclose
メソッドはそのベースとなる入力ストリームのclose
メソッドを呼び出します。- 定義:
close
、インタフェースAutoCloseable
- 定義:
close
、インタフェースCloseable
- オーバーライド:
close
、クラスFilterInputStream
- 例外:
IOException
- 入出力エラーが発生した場合。- 関連項目:
-
markSupported
public boolean markSupported()この入力ストリームがmark
およびreset
メソッドをサポートしているかどうかを判定します。これらのメソッドはサポートされていません。- オーバーライド:
markSupported
、クラスFilterInputStream
- 戻り値:
- このクラスは
mark
メソッドとreset
メソッドをサポートしていないので、false
。 - 関連項目:
-