クラス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
関連項目:
  • フィールドのサマリー

    クラスで宣言されたフィールド FilterInputStream

    in
    修飾子と型
    フィールド
    説明
    protected InputStream
    フィルタ処理される入力ストリームです。
  • コンストラクタのサマリー

    コンストラクタ
    修飾子
    コンストラクタ
    説明
    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バイトの入力をスキップします。

    クラスで宣言されたメソッド FilterInputStream

    mark, reset
    修飾子と型
    メソッド
    説明
    void
    mark(int readlimit)
    この入力ストリームの現在位置にマークを設定します。
    void
    このストリームを、この入力ストリームで最後にmarkメソッドが呼び出されたときの位置に再配置します。

    クラスで宣言されたメソッド InputStream

    nullInputStream, readAllBytes, readNBytes, readNBytes, skipNBytes, transferTo
    修飾子と型
    メソッド
    説明
    バイトを読み取らない新しいInputStreamを返します。
    byte[]
    入力ストリームから残りのすべてのバイトを読み取ります。
    int
    readNBytes(byte[] b, int off, int len)
    入力ストリームからリクエストされたバイト数を、指定されたバイト配列に読み取ります。
    byte[]
    readNBytes(int len)
    入力ストリームから指定のバイト数まで読み取ります。
    void
    skipNBytes(long n)
    この入力ストリームからのデータのnバイトに正確にスキップし、破棄します。
    long
    この入力ストリームからすべてのバイトを読み取り、指定された出力ストリームに読み込まれた順序でバイトを書き込みます。

    クラスオブジェクトで宣言されたメソッド

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    修飾子と型
    メソッド
    説明
    protected Object
    このオブジェクトのコピーを作成して、返します。
    boolean
    このオブジェクトと他のオブジェクトが等しいかどうかを示します。
    protected void
    削除予定のため非推奨: このAPI要素は、将来のバージョンで削除される可能性があります。
    最終決定は非推奨であり、将来のリリースで削除される可能性があります。
    final Class<?>
    このObjectの実行時クラスを返します。
    int
    このオブジェクトに対するハッシュ・コード値を返します。
    final void
    このオブジェクトのモニターで待機中のスレッドを1つ再開します。
    final void
    このオブジェクトのモニターで待機中のすべてのスレッドを再開します。
    オブジェクトの文字列表現を返します。
    final void
    現在のスレッドが目覚めるまで待機します。通常、notifiedまたはinterruptedです。
    final void
    wait(long timeoutMillis)
    現在のスレッドは、通常、notifiedまたはinterruptedであるか、一定のリアルタイムが経過するまで、目覚めるまで待機します。
    final void
    wait(long timeoutMillis, int nanos)
    現在のスレッドは、通常、notifiedまたはinterruptedであるか、一定のリアルタイムが経過するまで、目覚めるまで待機します。
  • コンストラクタの詳細

    • 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
      関連項目: