- すべての実装されたインタフェース:
- Closeable,- Flushable,- AutoCloseable
public class CipherOutputStream extends FilterOutputStream
たとえば、Cipherが暗号化用に初期化されていると、CipherOutputStreamは、暗号化されたデータを書き込む前に、データを暗号化しようとします。
このクラスは、上位クラスjava.io.OutputStreamおよびjava.io.FilterOutputStreamのセマンティックス、特に失敗セマンティックスに厳密に従います。 このクラスでは、それらのメソッドは上位クラスで厳密に指定されており、すべてオーバーライドされます。 さらに、このクラスは、上位クラスがスローしない例外をすべてキャッチします。 特に、このクラスは、復号化時の整合性チェックの失敗によってスローされるBadPaddingExceptionおよびその他の例外をキャッチします。 これらの例外は再スローされないため、クライアントは整合性チェックが失敗したことを通知されません。 この動作により、このクラスは、認証が失敗したときにアプリケーションが明示的な通知を必要とする場合に、操作の認証モード(たとえば、GCMなど)の暗号化で使用するのには適していない可能性があります。 このようなアプリケーションは、このクラスを使用するかわりにCipher APIを直接使用できます。
このクラスを使用するプログラマにとって、このクラスで定義またはオーバーライドされていないメソッド(上位クラスのいずれかにあとで追加された新規メソッドまたはコンストラクタ)を使用しないようにすることは重要です。これらのメソッド実装は、CipherOutputStreamへのセキュリティ面の影響を考慮に入れていないためです。
- 導入されたバージョン:
- 1.4
- 関連項目:
- OutputStream,- FilterOutputStream,- Cipher,- CipherInputStream
- 
フィールドのサマリー
- 
コンストラクタのサマリーコンストラクタ 修飾子 コンストラクタ 説明 protectedCipherOutputStream(OutputStream os)OutputStreamからCipherを指定しないでCipherOutputStreamを構築します。CipherOutputStream(OutputStream os, Cipher c)OutputStreamおよびCipherからCipherOutputStreamを構築します。
- 
メソッドのサマリー修飾子と型 メソッド 説明 voidclose()出力ストリームを閉じ、このストリームに関連するすべてのシステム・リソースを解放します。voidflush()カプセル化された暗号オブジェクトによってすでに処理された、バッファに格納された出力バイトを強制的に書き出して、この出力ストリームをフラッシュします。voidwrite(byte[] b)指定されたバイト配列のb.lengthバイトをこの出力ストリームに書き込みます。voidwrite(byte[] b, int off, int len)指定されたバイト配列のオフセット位置offから始まるlenバイトをこの出力ストリームに書き込みます。voidwrite(int b)指定されたバイトをこの出力ストリームに書き込みます。
- 
コンストラクタの詳細- 
CipherOutputStreampublic CipherOutputStream(OutputStream os, Cipher c)OutputStreamおよびCipherからCipherOutputStreamを構築します。
 ノート: 指定された出力ストリームまたは暗号がnullの場合は、それらの使用時にNullPointerExceptionがスローされる可能性があります。- パラメータ:
- os- OutputStreamオブジェクト
- c- 初期化されたCipherオブジェクト
 
- 
CipherOutputStreamprotected CipherOutputStream(OutputStream os)OutputStreamからCipherを指定しないでCipherOutputStreamを構築します。 これは、NullCipherを使用してCipherOutputStreamを構築する効果を持ちます。
 ノート: 指定された出力ストリームがnullの場合は、それの使用時にNullPointerExceptionがスローされる可能性があります。- パラメータ:
- os- OutputStreamオブジェクト
 
 
- 
- 
メソッドの詳細- 
writepublic void write(int b) throws IOException指定されたバイトをこの出力ストリームに書き込みます。- オーバーライド:
- write、クラス:- FilterOutputStream
- パラメータ:
- b-- byte。
- 例外:
- IOException- 入出力エラーが発生した場合。
 
- 
writepublic void write(byte[] b) throws IOException指定されたバイト配列のb.lengthバイトをこの出力ストリームに書き込みます。CipherOutputStreamのwriteメソッドは、3つの引数b、0、およびb.lengthを指定して3つの引数をとるwriteメソッドを呼び出します。- オーバーライド:
- write、クラス:- FilterOutputStream
- パラメータ:
- b- データ。
- 例外:
- NullPointerException-- bがnullである場合。
- IOException- 入出力エラーが発生した場合。
- 関連項目:
- write(byte[], int, int)
 
- 
writepublic void write(byte[] b, int off, int len) throws IOException指定されたバイト配列のオフセット位置offから始まるlenバイトをこの出力ストリームに書き込みます。- オーバーライド:
- write、クラス:- FilterOutputStream
- パラメータ:
- b- データ。
- off- データの開始オフセット。
- len- 書き込むバイト数。
- 例外:
- IOException- 入出力エラーが発生した場合。
- 関連項目:
- FilterOutputStream.write(int)
 
- 
flushpublic void flush() throws IOExceptionカプセル化された暗号オブジェクトによってすでに処理された、バッファに格納された出力バイトを強制的に書き出して、この出力ストリームをフラッシュします。カプセル化された暗号によってバッファに格納され、処理されるのを待っているバイトは書き出されません。 たとえば、カプセル化された暗号がブロック暗号であり、 writeメソッドの1つを使用して書き込まれたバイト数の合計がその暗号のブロック・サイズより小さい場合、バイトは書き出されません。- 定義:
- flush、インタフェース:- Flushable
- オーバーライド:
- flush、クラス:- FilterOutputStream
- 例外:
- IOException- 入出力エラーが発生した場合。
- 関連項目:
- FilterOutputStream.out
 
- 
closepublic void close() throws IOException出力ストリームを閉じ、このストリームに関連するすべてのシステム・リソースを解放します。このメソッドは、カプセル化された暗号オブジェクトによってバッファに格納されたすべてのバイトが処理されるようにする、カプセル化された暗号オブジェクトの doFinalメソッドを呼び出します。 結果を書き出すには、この出力ストリームのflushメソッドを呼び出します。このメソッドは、カプセル化された暗号オブジェクトを初期状態にリセットして、基本となる出力ストリームの closeメソッドを呼び出します。- 定義:
- close、インタフェース:- AutoCloseable
- 定義:
- close、インタフェース:- Closeable
- オーバーライド:
- close、クラス:- FilterOutputStream
- 例外:
- IOException- 入出力エラーが発生した場合。
- 関連項目:
- FilterOutputStream.flush(),- FilterOutputStream.out
 
 
-