# Print output for @column tags ?>
Developers

- Design
- Develop
- Distribute

Developer Console

## Most visited

## Recently visited

## Results for

Summary: Ctors | Protected Methods | Inherited Methods

# ExemptionMechanismSpi

`public abstract class ExemptionMechanismSpi`
`extends Object` ``

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

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

## Summary

### Public constructors
`ExemptionMechanismSpi()`

### Protected methods
`abstract byte[]` | `engineGenExemptionBlob()` Generates the exemption mechanism key blob.
`abstract int` | `engineGenExemptionBlob(byte[] output, int outputOffset)` Generates the exemption mechanism key blob, and stores the result in the `output` buffer, starting at `outputOffset` inclusive.
`abstract int` | `engineGetOutputSize(int inputLen)` Returns the length in bytes that an output buffer would need to be in order to hold the result of the next `engineGenExemptionBlob` operation, given the input length `inputLen` (in bytes).
`abstract void` | `engineInit(Key key)` Initializes this exemption mechanism with a key.
`abstract void` | `engineInit(Key key, AlgorithmParameterSpec params)` Initializes this exemption mechanism with a key and a set of algorithm parameters.
`abstract void` | `engineInit(Key key, AlgorithmParameters params)` Initializes this exemption mechanism with a key and a set of algorithm parameters.

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

### ExemptionMechanismSpi

    public ExemptionMechanismSpi ()

## Protected methods

### engineGenExemptionBlob

    protected abstract byte[] engineGenExemptionBlob ()

Generates the exemption mechanism key blob.

Returns
`byte[]` | the new buffer with the result key blob.

Throws
`ExemptionMechanismException` | if problem(s) encountered in the process of generating.

### engineGenExemptionBlob

    protected abstract int engineGenExemptionBlob (byte[] output,
                    int outputOffset)

Generates the exemption mechanism key blob, and stores the result in the `output` buffer, starting at `outputOffset` inclusive.

If the `output` buffer is too small to hold the result, a `ShortBufferException` is thrown. In this case, repeat this call with a larger output buffer. Use `engineGetOutputSize` to determine how big the output buffer should be.

Parameters
`output` | `byte`: the buffer for the result
`outputOffset` | `int`: the offset in `output` where the result is stored

Returns
`int` | the number of bytes stored in `output`

Throws
`ShortBufferException` | if the given output buffer is too small to hold the result.
`ExemptionMechanismException` | if problem(s) encountered in the process of generating.

### engineGetOutputSize

    protected abstract int engineGetOutputSize (int inputLen)

Returns the length in bytes that an output buffer would need to be in order to hold the result of the next `engineGenExemptionBlob` operation, given the input length `inputLen` (in bytes).

The actual output length of the next `engineGenExemptionBlob` call may be smaller than the length returned by this method.

Parameters
`inputLen` | `int`: the input length (in bytes)

Returns
`int` | the required output buffer size (in bytes)

### engineInit

    protected abstract void engineInit (Key key)

Initializes this exemption mechanism with a key.

If this exemption mechanism requires any algorithm parameters that cannot be derived from the given `key`, the underlying exemption mechanism implementation is supposed to generate the required parameters itself (using provider-specific default values); in the case that algorithm parameters must be specified by the caller, an `InvalidKeyException` is raised.

Parameters
`key` | `Key`: the key for this exemption mechanism

Throws
`InvalidKeyException` | if the given key is inappropriate for this exemption mechanism.
`ExemptionMechanismException` | if problem(s) encountered in the process of initializing.

### engineInit

    protected abstract void engineInit (Key key,
                    AlgorithmParameterSpec params)

Initializes this exemption mechanism with a key and a set of algorithm parameters.

If this exemption mechanism requires any algorithm parameters and `params` is null, the underlying exemption mechanism implementation is supposed to generate the required parameters itself (using provider-specific default values); in the case that algorithm parameters must be specified by the caller, an `InvalidAlgorithmParameterException` is raised.

Parameters
`key` | `Key`: the key for this exemption mechanism
`params` | `AlgorithmParameterSpec`: the algorithm parameters

Throws
`InvalidKeyException` | if the given key is inappropriate for this exemption mechanism.
`InvalidAlgorithmParameterException` | if the given algorithm parameters are inappropriate for this exemption mechanism.
`ExemptionMechanismException` | if problem(s) encountered in the process of initializing.

### engineInit

    protected abstract void engineInit (Key key,
                    AlgorithmParameters params)

Initializes this exemption mechanism with a key and a set of algorithm parameters.

If this exemption mechanism requires any algorithm parameters and `params` is null, the underlying exemption mechanism implementation is supposed to generate the required parameters itself (using provider-specific default values); in the case that algorithm parameters must be specified by the caller, an `InvalidAlgorithmParameterException` is raised.

Parameters
`key` | `Key`: the key for this exemption mechanism
`params` | `AlgorithmParameters`: the algorithm parameters

Throws
`InvalidKeyException` | if the given key is inappropriate for this exemption mechanism.
`InvalidAlgorithmParameterException` | if the given algorithm parameters are inappropriate for this exemption mechanism.
`ExemptionMechanismException` | if problem(s) encountered in the process of initializing.

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