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

クラスCipherInputStream

すべての実装されたインタフェース:
Closeable, AutoCloseable

public class CipherInputStream extends FilterInputStream
CipherInputStreamInputStreamおよび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を構築します。
     
    InputStreamおよびCipherオブジェクトからCipherInputStreamを構築します。
  • メソッドのサマリー

    修飾子と型
    メソッド
    説明
    int
    ブロックせずに入力ストリームから読み込むことができるバイト数を返します。
    void
    この入力ストリームを閉じて、そのストリームに関連するすべてのシステム・リソースを解放します。
    boolean
    この入力ストリームがmarkおよびresetメソッドをサポートしているかどうかを判定します。これらのメソッドはサポートされていません。
    int
    この入力ストリームからデータの次のバイトを読み込みます。
    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

    クラスjava.lang.Objectで宣言されたメソッド

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • コンストラクタの詳細

    • 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バイトのデータを、この入力ストリームからバイト配列に読み込みます。

      InputStreamreadメソッドは、引数b0、および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
      ブロックせずに入力ストリームから読み込むことができるバイト数を返します。 InputStreamavailableメソッドは0を返します。 サブクラスはこのメソッドをオーバーライドする必要があります
      オーバーライド:
      available、クラスFilterInputStream
      戻り値:
      ブロックしないで入力ストリームから読み込むことができるバイト数。
      例外:
      IOException - 入出力エラーが発生した場合。
    • close

      public void close() throws IOException
      この入力ストリームを閉じて、そのストリームに関連するすべてのシステム・リソースを解放します。

      CipherInputStreamcloseメソッドはそのベースとなる入力ストリームのcloseメソッドを呼び出します。

      定義:
      close、インタフェースAutoCloseable
      定義:
      close、インタフェースCloseable
      オーバーライド:
      close、クラスFilterInputStream
      例外:
      IOException - 入出力エラーが発生した場合。
      関連項目:
    • markSupported

      public boolean markSupported()
      この入力ストリームがmarkおよびresetメソッドをサポートしているかどうかを判定します。これらのメソッドはサポートされていません。
      オーバーライド:
      markSupported、クラスFilterInputStream
      戻り値:
      このクラスはmarkメソッドとresetメソッドをサポートしていないので、false
      関連項目: