Spec-Zone.ru › OpenJDK 8

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

Сводка конструкторов

Модификатор Конструктор и описание
protected CipherInputStream(InputStream is)

Создает CipherInputStream из InputStream без указания Cipher.

CipherInputStream(InputStream is, Cipher c)

Создает 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.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

Считывает следующий байт данных из этого входного потока. Значение байта возвращается как int в диапазоне 0 до 255. Если байт недоступен из-за достижения конца потока, возвращается значение -1. Этот метод блокируется до тех пор, пока данные ввода не станут доступны, не будет обнаружен конец потока или не будет выброшено исключение.

Переопределяет:
read в классе FilterInputStream
Возвращает:
следующий байт данных или -1, если достигнут конец потока.
Исключения:
IOException - если произошла ошибка ввода-вывода.
С момента:
JCE1.2
См. также:
FilterInputStream.in

read

public int read(byte[] b)
         throws IOException

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

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

Переопределяет:
read в классе FilterInputStream
Параметры:
b - буфер, в который считываются данные.
Возвращает:
общее количество байтов, считанных в буфер, или -1, если больше нет данных из-за достижения конца потока.
Исключения:
IOException - если произошла ошибка ввода-вывода.
С момента:
JCE1.2
См. также:
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 - если произошла ошибка ввода-вывода.
С момента:
JCE1.2
См. также:
InputStream.read()

skip

public long skip(long n)
          throws IOException

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

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

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

Переопределяет:
skip в классе FilterInputStream
Параметры:
n - количество байтов, которые нужно пропустить.
Возвращает:
фактическое количество пропущенных байтов.
Исключения:
IOException - если произошла ошибка ввода-вывода.
С момента:
JCE1.2

available

public int available()
              throws IOException

Возвращает количество байтов, которые можно прочитать из этого входного потока без блокировки. Метод available класса InputStream возвращает 0. Этот метод должен быть переопределён подклассами.

Переопределяет:
available в классе FilterInputStream
Возвращает:
количество байтов, которые можно прочитать из этого входного потока без блокировки.
Исключения:
IOException - если произошла ошибка ввода-вывода.
С момента:
JCE1.2

close

public void close()
           throws IOException

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

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

Определено в:
close в интерфейсе Closeable
Определено в:
close в интерфейсе AutoCloseable
Переопределяет:
close в классе FilterInputStream
Исключения:
IOException - если произошла ошибка ввода-вывода.
С момента:
JCE1.2
См. также:
FilterInputStream.in

markSupported

public boolean markSupported()

Проверяет, поддерживает ли этот входной поток методы mark и reset, чего он не делает.

Переопределяет:
markSupported в классе FilterInputStream
Возвращает:
false, так как этот класс не поддерживает методы mark и reset.
С момента:
JCE1.2
См. также:
InputStream.mark(int), InputStream.reset()

© 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