Spec-Zone.ru › OpenJDK 25

Интерфейс HKDFParameterSpec

Все суперинтерфейсы:
AlgorithmParameterSpec
Все известные реализующие классы:
HKDFParameterSpec.Expand, HKDFParameterSpec.Extract, HKDFParameterSpec.ExtractThenExpand
public interface HKDFParameterSpec extends AlgorithmParameterSpec
Параметры для комбинированных операций Extract, Expand или Extract-then-Expand функции получения ключа на основе HMAC (HKDF). Функция HKDF определена в RFC 5869.

В случаях Extract и Extract-then-Expand пользователи могут многократно вызывать методы addIKM и/или addSalt (и объединять эти вызовы в цепочки). Это позволяет использовать сценарии, в которых часть исходного материала ключа (IKM) находится в неизвлекаемом SecretKey, а весь IKM нельзя передать как единый объект. Та же возможность доступна для соли.

Эта возможность особенно полезна для «помеченного» извлечения HKDF, используемого в TLS 1.3 и HPKE, где IKM состоит из объединённых компонентов, которые могут включать как массивы байтов, так и секретные ключи (возможно, неизвлекаемые).

Примеры:

 // this usage depicts the initialization of an HKDF-Extract AlgorithmParameterSpec
 AlgorithmParameterSpec derivationSpec =
             HKDFParameterSpec.ofExtract()
                              .addIKM(label)
                              .addIKM(ikm)
                              .addSalt(salt).extractOnly();
 // this usage depicts the initialization of an HKDF-Expand AlgorithmParameterSpec
 AlgorithmParameterSpec derivationSpec =
             HKDFParameterSpec.expandOnly(prk, info, 32);
 // this usage depicts the initialization of an HKDF-ExtractExpand AlgorithmParameterSpec
 AlgorithmParameterSpec derivationSpec =
             HKDFParameterSpec.ofExtract()
                              .addIKM(ikm)
                              .addSalt(salt).thenExpand(info, 32);
Начиная с:
25
Внешние спецификации
  • RFC 5869: функция получения ключа на основе HMAC с извлечением и расширением (HKDF)
См. также:
  • KDF

Краткое описание вложенных классов

Модификатор и тип Интерфейс Описание
static final class  HKDFParameterSpec.Builder
Этот Builder создаёт объекты Extract и ExtractThenExpand.
static final class  HKDFParameterSpec.Expand
Определяет входные параметры операции Expand, как описано в RFC 5869.
static final class  HKDFParameterSpec.Extract
Определяет входные параметры операции Extract, как описано в RFC 5869.
static final class  HKDFParameterSpec.ExtractThenExpand
Определяет входные параметры операции Extract-then-Expand, как описано в RFC 5869.

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

Модификатор и тип Метод Описание
static HKDFParameterSpec.Expand expandOnly(SecretKey prk, byte[] info, int length)
Создаёт объект Expand.
static HKDFParameterSpec.Builder ofExtract()
Возвращает Builder для создания объектов Extract и ExtractThenExpand.

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

ofExtract

static HKDFParameterSpec.Builder ofExtract()
Возвращает Builder для создания объектов Extract и ExtractThenExpand.
Возвращает:
новый Builder

expandOnly

static HKDFParameterSpec.Expand expandOnly(SecretKey prk, byte[] info, int length)
Создаёт объект Expand.
Примечание по реализации:
Реализации HKDF гарантируют, что длина не превышает 255 * длина HMAC. Реализации также гарантируют, что аргумент prk содержит не меньше байтов, чем длина HMAC. Реализации также гарантируют, что значение info, равное {code null}, обрабатывается как массив байтов нулевой длины.
Параметры:
prk — псевдослучайный ключ (PRK); не должен быть null
info — необязательная информация о контексте и приложении (может быть null); массив байтов клонируется, чтобы предотвратить его последующее изменение
length — длина выходного материала ключа (должна быть больше 0)
Возвращает:
объект Expand
Выбрасывает:
NullPointerException — если аргумент prk равен null
IllegalArgumentException — если length не больше 0

Сообщить об ошибке или предложить улучшение
Дополнительную справочную информацию по API и документацию для разработчиков см. в разделе документации Java SE, содержащем более подробные описания для разработчиков, концептуальные обзоры, определения терминов, обходные решения и примеры рабочего кода. Другие версии.
Java является товарным знаком или зарегистрированным товарным знаком Oracle и/или её аффилированных лиц в США и других странах.
Авторское право © 1993, 2025, Oracle и/или её аффилированные лица, 500 Oracle Parkway, Redwood Shores, CA 94065 USA.
Все права защищены. Использование регулируется условиями лицензии и политикой распространения документации.

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

Spec-Zone.ru

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