Класс KEM.Decapsulator
- Внешний класс:
KEM
public static final class KEM.Decapsulator extends Object
KEM.newDecapsulator(PrivateKey) на стороне получателя KEM. Этот класс представляет функцию декапсуляции ключа KEM. Вызов метода decapsulate восстанавливает секретный ключ из сообщения инкапсуляции ключа.
- Начиная с:
- 21
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
SecretKey |
decapsulate |
Функция декапсуляции ключа. |
SecretKey |
decapsulate |
Функция декапсуляции ключа. |
int |
encapsulationSize() |
Возвращает размер сообщения инкапсуляции ключа. |
String |
providerName() |
Возвращает имя поставщика. |
int |
secretSize() |
Возвращает размер общего секрета. |
Подробное описание методов
providerName
public String providerName()
- Возвращает:
- имя поставщика
decapsulate
public SecretKey decapsulate(byte[] encapsulation) throws DecapsulateException
Этот метод эквивалентен decapsulate(encapsulation, 0, secretSize(), "Generic"). Эта комбинация аргументов должна поддерживаться каждой реализацией.
Сгенерированный секретный ключ обычно передается функции выработки ключа (KDF) в качестве исходного ключевого материала.
- Параметры:
-
encapsulation— сообщение инкапсуляции ключа от отправителя. Его размер должен быть равен значению, возвращаемомуencapsulationSize(), иначе будет выброшено исключениеDecapsulateException. - Возвращает:
- общий секрет в виде
SecretKeyс именем алгоритма "Generic" - Выбрасывает:
-
DecapsulateException— если во время процесса декапсуляции произошла ошибка -
NullPointerException— еслиencapsulationимеет значениеnull
decapsulate
public SecretKey decapsulate(byte[] encapsulation, int from, int to, String algorithm) throws DecapsulateException
Вызов этого метода восстанавливает секретный ключ из сообщения инкапсуляции ключа.
Реализация может не поддерживать произвольные комбинации from, to и algorithm.
- Параметры:
-
encapsulation— сообщение инкапсуляции ключа от отправителя. Его размер должен быть равен значению, возвращаемомуencapsulationSize(), иначе будет выброшено исключениеDecapsulateException. -
from— начальный индекс возвращаемого массива байтов общего секрета включительно -
to— конечный индекс возвращаемого массива байтов общего секрета исключительно -
algorithm— имя алгоритма возвращаемого секретного ключа. Сведения о стандартных именах алгоритмов секретных ключей см. в разделе SecretKey Algorithms спецификации Java Security Standard Algorithm Names. Укажите "Generic", если результат будет использоваться в качестве исходного ключевого материала функции выработки ключа (KDF). - Возвращает:
- часть общего секрета в виде
SecretKey, содержащую байты секрета в диапазоне отfromдоtoисключительно, и имя алгоритма, указанное в параметрах. Например,decapsulate(encapsulation, secretSize() - 16, secretSize(), "AES")использует последние 16 байт общего секрета в качестве 128-битного ключа AES. - Выбрасывает:
-
DecapsulateException— если во время процесса декапсуляции произошла ошибка -
IndexOutOfBoundsException— еслиfrom < 0,from > toилиto > secretSize() -
NullPointerException— еслиencapsulationилиalgorithmимеет значениеnull -
UnsupportedOperationException— если декапсулятор не поддерживает комбинациюfrom,toиalgorithm - Внешние спецификации
secretSize
public int secretSize()
Этот метод можно вызвать, чтобы узнать длину общего секрета до вызова decapsulate или если полученный SecretKey нельзя извлечь.
- Возвращает:
- размер общего секрета
encapsulationSize
public int encapsulationSize()
Этот метод можно использовать для извлечения сообщения инкапсуляции из более длинного массива байтов, если протокол более высокого уровня не предоставляет информацию о длине.
- Возвращает:
- размер сообщения инкапсуляции ключа
© 1993, 2025, 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/25/docs/api/java.base/javax/crypto/KEM.Decapsulator.html