public abstract class MacSpi extends Object
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.
Constructor and Description |
---|
MacSpi()
Create a new MacSpi instance.
|
Modifier and Type | Method and Description |
---|---|
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.
|
public MacSpi()
public Object clone() throws CloneNotSupportedException
clone
in class Object
CloneNotSupportedException
- If this instance does
not support cloneing.Cloneable
protected abstract byte[] engineDoFinal()
protected abstract int engineGetMacLength()
#doFinal()
.protected abstract void engineInit(Key key, AlgorithmParameterSpec params) throws InvalidAlgorithmParameterException, InvalidKeyException
key
- The key to use.params
- The parameters to use.InvalidAlgorithmParameterException
- If this
instance rejects the specified parameters.InvalidKeyException
- If this instance rejects
the specified key.protected abstract void engineReset()
#init(java.security.Key,java.security.spec.AlgorithmParameterSpec)
,
possibly not).protected abstract void engineUpdate(byte input)
input
- The next byte.protected abstract void engineUpdate(byte[] input, int offset, int length)
input
- The next bytes.offset
- The index in input
at which to start.length
- The number of bytes to update.protected void engineUpdate(ByteBuffer buffer)
buffer
- The input buffer.