# Print output for @column tags ?>
Developers

- Design
- Develop
- Distribute

Developer Console

## Most visited

## Recently visited

## Results for

Summary: Ctors | Protected Methods | Inherited Methods

# SecretKeyFactorySpi

`public abstract class SecretKeyFactorySpi`
`extends Object` ``

java.lang.Object
↳ | javax.crypto.SecretKeyFactorySpi

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`

## Summary

### Public constructors
`SecretKeyFactorySpi()`

### Protected methods
`abstract SecretKey` | `engineGenerateSecret(KeySpec keySpec)` Generates a `SecretKey` object from the provided key specification (key material).
`abstract KeySpec` | `engineGetKeySpec(SecretKey key, Class<?> keySpec)` Returns a specification (key material) of the given key object in the requested format.
`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.

### Inherited methods
From class `java.lang.Object`
`Object` | `clone()` Creates and returns a copy of this object.
`boolean` | `equals(Object obj)` Indicates whether some other object is "equal to" this one.
`void` | `finalize()` Called by the garbage collector on an object when garbage collection determines that there are no more references to the object.
`final Class<?>` | `getClass()` Returns the runtime class of this `Object`.
`int` | `hashCode()` Returns a hash code value for the object.
`final void` | `notify()` Wakes up a single thread that is waiting on this object's monitor.
`final void` | `notifyAll()` Wakes up all threads that are waiting on this object's monitor.
`String` | `toString()` Returns a string representation of the object.
`final void` | `wait(long timeout, int nanos)` Causes the current thread to wait until another thread invokes the `notify()` method or the `notifyAll()` method for this object, or some other thread interrupts the current thread, or a certain amount of real time has elapsed.
`final void` | `wait(long timeout)` Causes the current thread to wait until either another thread invokes the `notify()` method or the `notifyAll()` method for this object, or a specified amount of time has elapsed.
`final void` | `wait()` Causes the current thread to wait until another thread invokes the `notify()` method or the `notifyAll()` method for this object.

## Public constructors

### SecretKeyFactorySpi

    public SecretKeyFactorySpi ()

## Protected methods

### engineGenerateSecret

    protected abstract SecretKey engineGenerateSecret (KeySpec keySpec)

Generates a `SecretKey` object from the provided key specification (key material).

Parameters
`keySpec` | `KeySpec`: the specification (key material) of the secret key

Returns
`SecretKey` | 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)

Returns a specification (key material) of the given key object in the requested format.

Parameters
`key` | `SecretKey`: the key
`keySpec` | `Class`: the requested format in which the key material shall be returned

Returns
`KeySpec` | 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)

Translates a key object, whose provider may be unknown or potentially untrusted, into a corresponding key object of this secret-key factory.

Parameters
`key` | `SecretKey`: the key whose provider is unknown or untrusted

Returns
`SecretKey` | the translated key

Throws
`InvalidKeyException` | if the given key cannot be processed by this secret-key factory.

Full name *
Email address *
Company / developer name
One of your Play Store app URLs *
Which best describes your business:*
Apps
Games
Apps & Games
*
*