Spec-Zone.ru › OpenJDK 8

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

Конструкторы

Модификатор Конструктор и описание
protected CipherOutputStream(OutputStream os)

Создаёт CipherOutputStream из OutputStream без указания Cipher.

CipherOutputStream(OutputStream os, Cipher c)

Создаёт CipherOutputStream из OutputStream и Cipher.

Методы

Модификатор и тип Метод и описание
void close()

Закрывает этот поток вывода и освобождает любые системные ресурсы, связанные с этим потоком.

void flush()

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

void write(byte[] b)

Записывает b.length байт из указанного массива байт в этот поток вывода.

void write(byte[] b, int off, int len)

Записывает len байт из указанного массива байт, начиная с смещения off, в этот поток вывода.

void write(int b)

Записывает указанный байт в этот поток вывода.

Методы, унаследованные от класса 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 - если произошла ошибка ввода-вывода.
С тех пор:
JCE1.2

write

public void write(byte[] b)
           throws IOException

Записывает b.length байт из указанного массива байт в этот поток вывода.

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

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

write

public void write(byte[] b,
                  int off,
                  int len)
           throws IOException

Записывает len байт из указанного массива байт, начиная со смещения off, в этот поток вывода.

Переопределяет:
write в классе FilterOutputStream
Параметры:
b - данные.
off - начальное смещение в данных.
len - количество байт для записи.
Исключение:
IOException - если произошла ошибка ввода-вывода.
С тех пор:
JCE1.2
См. также:
FilterOutputStream.write(int)

flush

public void flush()
           throws IOException

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

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

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

close

public void close()
           throws IOException

Закрывает этот поток вывода и освобождает любые системные ресурсы, связанные с этим потоком.

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

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

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

© 1993, 2020, 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.

Spec-Zone.ru

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