Class KDFSpi
KDFSpi
is a preview API of the Java platform.
KDF
PREVIEW) class.
All the abstract methods in this class must be implemented by each cryptographic service provider who wishes to supply the implementation of a particular key derivation function algorithm.
Implementations must provide a public constructor which accepts a
KDFParameters
object if they depend on the default implementation of
Provider.Service.newInstance
to construct KDFSpi
instances.
The constructor must call super(params)
passing the parameters
supplied. The constructor must also throw an
InvalidAlgorithmParameterException
if the supplied parameters are
inappropriate. If a KDF
object is instantiated with one of the
getInstance
methods that contains a KDFParameters
parameter,
the user-provided KDFParameters
object will be passed to the
constructor of the KDFSpi
implementation. Otherwise, if it is
instantiated with one of the getInstance
methods without a
KDFParameters
parameter, a null
value will be passed to the
constructor.
Implementations which do not support KDFParameters
must require
null
to be passed, otherwise an
InvalidAlgorithmParameterException
will be thrown. On the other hand,
implementations which require KDFParameters
should throw an
InvalidAlgorithmParameterException
upon receiving a null
value if default parameters cannot be generated or upon receiving
KDFParameters
which are not supported by the implementation.
To aid the caller, implementations may return parameters with additional
default values or supply random values as used by the underlying KDF
algorithm. See engineGetParameters()
for more details.
- Since:
- 24
- See Also:
-
Constructor Summary
ModifierConstructorDescriptionprotected
KDFSpi
(KDFParametersPREVIEW kdfParameters) The sole constructor. -
Method Summary
Modifier and TypeMethodDescriptionprotected abstract byte[]
engineDeriveData
(AlgorithmParameterSpec derivationSpec) Derives a key, returns raw data as a byte array.protected abstract SecretKey
engineDeriveKey
(String alg, AlgorithmParameterSpec derivationSpec) Derives a key, returned as aSecretKey
object.protected abstract KDFParametersPREVIEW
Returns theKDFParameters
used with thisKDF
object.
-
Constructor Details
-
KDFSpi
The sole constructor.A
KDFParameters
object may be specified for KDF algorithms that support initialization parameters.- Parameters:
kdfParameters
- the initialization parameters for theKDF
algorithm (may benull
)- Throws:
InvalidAlgorithmParameterException
- if the initialization parameters are inappropriate for thisKDFSpi
- See Also:
-
-
Method Details
-
engineGetParameters
Returns theKDFParameters
used with thisKDF
object.The returned parameters may be the same that were used to initialize this
KDF
object, or may contain additional default or random parameter values used by the underlying KDF algorithm. If the required parameters were not supplied and can be generated by theKDF
object, the generated parameters are returned; otherwisenull
is returned.- Returns:
- the parameters used with this
KDF
object, ornull
-
engineDeriveKey
protected abstract SecretKey engineDeriveKey(String alg, AlgorithmParameterSpec derivationSpec) throws InvalidAlgorithmParameterException, NoSuchAlgorithmException Derives a key, returned as aSecretKey
object.- Implementation Note:
- If the resultant key is extractable, then its
getEncoded
value should have the same content as the result ofderiveData
. - Parameters:
alg
- the algorithm of the resultantSecretKey
objectderivationSpec
- derivation parameters- Returns:
- the derived key.
- Throws:
InvalidAlgorithmParameterException
- if the information contained within thederivationSpec
is invalid or if the combination ofalg
and thederivationSpec
results in something invalidNoSuchAlgorithmException
- ifalg
is empty or invalidNullPointerException
- ifalg
orderivationSpec
is null
-
engineDeriveData
protected abstract byte[] engineDeriveData(AlgorithmParameterSpec derivationSpec) throws InvalidAlgorithmParameterException Derives a key, returns raw data as a byte array.- Parameters:
derivationSpec
- derivation parameters- Returns:
- the derived key in its raw bytes.
- Throws:
InvalidAlgorithmParameterException
- if the information contained within thederivationSpec
is invalidUnsupportedOperationException
- if the derived keying material is not extractableNullPointerException
- ifderivationSpec
is null
-
KDFSpi
when preview features are enabled.