public abstract class SecretKeyFactorySpi extends Object
SecretKeyFactory
class.
All the abstract methods in this class must be implemented by each
cryptographic service provider who wishes to supply the implementation
of a secret-key factory for a particular algorithm.
A provider should document all the key specifications supported by its
secret key factory.
For example, the DES secret-key factory supplied by the "SunJCE" provider
supports DESKeySpec
as a transparent representation of DES
keys, and that provider's secret-key factory for Triple DES keys supports
DESedeKeySpec
as a transparent representation of Triple DES
keys.
SecretKey
,
DESKeySpec
,
DESedeKeySpec
Constructor and Description |
---|
SecretKeyFactorySpi() |
Modifier and Type | Method and Description |
---|---|
protected abstract SecretKey |
engineGenerateSecret(KeySpec keySpec)
Generates a
SecretKey object from the
provided key specification (key material). |
protected abstract KeySpec |
engineGetKeySpec(SecretKey key,
Class<?> keySpec)
Returns a specification (key material) of the given key
object in the requested format.
|
protected abstract SecretKey |
engineTranslateKey(SecretKey key)
Translates a key object, whose provider may be unknown or
potentially untrusted, into a corresponding key object of this
secret-key factory.
|
protected abstract SecretKey engineGenerateSecret(KeySpec keySpec) throws InvalidKeySpecException
SecretKey
object from the
provided key specification (key material).keySpec
- the specification (key material) of the secret keyInvalidKeySpecException
- if the given key specification
is inappropriate for this secret-key factory to produce a secret key.protected abstract KeySpec engineGetKeySpec(SecretKey key, Class<?> keySpec) throws InvalidKeySpecException
key
- the keykeySpec
- the requested format in which the key material shall be
returnedInvalidKeySpecException
- if the requested key specification is
inappropriate for the given key (e.g., the algorithms associated with
key
and keySpec
do not match, or
key
references a key on a cryptographic hardware device
whereas keySpec
is the specification of a software-based
key), or the given key cannot be dealt with
(e.g., the given key has an algorithm or format not supported by this
secret-key factory).protected abstract SecretKey engineTranslateKey(SecretKey key) throws InvalidKeyException
key
- the key whose provider is unknown or untrustedInvalidKeyException
- if the given key cannot be processed
by this secret-key factory. Submit a bug or feature
For further API reference and developer documentation, see Java SE Documentation. That documentation contains more detailed, developer-targeted descriptions, with conceptual overviews, definitions of terms, workarounds, and working code examples.
Copyright © 1993, 2019, Oracle and/or its affiliates. All rights reserved. Use is subject to license terms. Also see the documentation redistribution policy.