javax.crypto
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 Copyright © 1993, 2017, Oracle and/or its affiliates. All rights reserved.
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.