# Print output for @column tags ?>
Developers

- Design
- Develop
- Distribute

Developer Console

## Most visited

## Recently visited

## Results for

Summary: Ctors | Methods | Protected Methods | Inherited Methods

# MacSpi

`public abstract class MacSpi`
`extends Object` ``

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

This class defines the Service Provider Interface (SPI) for the `Mac` 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 MAC algorithm.

Implementations are free to implement the Cloneable interface.

## Summary

### Public constructors
`MacSpi()`

### Public methods
`Object` | `clone()` Returns a clone if the implementation is cloneable.

### Protected methods
`abstract byte[]` | `engineDoFinal()` Completes the MAC computation and resets the MAC for further use, maintaining the secret key that the MAC was initialized with.
`abstract int` | `engineGetMacLength()` Returns the length of the MAC in bytes.
`abstract void` | `engineInit(Key key, AlgorithmParameterSpec params)` Initializes the MAC with the given (secret) key and algorithm parameters.
`abstract void` | `engineReset()` Resets the MAC for further use, maintaining the secret key that the MAC was initialized with.
`void` | `engineUpdate(ByteBuffer input)` Processes `input.remaining()` bytes in the ByteBuffer `input`, starting at `input.position()`.
`abstract void` | `engineUpdate(byte input)` Processes the given byte.
`abstract void` | `engineUpdate(byte[] input, int offset, int len)` Processes the first `len` bytes in `input`, starting at `offset` inclusive.

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

### MacSpi

    public MacSpi ()

## Public methods

### clone

    public Object clone ()

Returns a clone if the implementation is cloneable.

Returns
`Object` | a clone if the implementation is cloneable.

Throws
`CloneNotSupportedException` | if this is called on an implementation that does not support `Cloneable`.

## Protected methods

### engineDoFinal

    protected abstract byte[] engineDoFinal ()

Completes the MAC computation and resets the MAC for further use, maintaining the secret key that the MAC was initialized with.

Returns
`byte[]` | the MAC result.

### engineGetMacLength

    protected abstract int engineGetMacLength ()

Returns the length of the MAC in bytes.

Returns
`int` | the MAC length in bytes.

### engineInit

    protected abstract void engineInit (Key key,
                    AlgorithmParameterSpec params)

Initializes the MAC with the given (secret) key and algorithm parameters.

Parameters
`key` | `Key`: the (secret) key.
`params` | `AlgorithmParameterSpec`: the algorithm parameters.

Throws
`InvalidKeyException` | if the given key is inappropriate for initializing this MAC.
`InvalidAlgorithmParameterException` | if the given algorithm parameters are inappropriate for this MAC.

### engineReset

    protected abstract void engineReset ()

Resets the MAC for further use, maintaining the secret key that the MAC was initialized with.

### engineUpdate

    protected void engineUpdate (ByteBuffer input)

Processes `input.remaining()` bytes in the ByteBuffer `input`, starting at `input.position()`. Upon return, the buffer's position will be equal to its limit; its limit will not have changed.

Subclasses should consider overriding this method if they can process ByteBuffers more efficiently than byte arrays.

Parameters
`input` | `ByteBuffer`: the ByteBuffer

### engineUpdate

    protected abstract void engineUpdate (byte input)

Processes the given byte.

Parameters
`input` | `byte`: the input byte to be processed.

### engineUpdate

    protected abstract void engineUpdate (byte[] input,
                    int offset,
                    int len)

Processes the first `len` bytes in `input`, starting at `offset` inclusive.

Parameters
`input` | `byte`: the input buffer.
`offset` | `int`: the offset in `input` where the input starts.
`len` | `int`: the number of bytes to process.

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