public abstract class SecretKeyFactorySpi extends Object
SecretKeyFactoryclass. 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
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
|Constructor and Description|
|Modifier and Type||Method and Description|
Returns a specification (key material) of the given key object in the requested format.
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
SecretKeyobject from the provided key specification (key material).
keySpec- the specification (key material) of the secret key
InvalidKeySpecException- 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 key
keySpec- the requested format in which the key material shall be returned
InvalidKeySpecException- if the requested key specification is inappropriate for the given key (e.g., the algorithms associated with
keySpecdo not match, or
keyreferences a key on a cryptographic hardware device whereas
keySpecis 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 untrusted
InvalidKeyException- if the given key cannot be processed by this secret-key factory.