Spec-Zone.ru › OpenJDK 24

Класс CipherOutputStream

java.lang.Object
java.io.OutputStream
java.io.FilterOutputStream
javax.crypto.CipherOutputStream
Все реализуемые интерфейсы:
Closeable, Flushable, AutoCloseable
public class CipherOutputStream extends FilterOutputStream
Поток вывода данных, использующий объект шифрования для преобразования данных перед записью в базовый поток вывода. Он состоит из объекта шифрования и базового потока вывода. Методы write() обрабатывают данные с помощью объекта шифрования перед записью в базовый поток. Объект шифрования должен быть полностью инициализирован перед использованием с данным потоком.

Например, если объект шифрования инициализирован для шифрования, то поток вывода будет шифровать данные перед записью зашифрованных данных.

Данный класс строго соответствует семантике, особенно семантике ошибок, своих предковых классов java.io.OutputStream и java.io.FilterOutputStream. В этом классе точно определены методы, указанные в предковых классах, и все они переопределены. Более того, этот класс перехватывает все исключения, которые не генерируются его предковыми классами. В частности, этот класс перехватывает BadPaddingException и другие исключения, возникающие при сбоях проверок целостности во время дешифрования. Эти исключения не перебрасываются, поэтому клиент не будет уведомлен о сбое проверок целостности. Из-за этого поведения этот класс может быть неподходящим для использования при дешифровании в режиме аутентификации (например, GCM), если приложение требует явного уведомления о сбое аутентификации. Такое приложение может использовать API Cipher напрямую в качестве альтернативы использованию этого класса.

Необходимо учитывать, что использование методов, которые не определены или не переопределены в этом классе (например, нового метода или конструктора, который позже добавлен в один из предковых классов), может привести к проблемам безопасности из-за отсутствия учета возможных последствий такого использования в контексте CipherOutputStream.

Since:
1.4
См. также:
  • OutputStream
  • FilterOutputStream
  • Cipher
  • CipherInputStream

Краткое описание полей

Поля, объявленные в классе java.io.FilterOutputStream

out

Краткое описание конструкторов

CipherOutputStream(OutputStream os)
CipherOutputStream(OutputStream os, Cipher c)
Модификатор Конструктор Описание
protected
Создаёт объект CipherOutputStream, используя базовый поток вывода без указания объекта шифрования.
Создаёт объект CipherOutputStream, используя базовый поток вывода и объект шифрования.

Краткое описание методов

Модификатор и тип Метод Описание
void close()
Закрывает поток вывода и освобождает системные ресурсы, связанные с этим потоком.
void flush()
Сбрасывает буфер вывода, заставляя все предварительно обработанные байты быть записанными в базовый поток.
void write(byte[] b)
Записывает указанное количество байтов из массива байт в этот поток вывода.
void write(byte[] b, int off, int 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)
Создаёт CipherOutputStream из OutputStream и объекта Cipher.
Примечание: если указанный поток вывода или шифр null, то a NullPointerException может быть выброшено позже при их использовании.
Параметры:
os - объект OutputStream
c - инициализированный объект Cipher

CipherOutputStream

protected CipherOutputStream(OutputStream os)
Создаёт CipherOutputStream из OutputStream, не указывая объект Cipher. Это равносильно созданию CipherOutputStream с использованием NullCipher.
Примечание: если указанный поток вывода null, то NullPointerException может быть выброшено позже при его использовании.
Параметры:
os - объект OutputStream

Подробное описание методов

write

public void write(int b) throws IOException
Записывает указанный байт в этот поток вывода.
Overrides:
write в классе FilterOutputStream
Параметры:
b - байт.
Исключения:
IOException - если произошла ошибка ввода-вывода.

write

public void write(byte[] b) throws IOException
Записывает указанное количество байтов из заданного массива байтов в этот поток вывода.

Метод write класса CipherOutputStream вызывает метод write с тремя аргументами: b, 0 и b.length.

Overrides:
write в классе FilterOutputStream
Параметры:
b - данные.
Исключения:
NullPointerException - если b null.
IOException - если произошла ошибка ввода-вывода.
См. также:
  • write(byte[], int, int)

write

public void write(byte[] b, int off, int len) throws IOException
Записывает указанное количество байтов из заданного массива байтов, начиная с указанного смещения, в этот поток вывода.
Overrides:
write в классе FilterOutputStream
Параметры:
b - данные.
off - начальное смещение в данных.
len - количество байтов для записи.
Исключения:
IOException - если произошла ошибка ввода-вывода.
См. также:
  • FilterOutputStream.write(int)

flush

public void flush() throws IOException
Сбрасывает этот поток вывода, принудительно записывая в поток все буферизованные байты, которые уже были обработаны упакованным объектом Cipher.

Байты, буферизованные упакованным объектом Cipher и ожидающие обработки, не будут записаны. Например, если упакованный объект Cipher — это блочный шифр, и общее количество байтов, записанных с помощью одного из методов write, меньше размера блока шифра, то никакие байты не будут записаны.

Specified by:
flush в интерфейсе Flushable
Overrides:
flush в классе FilterOutputStream
Исключения:
IOException - если произошла ошибка ввода-вывода.
См. также:
  • FilterOutputStream.out

close

public void close() throws IOException
Закрывает этот поток вывода и освобождает все системные ресурсы, связанные с этим потоком.

Этот метод вызывает метод doFinal упакованного объекта Cipher, что приводит к обработке всех буферизованных байтов, которые ожидают обработки в упакованном объекте Cipher. Результат записывается путём вызова метода flush потока вывода.

Этот метод сбрасывает упакованный объект Cipher в его начальное состояние и вызывает метод close основного потока вывода.

Specified by:
close в интерфейсе AutoCloseable
Specified by:
close в интерфейсе Closeable
Overrides:
close в классе FilterOutputStream
Исключения:
IOException - если произошла ошибка ввода-вывода.
См. также:
  • FilterOutputStream.flush()
  • FilterOutputStream.out

© 1993, 2025, Oracle and/or its affiliates. All rights reserved.
Documentation extracted from Debian's OpenJDK Development Kit package.
Licensed under the GNU General Public License, version 2, with the Classpath Exception.
Various third party code in OpenJDK is licensed under different licenses (see Debian package).
Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.
https://download.java.net/java/early_access/jdk24/docs/api/java.base/javax/crypto/CipherOutputStream.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API