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

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

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

    out
  • コンストラクタのサマリー

    コンストラクタ
    修飾子
    コンストラクタ
    説明
    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)
    指定されたバイトをこの出力ストリームに書き込みます。

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

    nullOutputStream

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

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

    • 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 - 入出力エラーが発生した場合。
      関連項目: