クラスCipherOutputStream

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

public class CipherOutputStream extends FilterOutputStream
CipherOutputStreamOutputStreamおよびCipherオブジェクトで構成されているため、write()メソッドは、基礎となるOutputStreamに書き出す前にデータを処理します。 Cipherオブジェクトは、CipherOutputStreamで使用する前に完全に初期化する必要があります。

たとえば、Cipherオブジェクトが暗号化用に初期化されている場合、CipherOutputStreamは暗号化されたデータを書き出す前にデータの暗号化を試みます。

このクラスは、上位クラスjava.io.OutputStreamおよびjava.io.FilterOutputStreamのセマンティックス(特にエラーに関するセマンティックス)に厳密に準拠します。 このクラスでは、それらのメソッドは上位クラスで厳密に指定されており、すべてオーバーライドされます。 さらに、このクラスは、上位クラスがスローしない例外をすべてキャッチします。 特に、このクラスは、復号化中に失敗した整合性チェックによってスローされたBadPaddingExceptionおよびその他の例外を捕捉します。 これらの例外は再スローされないため、クライアントは整合性チェックが失敗したことを通知されません。 この動作により、このクラスは、認証が失敗したときにアプリケーションが明示的な通知を必要とする場合に、操作の認証モード(たとえば、GCMなど)の暗号化で使用するのには適していない可能性があります。 このようなアプリケーションは、このクラスを使用するのではなく、Cipher APIを直接使用できます。

このクラスを使用するプログラマが、このクラス(スーパークラスの1つに後で追加される新しいメソッドやコンストラクタなど)で定義またはオーバーライドされていないメソッドを使用しないようにすることが重要です。これらのメソッドの設計および実装は、CipherOutputStreamに関するセキュリティの影響を考慮することはほとんどないためです。

導入されたバージョン:
1.4
関連項目:
  • フィールドのサマリー

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

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

    コンストラクタ
    修飾子
    コンストラクタ
    説明
    protected
    Cipherオブジェクトを指定せずに、OutputStreamからCipherOutputStreamを構築します。
     
    OutputStreamおよびCipherオブジェクトからCipherOutputStreamを構築します。
  • メソッドのサマリー

    修飾子と型
    メソッド
    説明
    void
    出力ストリームを閉じ、このストリームに関連するすべてのシステム・リソースを解放します。
    void
    カプセル化されたCipherオブジェクトによってすでに処理されたバッファ出力バイトが書き出されるようにすることで、この出力ストリームをフラッシュします。
    void
    write(byte[] b)
    指定されたバイト配列のb.lengthバイトをこの出力ストリームに書き込みます。
    void
    write(byte[] b, int off, int len)
    指定されたバイト配列のオフセット位置offから始まるlenバイトをこの出力ストリームに書き込みます。
    void
    write(int b)
    指定されたバイトをこの出力ストリームに書き込みます。

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

    nullOutputStream
    修飾子と型
    メソッド
    説明
    すべてのバイトを破棄する新規OutputStreamを返します。

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

    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であるか、一定のリアルタイムが経過するまで、目覚めるまで待機します。
  • コンストラクタの詳細

    • CipherOutputStream

      public CipherOutputStream(OutputStream os, Cipher c)
      OutputStreamおよびCipherオブジェクトからCipherOutputStreamを構築します。
      ノート: 指定された出力ストリームまたは暗号がnullの場合、a NullPointerExceptionはあとで使用するときにスローされます。
      パラメータ:
      os - OutputStreamオブジェクト
      c - 初期化されたCipherオブジェクト
    • CipherOutputStream

      protected CipherOutputStream(OutputStream os)
      Cipherオブジェクトを指定せずに、OutputStreamからCipherOutputStreamを構築します。 これは、NullCipherを使用してCipherOutputStreamを構築する効果があります。
      ノート: 指定された出力ストリームがnullの場合、NullPointerExceptionはあとで使用するときにスローされます。
      パラメータ:
      os - OutputStreamオブジェクト
  • メソッドの詳細

    • write

      public void write(int b) throws IOException
      指定されたバイトをこの出力ストリームに書き込みます。
      オーバーライド:
      write、クラスFilterOutputStream
      パラメータ:
      b - byte
      スロー:
      IOException - 入出力エラーが発生した場合。
    • write

      public void write(byte[] b) throws IOException
      指定されたバイト配列のb.lengthバイトをこの出力ストリームに書き込みます。

      CipherOutputStreamwriteメソッドは、3つの引数b0、およびb.lengthを指定して3つの引数をとるwriteメソッドを呼び出します。

      オーバーライド:
      write、クラスFilterOutputStream
      パラメータ:
      b - データ。
      スロー:
      NullPointerException - bnullである場合。
      IOException - 入出力エラーが発生した場合。
      関連項目:
    • write

      public void write(byte[] b, int off, int len) throws IOException
      指定されたバイト配列のオフセット位置offから始まるlenバイトをこの出力ストリームに書き込みます。
      オーバーライド:
      write、クラスFilterOutputStream
      パラメータ:
      b - データ。
      off - データの開始オフセット。
      len - 書き込むバイト数。
      スロー:
      IOException - 入出力エラーが発生した場合。
      関連項目:
    • flush

      public void flush() throws IOException
      カプセル化されたCipherオブジェクトによってすでに処理されたバッファ出力バイトが書き出されるようにすることで、この出力ストリームをフラッシュします。

      カプセル化されたCipherオブジェクトによってバッファされ、それによって処理されるのを待機しているバイトは、書き込まれません。 たとえば、カプセル化されたCipherオブジェクトがブロック暗号であり、writeメソッドのいずれかを使用して書き込まれた合計バイト数が暗号のブロック・サイズより少ない場合、バイトは書き込まれません。

      定義:
      flush、インタフェースFlushable
      オーバーライド:
      flush、クラスFilterOutputStream
      スロー:
      IOException - 入出力エラーが発生した場合。
      関連項目:
    • close

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

      このメソッドは、カプセル化されたCipherオブジェクトのdoFinalメソッドを呼び出します。これにより、カプセル化されたCipherオブジェクトによってバッファされたすべてのバイトが処理されます。 結果を書き出すには、この出力ストリームのflushメソッドを呼び出します。

      このメソッドは、カプセル化されたCipherオブジェクトを初期状態にリセットし、基礎となる出力ストリームのcloseメソッドをコールします。

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