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

クラスCipherOutputStream

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

public class CipherOutputStream
extends FilterOutputStream
CipherOutputStreamはOutputStreamとCipherで構成されているので、write()メソッドはまずデータを処理してからベースとなるOutputStreamに書き込みます。 Cipherは、完全に初期化してからでないと、CipherOutputStreamで使用できません。

たとえば、Cipherが暗号化用に初期化されていると、CipherOutputStreamは、暗号化されたデータを書き込む前に、データを暗号化しようとします。

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

このクラスを使用するプログラマにとって、このクラスで定義またはオーバーライドされていないメソッド(上位クラスのいずれかにあとで追加された新規メソッドまたはコンストラクタ)を使用しないようにすることは重要です。これらのメソッド実装は、CipherOutputStreamへのセキュリティ面の影響を考慮に入れていないためです。

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

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

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

    コンストラクタ 
    修飾子 コンストラクタ 説明
    protected CipherOutputStream​(OutputStream os)
    OutputStreamからCipherを指定しないでCipherOutputStreamを構築します。
      CipherOutputStream​(OutputStream os, Cipher c)
    OutputStreamおよびCipherからCipherOutputStreamを構築します。
  • メソッドのサマリー

    修飾子と型 メソッド 説明
    void close()
    出力ストリームを閉じ、このストリームに関連するすべてのシステム・リソースを解放します。
    void flush()
    カプセル化された暗号オブジェクトによってすでに処理された、バッファに格納された出力バイトを強制的に書き出して、この出力ストリームをフラッシュします。
    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で宣言されたメソッド

    cloneequalsfinalizegetClasshashCodenotifynotifyAlltoStringwaitwaitwait
  • コンストラクタの詳細

    • CipherOutputStream

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

      protected CipherOutputStream​(OutputStream os)
      OutputStreamからCipherを指定しないで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 - bがnullである場合。
      IOException - 入出力エラーが発生した場合。
      関連項目:
      write(byte[], int, int)
    • write

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

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

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

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

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

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

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

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