Class SecretKeyFactorySpi



  • public abstract class SecretKeyFactorySpi
    extends Object
    This class defines the Service Provider Interface ( SPI) for the 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.

    Since:
    1.4
    See Also:
    SecretKey, DESKeySpec, DESedeKeySpec
    • Constructor Detail

      • SecretKeyFactorySpi

        public SecretKeyFactorySpi()
    • Method Detail

      • engineGenerateSecret

        protected abstract SecretKey engineGenerateSecret(KeySpec keySpec)
                                                   throws InvalidKeySpecException
        Generates a SecretKey object from the provided key specification (key material).
        Parameters:
        keySpec - the specification (key material) of the secret key
        Returns:
        the secret key
        Throws:
        InvalidKeySpecException - if the given key specification is inappropriate for this secret-key factory to produce a secret key.
      • engineGetKeySpec

        protected abstract KeySpec engineGetKeySpec(SecretKey key,
                                                    Class<?> keySpec)
                                             throws InvalidKeySpecException
        Returns a specification (key material) of the given key object in the requested format.
        Parameters:
        key - the key
        keySpec - the requested format in which the key material shall be returned
        Returns:
        the underlying key specification (key material) in the requested format
        Throws:
        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).
      • engineTranslateKey

        protected abstract SecretKey engineTranslateKey(SecretKey key)
                                                 throws InvalidKeyException
        Translates a key object, whose provider may be unknown or potentially untrusted, into a corresponding key object of this secret-key factory.
        Parameters:
        key - the key whose provider is unknown or untrusted
        Returns:
        the translated key
        Throws:
        InvalidKeyException - if the given key cannot be processed by this secret-key factory.