Overview | Package | Class | Tree | Deprecated | Index | Help
| Bouncy Castle Cryptography 1.21
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## javax.crypto
Class SecretKeyFactorySpi

    java.lang.Object
      |
      +--javax.crypto.SecretKeyFactorySpi

Direct Known Subclasses:
  JCESecretKeyFactory

public abstract class SecretKeyFactorySpi
extends java.lang.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.

See Also:
  `SecretKey`, `DESKeySpec`, `DESedeKeySpec`

Constructor Summary
`SecretKeyFactorySpi()`

Method Summary
`protected abstract SecretKey` | `engineGenerateSecret(KeySpec keySpec)` Generates a `SecretKey` object from the provided key specification (key material).
`protected abstract KeySpec` | `engineGetKeySpec(SecretKey key, java.lang.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.

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

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,
                                                java.lang.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 java.security.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:
    InvalidKeyException if the given key cannot be processed by this secret-key factory.
    `java.security.InvalidKeyException`

Overview | Package | Class | Tree | Deprecated | Index | Help
| Bouncy Castle Cryptography 1.21
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD