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  SecretKeyobject 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, 2023, Oracle and/or its affiliates.  All rights reserved. Use is subject to license terms. Also see the documentation redistribution policy.