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 key,
AlgorithmParameterSpec params)
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 input)
Processes
input.remaining() bytes in the ByteBuffer
input , starting at input.position() . |
protected abstract int engineGetMacLength()
protected abstract void engineInit(Key key, 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(ByteBuffer input)
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 ByteBufferprotected abstract byte[] engineDoFinal()
protected abstract void engineReset()
public Object clone() throws CloneNotSupportedException
clone
in class Object
CloneNotSupportedException
- if this is called
on an implementation that does not support Cloneable
.Cloneable
Submit a bug or feature
For further API reference and developer documentation, see Java SE Documentation. That documentation contains more detailed, developer-targeted descriptions, with conceptual overviews, definitions of terms, workarounds, and working code examples.
Copyright © 1993, 2018, Oracle and/or its affiliates. All rights reserved. Use is subject to license terms. Also see the documentation redistribution policy.