public abstract class MacSpi extends Object
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.
| Constructor and Description |
|---|
MacSpi()
|
| Modifier and Type | Method and Description |
|---|---|
Object |
clone()
Returns a clone if the implementation is cloneable.
|
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.
|
protected abstract int |
engineGetMacLength()
Returns the length of the MAC in bytes.
|
protected abstract void |
engineInit(Key
Initializes the MAC with the given (secret) key and algorithm parameters.
|
protected abstract void |
engineReset()
Resets the MAC for further use, maintaining the secret key that the MAC was initialized with.
|
protected abstract void |
engineUpdate(byte input)
Processes the given byte.
|
protected abstract void |
engineUpdate(byte[] input, int offset, int len)
Processes the first
len bytes in
input, starting at
offset inclusive.
|
protected void |
engineUpdate(ByteBuffer
Processes
input.remaining() bytes in the ByteBuffer
input, starting at
input.position().
|
protected abstract int engineGetMacLength()
protected abstract void engineInit(Keykey, AlgorithmParameterSpec params) throws InvalidKeyException , InvalidAlgorithmParameterException
key - the (secret) key.
params - the algorithm parameters.
InvalidKeyException - if the given key is inappropriate for initializing this MAC.
InvalidAlgorithmParameterException - if the given algorithm parameters are inappropriate for this MAC.
protected abstract void engineUpdate(byte input)
input - the input byte to be processed.
protected abstract void engineUpdate(byte[] input,
int offset,
int len)
len bytes in
input, starting at
offset inclusive.
input - the input buffer.
offset - the offset in
input where the input starts.
len - the number of bytes to process.
protected void engineUpdate(ByteBufferinput)
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.
input - the ByteBuffer
protected abstract byte[] engineDoFinal()
protected abstract void engineReset()
public Objectclone() throws CloneNotSupportedException
clone in class
Object
CloneNotSupportedException - if this is called on an implementation that does not support
Cloneable.
Cloneable