javax.crypto
Class MacSpi

java.lang.Object
  extended by javax.crypto.MacSpi

public abstract class MacSpi
extends Object

This is the Service Provider Interface (SPI) for the Mac class.

Providers wishing to implement a Mac must subclass this class and provide appropriate implementations of all its abstract methods, then provide an entry pointing to this implementation in the master Provider class.

Implementations may optionally implement the Cloneable interface.

Since:
1.4

Constructor Summary
MacSpi()
          Create a new MacSpi instance.
 
Method Summary
 Object clone()
          Returns a clone of this instance if cloning is supported.
protected abstract  byte[] engineDoFinal()
          Finalize the computation of this MAC and return the result as a byte array.
protected abstract  int engineGetMacLength()
          Return the total length, in bytes, of the computed MAC (the length of the byte array returned by #doFinal().
protected abstract  void engineInit(Key key, AlgorithmParameterSpec params)
          Initialize (or re-initialize) this instance.
protected abstract  void engineReset()
          Reset this instance.
protected abstract  void engineUpdate(byte input)
          Update this MAC with a single byte.
protected abstract  void engineUpdate(byte[] input, int offset, int length)
          Update this MAC with a portion of a byte array.
protected  void engineUpdate(ByteBuffer buffer)
          Update this MAC with the remaining bytes of a buffer.
 
Methods inherited from class java.lang.Object
equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

MacSpi

public MacSpi()
Create a new MacSpi instance.

Method Detail

clone

public Object clone()
             throws CloneNotSupportedException
Returns a clone of this instance if cloning is supported.

Overrides:
clone in class Object
Returns:
A clone of this instance.
Throws:
CloneNotSupportedException - If this instance does not support cloneing.
See Also:
Cloneable

engineDoFinal

protected abstract byte[] engineDoFinal()
Finalize the computation of this MAC and return the result as a byte array.

Returns:
The MAC.

engineGetMacLength

protected abstract int engineGetMacLength()
Return the total length, in bytes, of the computed MAC (the length of the byte array returned by #doFinal().

Returns:
The MAC length.

engineInit

protected abstract void engineInit(Key key,
                                   AlgorithmParameterSpec params)
                            throws InvalidAlgorithmParameterException,
                                   InvalidKeyException
Initialize (or re-initialize) this instance.

Parameters:
key - The key to use.
params - The parameters to use.
Throws:
InvalidAlgorithmParameterException - If this instance rejects the specified parameters.
InvalidKeyException - If this instance rejects the specified key.

engineReset

protected abstract void engineReset()
Reset this instance. After this method succeeds, the state of this instance should be the same as it was before any data was input (possibly after a call to #init(java.security.Key,java.security.spec.AlgorithmParameterSpec), possibly not).


engineUpdate

protected abstract void engineUpdate(byte input)
Update this MAC with a single byte.

Parameters:
input - The next byte.

engineUpdate

protected abstract void engineUpdate(byte[] input,
                                     int offset,
                                     int length)
Update this MAC with a portion of a byte array.

Parameters:
input - The next bytes.
offset - The index in input at which to start.
length - The number of bytes to update.

engineUpdate

protected void engineUpdate(ByteBuffer buffer)
Update this MAC with the remaining bytes of a buffer.

Parameters:
buffer - The input buffer.
Since:
1.5