javax.crypto

Class MacSpi

public abstract class MacSpi extends Object

This is the Service Provider Interface (SPI) for the {@link 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 {@link java.security.Provider} class.

Implementations may optionally implement the {@link java.lang.Cloneable} interface.

Since: 1.4

Constructor Summary
MacSpi()
Create a new MacSpi instance.
Method Summary
Objectclone()
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 intengineGetMacLength()
Return the total length, in bytes, of the computed MAC (the length of the byte array returned by {@link #doFinal()}.
protected abstract voidengineInit(Key key, AlgorithmParameterSpec params)
Initialize (or re-initialize) this instance.
protected abstract voidengineReset()
Reset this instance.
protected abstract voidengineUpdate(byte input)
Update this MAC with a single byte.
protected abstract voidengineUpdate(byte[] input, int offset, int length)
Update this MAC with a portion of a byte array.
protected voidengineUpdate(ByteBuffer buffer)
Update this MAC with the remaining bytes of a buffer.

Constructor Detail

MacSpi

public MacSpi()
Create a new MacSpi instance.

Method Detail

clone

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

Returns: A clone of this instance.

Throws: java.lang.CloneNotSupportedException If this instance does not support cloneing.

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 {@link #doFinal()}.

Returns: The MAC length.

engineInit

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

Parameters: key The key to use. params The parameters to use.

Throws: java.security.InvalidAlgorithmParameterException If this instance rejects the specified parameters. java.security.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 {@link #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