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
Generates a
SecretKey object from the provided key specification (key material).
|
protected abstract KeySpec |
engineGetKeySpec(SecretKey
Returns a specification (key material) of the given key object in the requested format.
|
protected abstract SecretKey |
engineTranslateKey(SecretKey
Translates a key object, whose provider may be unknown or potentially untrusted, into a corresponding key object of this secret-key factory.
|
protected abstract SecretKeyengineGenerateSecret(KeySpec keySpec) throws InvalidKeySpecException
SecretKey object 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 KeySpecengineGetKeySpec(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
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 SecretKeyengineTranslateKey(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.