# Print output for @column tags ?>
Developers

- Design
- Develop
- Distribute

Developer Console

## Most visited

## Recently visited

## Results for

Summary: Ctors | Protected Methods | Inherited Methods

# KeyGeneratorSpi

`public abstract class KeyGeneratorSpi`
`extends Object` ``

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

This class defines the Service Provider Interface (SPI) for the `KeyGenerator` class. All the abstract methods in this class must be implemented by each cryptographic service provider who wishes to supply the implementation of a key generator for a particular algorithm.

See also:

- `SecretKey`

## Summary

### Public constructors
`KeyGeneratorSpi()`

### Protected methods
`abstract SecretKey` | `engineGenerateKey()` Generates a secret key.
`abstract void` | `engineInit(AlgorithmParameterSpec params, SecureRandom random)` Initializes the key generator with the specified parameter set and a user-provided source of randomness.
`abstract void` | `engineInit(SecureRandom random)` Initializes the key generator.
`abstract void` | `engineInit(int keysize, SecureRandom random)` Initializes this key generator for a certain keysize, using the given source of randomness.

### 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

### KeyGeneratorSpi

    public KeyGeneratorSpi ()

## Protected methods

### engineGenerateKey

    protected abstract SecretKey engineGenerateKey ()

Generates a secret key.

Returns
`SecretKey` | the new key

### engineInit

    protected abstract void engineInit (AlgorithmParameterSpec params,
                    SecureRandom random)

Initializes the key generator with the specified parameter set and a user-provided source of randomness.

Parameters
`params` | `AlgorithmParameterSpec`: the key generation parameters
`random` | `SecureRandom`: the source of randomness for this key generator

Throws
`InvalidAlgorithmParameterException` | if `params` is inappropriate for this key generator

### engineInit

    protected abstract void engineInit (SecureRandom random)

Initializes the key generator.

Parameters
`random` | `SecureRandom`: the source of randomness for this generator

### engineInit

    protected abstract void engineInit (int keysize,
                    SecureRandom random)

Initializes this key generator for a certain keysize, using the given source of randomness.

Parameters
`keysize` | `int`: the keysize. This is an algorithm-specific metric, specified in number of bits.
`random` | `SecureRandom`: the source of randomness for this key generator

Throws
`InvalidParameterException` | if the keysize is wrong or not supported.

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