Spec-Zone.ru › OpenJDK 21

Класс 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.

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

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

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

out

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

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

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

Модификатор и тип Метод Описание
void close()
Закрывает этот поток вывода и высвобождает любые системные ресурсы, связанные с этим потоком.
void flush()
Очищает этот поток вывода, заставляя любые буферизованные байты вывода, которые уже были обработаны заключённым объектом Cipher, быть записанными.
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 с использованием объекта Cipher.
Примечание: если указанный поток вывода null, то NullPointerException может быть выброшен позже при его использовании.
Параметры:
os - объект OutputStream

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

write

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

write

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

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

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

write

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

flush

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

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

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

close

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

Этот метод вызывает метод close объекта, что приводит к обработке всех буферизованных байтов. Результат записывается путём вызова метода write этого потока вывода.

Этот метод сбрасывает объект до исходного состояния и вызывает метод close базового потока вывода.

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

© 1993, 2023, 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://docs.oracle.com/en/java/javase/21/docs/api/java.base/javax/crypto/CipherOutputStream.html

Spec-Zone.ru

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