Spec-Zone.ru › OpenJDK 21

Класс CipherInputStream

java.lang.Object
java.io.InputStream
java.io.FilterInputStream
javax.crypto.CipherInputStream
Все реализованные интерфейсы:
Closeable, AutoCloseable
public class CipherInputStream extends FilterInputStream
Поток ввода, который CipherInputStream состоит из объекта InputStream и объекта Cipher, так что методы read() возвращают данные, считанные из базового потока ввода InputStream, но дополнительно обработанные объектом Cipher. Объект Cipher должен быть полностью инициализирован перед использованием потоком CipherInputStream.

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

Этот класс строго придерживается семантики, особенно семантики ошибок, своих предков java.io.FilterInputStream и java.io.InputStream. Этот класс имеет ровно те методы, что и его предшественники, и переопределяет их все. Кроме того, этот класс перехватывает все исключения, которые не генерируются его предшественниками. В частности, метод skip пропускает, а метод available подсчитывает только данные, обработанные инкапсулированным объектом Cipher. Этот класс может перехватывать BadPaddingException и другие исключения, сгенерированные при проверке целостности во время дешифрования. Эти исключения не перебрасываются, поэтому клиент не может быть проинформирован о том, что проверка целостности не удалась. Из-за этого поведения этот класс может быть неподходящим для использования с дешифрованием в аутентифицированном режиме работы (например, GCM). Приложения, которым требуется аутентифицированное шифрование, могут напрямую использовать API Cipher в качестве альтернативы этому классу.

Важно для программиста, использующего этот класс, не использовать методы, которые не определены или не переопределены в этом классе (например, новый метод или конструктор, который позже добавляется в один из родительских классов), так как проектирование и реализация этих методов вряд ли учитывали последствия для безопасности в отношении CipherInputStream.

С момента:
1.4
См. также:
  • InputStream
  • FilterInputStream
  • Cipher
  • CipherOutputStream

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

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

in

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

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

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

Модификатор и тип Метод Описание
int available()
Возвращает количество байтов, которые могут быть прочитаны из этого потока ввода без блокировки.
void close()
Закрывает этот поток ввода и высвобождает все системные ресурсы, связанные с потоком.
boolean markSupported()
Проверяет, поддерживает ли этот поток ввода методы mark и reset, чего он не делает.
int read()
Читает следующий байт данных из этого потока ввода.
int read(byte[] b)
Читает до b.length байтов данных из этого потока ввода в массив байтов.
int read(byte[] b, int off, int len)
Читает до len байтов данных из этого потока ввода в массив байтов.
long skip(long n)
Пропускает n байтов ввода из байтов, которые можно прочитать из этого потока ввода без блокировки.

Методы, объявленные в классе java.io.FilterInputStream

mark, reset

Методы, объявленные в классе java.io.InputStream

nullInputStream, readAllBytes, readNBytes, readNBytes, skipNBytes, transferTo

Методы, объявленные в классе java.lang.Object

clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait

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

CipherInputStream

public CipherInputStream(InputStream is, Cipher c)
Создаёт CipherInputStream из InputStream и объекта Cipher.
Примечание: если указанный входной поток или шифр null, исключение NullPointerException может быть выброшено позднее при их использовании.
Параметры:
is - обрабатываемый входной поток
c - инициализированный объект Cipher

CipherInputStream

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

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

read

public int read() throws IOException
Считывает следующий байт данных из этого входного потока. Значение байта возвращается как целое число в диапазоне 0 до 255. Если байт недоступен, потому что достигнут конец потока, возвращается значение -1. Этот метод блокируется, пока данные ввода не станут доступны, не будет обнаружен конец потока или не будет выброшено исключение.
Переопределяет:
read в классе FilterInputStream
Возвращает:
следующий байт данных или -1 в случае достижения конца потока.
Выбрасывает:
IOException - если произошла ошибка ввода-вывода.
См. также:
  • FilterInputStream.in

read

public int read(byte[] b) throws IOException
Считывает до b.length байтов данных из этого входного потока в массив байтов.

Метод read из InputStream вызывает метод read с тремя аргументами со значениями b, 0, и b.length.

Переопределяет:
read в классе FilterInputStream
Параметры:
b - буфер, в который считываются данные.
Возвращает:
общее количество байтов, считанных в буфер, или -1 если больше данных недоступно из-за достижения конца потока.
Выбрасывает:
IOException - если произошла ошибка ввода-вывода.
См. также:
  • InputStream.read(byte[], int, int)

read

public int read(byte[] b, int off, int len) throws IOException
Считывает до len байтов данных из этого входного потока в массив байтов. Этот метод блокируется, пока не появятся данные ввода. Если первый аргумент null, до len байтов считываются и отбрасываются.
Переопределяет:
read в классе FilterInputStream
Параметры:
b - буфер, в который считываются данные.
off - начальный смещение в целевом массиве buf
len - максимальное количество считываемых байтов.
Возвращает:
общее количество байтов, считанных в буфер, или -1 если больше данных недоступно из-за достижения конца потока.
Выбрасывает:
IOException - если произошла ошибка ввода-вывода.
См. также:
  • InputStream.read()

skip

public long skip(long n) throws IOException
Пропускает n байтов ввода из байтов, которые можно прочитать из этого входного потока без блокировки.

Может быть пропущено меньше байтов, чем запрошено. Фактическое количество пропущенных байтов равно n или результату вызова available, в зависимости от меньшего значения. Если n меньше нуля, байты не пропускаются.

Возвращается фактическое количество пропущенных байтов.

Переопределяет:
skip в классе FilterInputStream
Параметры:
n - количество байтов для пропуска.
Возвращает:
фактическое количество пропущенных байтов.
Выбрасывает:
IOException - если произошла ошибка ввода-вывода.
См. также:
  • InputStream.skipNBytes(long)

available

public int available() throws IOException
Возвращает количество байтов, которые можно прочитать из этого входного потока без блокировки. Метод available класса InputStream возвращает 0. Этот метод должен быть переопределен подклассами.
Переопределяет:
available в классе FilterInputStream
Возвращает:
количество байтов, которые можно прочитать из этого входного потока без блокировки.
Выбрасывает:
IOException - если произошла ошибка ввода-вывода.

close

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

Метод close класса CipherInputStream вызывает метод close своего базового входного потока.

Указано в:
close в интерфейсе AutoCloseable
Указано в:
close в интерфейсе Closeable
Переопределяет:
close в классе FilterInputStream
Выбрасывает:
IOException - если произошла ошибка ввода-вывода.
См. также:
  • FilterInputStream.in

markSupported

public boolean markSupported()
Проверяет, поддерживает ли этот входной поток методы mark и reset, чего он не делает.
Переопределяет:
markSupported в классе FilterInputStream
Возвращает:
false, так как этот класс не поддерживает методы mark и reset.
См. также:
  • InputStream.mark(int)
  • InputStream.reset()

© 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/CipherInputStream.html

Spec-Zone.ru

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