クラスCipherOutputStream
- すべての実装されたインタフェース:
Closeable,Flushable,AutoCloseable
CipherOutputStreamはOutputStreamおよび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 -
コンストラクタのサマリー
コンストラクタ修飾子コンストラクタ説明protectedCipherオブジェクトを指定せずに、OutputStreamからCipherOutputStreamを構築します。CipherOutputStream(OutputStream os, Cipher c) OutputStreamおよびCipherオブジェクトからCipherOutputStreamを構築します。 -
メソッドのサマリー
修飾子と型メソッド説明voidclose()出力ストリームを閉じ、このストリームに関連するすべてのシステム・リソースを解放します。voidflush()カプセル化されたCipherオブジェクトによってすでに処理されたバッファ出力バイトが書き出されるようにすることで、この出力ストリームをフラッシュします。voidwrite(byte[] b) 指定されたバイト配列のb.lengthバイトをこの出力ストリームに書き込みます。voidwrite(byte[] b, int off, int len) 指定されたバイト配列のオフセット位置offから始まるlenバイトをこの出力ストリームに書き込みます。voidwrite(int b) 指定されたバイトをこの出力ストリームに書き込みます。クラスjava.io.OutputStreamで宣言されたメソッド
nullOutputStream
-
コンストラクタの詳細
-
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バイトをこの出力ストリームに書き込みます。CipherOutputStreamのwriteメソッドは、3つの引数b、0、およびb.lengthを指定して3つの引数をとるwriteメソッドを呼び出します。- オーバーライド:
write、クラスFilterOutputStream- パラメータ:
b- データ。- スロー:
NullPointerException-bがnullである場合。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- 入出力エラーが発生した場合。- 関連項目:
-