Class HKDFParameterSpec.Builder
- Enclosing interface:
HKDFParameterSpec
public static final class HKDFParameterSpec.Builder extends Object
Builder builds Extract and ExtractThenExpand objects. The Builder is initialized via the ofExtract method of HKDFParameterSpec. As stated in the class description, addIKM and/or addSalt may be called as needed. Finally, an object is "built" by calling either extractOnly or thenExpand for Extract and ExtractThenExpand use-cases respectively. Note that the Builder is not thread-safe.
- Since:
- 25
Method Summary
| Modifier and Type | Method | Description |
|---|---|---|
HKDFParameterSpec.Builder |
addIKM |
Adds input keying material (IKM) to the builder. |
HKDFParameterSpec.Builder |
addIKM |
Adds input keying material (IKM) to the builder. |
HKDFParameterSpec.Builder |
addSalt |
Adds a salt to the builder. |
HKDFParameterSpec.Builder |
addSalt |
Adds a salt to the builder. |
HKDFParameterSpec.Extract |
extractOnly() |
Builds an Extract object from the current state of the Builder. |
HKDFParameterSpec.ExtractThenExpand |
thenExpand |
Builds an ExtractThenExpand object from the current state of the Builder. |
Method Details
extractOnly
public HKDFParameterSpec.Extract extractOnly()
Extract object from the current state of the Builder.- Returns:
- an immutable
Extractobject
thenExpand
public HKDFParameterSpec.ExtractThenExpand thenExpand(byte[] info, int length)
ExtractThenExpand object from the current state of the Builder.- Implementation Note:
- HKDF implementations will enforce that the length is not greater than 255 * HMAC length. HKDF implementations will also enforce that a {code null} info value is treated as zero-length byte array.
- Parameters:
-
info- the optional context and application specific information (may benull); the byte array is cloned to prevent subsequent modification -
length- the length of the output keying material (must be greater than 0) - Returns:
- an immutable
ExtractThenExpandobject - Throws:
-
IllegalArgumentException- iflengthis not greater than 0
addIKM
public HKDFParameterSpec.Builder addIKM(SecretKey ikm)
Users may call addIKM multiple times when the input keying material value is to be assembled piece-meal or if part of the IKM is to be supplied by a hardware crypto device. The ikms() method of the Extract or ExtractThenExpand object that is subsequently built returns the assembled input keying material as a list of SecretKey objects.
- Parameters:
-
ikm- the input keying material (IKM) value - Returns:
- this builder
- Throws:
-
NullPointerException- if theikmargument is null
addIKM
public HKDFParameterSpec.Builder addIKM(byte[] ikm)
ikm byte array of length zero will be discarded. Users may call addIKM multiple times when the input keying material value is to be assembled piece-meal or if part of the IKM is to be supplied by a hardware crypto device. The ikms() method of the Extract or ExtractThenExpand object that is subsequently built returns the assembled input keying material as a list of SecretKey objects.
- Parameters:
-
ikm- the input keying material (IKM) value; theikmbyte array will be converted to aSecretKeySpec, which means that the byte array will be cloned inside theSecretKeySpecconstructor - Returns:
- this builder
- Throws:
-
NullPointerException- if theikmargument is null
addSalt
public HKDFParameterSpec.Builder addSalt(SecretKey salt)
Users may call addSalt multiple times when the salt value is to be assembled piece-meal or if part of the salt is to be supplied by a hardware crypto device. The salts() method of the Extract or ExtractThenExpand object that is subsequently built returns the assembled salt as a list of SecretKey objects.
- Parameters:
-
salt- the salt value - Returns:
- this builder
- Throws:
-
NullPointerException- if thesaltis null
addSalt
public HKDFParameterSpec.Builder addSalt(byte[] salt)
salt byte array of length zero will be discarded. Users may call addSalt multiple times when the salt value is to be assembled piece-meal or if part of the salt is to be supplied by a hardware crypto device. The salts() method of the Extract or ExtractThenExpand object that is subsequently built returns the assembled salt as a list of SecretKey objects.
- Parameters:
-
salt- the salt value; thesaltbyte array will be converted to aSecretKeySpec, which means that the byte array will be cloned inside theSecretKeySpecconstructor - Returns:
- this builder
- Throws:
-
NullPointerException- if thesaltis null
© 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.Builder.html