Spec-Zone.ru › OpenJDK 17

Класс CipherOutputStream

java.lang.Object
java.io.OutputStream
java.io.FilterOutputStream
javax.crypto.CipherOutputStream
Все реализованные интерфейсы:
Closeable, Flushable, AutoCloseable
public class CipherOutputStream extends FilterOutputStream
CipherOutputStream состоит из OutputStream и Cipher, поэтому методы write() сначала обрабатывают данные, прежде чем записать их в базовый OutputStream. Шифр должен быть полностью инициализирован перед использованием в CipherOutputStream.

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

Этот класс строго придерживается семантики, особенно семантики ошибок, своих предковых классов 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()
Очищает этот поток вывода, заставляя любые буферизованные байты вывода, которые уже были обработаны объектом encapsulate cipher, быть записанными.
void write(byte[] b)
Записывает b.length байта из указанного массива байт в этот поток вывода.
void write(byte[] b, int off, int len)
Записывает len байта из указанного массива байт, начиная с смещения off в этот поток вывода.
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, может быть брошено исключение 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
Записывает указанный байт в этот поток вывода.
Переопределяет:
write в классе FilterOutputStream
Параметры:
b - байт.
Исключения:
IOException - если произошла ошибка ввода/вывода.

write

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

Метод write класса CipherOutputStream вызывает метод 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
Записывает len байта из указанного массива байт, начиная со смещения off в этот поток вывода.
Переопределяет:
write в классе FilterOutputStream
Параметры:
b - данные.
off - начальное смещение в данных.
len - количество байтов для записи.
Исключения:
IOException - если произошла ошибка ввода/вывода.
См. также:
  • FilterOutputStream.write(int)

flush

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

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

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

close

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

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

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

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

© 1993, 2021, 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/17/docs/api/java.base/javax/crypto/CipherOutputStream.html

Spec-Zone.ru

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