| Modifier | Constructor and Description |
|---|---|
protected |
Mac(MacSpi macSpi,
Provider provider,
String algorithm)
Creates a new
Mac instance. |
| Modifier and Type | Method and Description |
|---|---|
Object |
clone()
Clones this
Mac instance and the underlying implementation. |
byte[] |
doFinal()
Computes the digest of this MAC based on the data previously specified in
update(byte) calls. |
byte[] |
doFinal(byte[] input)
Computes the digest of this MAC based on the data previously specified on
update(byte) calls and on the final bytes specified by input
(or based on those bytes only). |
void |
doFinal(byte[] output,
int outOffset)
Computes the digest of this MAC based on the data previously specified in
update(byte) calls and stores the digest in the specified output buffer at offset outOffset. |
String |
getAlgorithm()
Returns the name of the MAC algorithm.
|
MacSpi |
getCurrentSpi()
Returns the
MacSpi backing this Mac or null if no MacSpi is
backing this Mac. |
static Mac |
getInstance(String algorithm)
Creates a new
Mac instance that provides the specified MAC
algorithm. |
static Mac |
getInstance(String algorithm,
Provider provider)
Creates a new
Mac instance that provides the specified MAC
algorithm from the specified provider. |
static Mac |
getInstance(String algorithm,
String provider)
Creates a new
Mac instance that provides the specified MAC
algorithm from the specified provider. |
int |
getMacLength()
Returns the length of this MAC (in bytes).
|
Provider |
getProvider()
Returns the provider of this
Mac instance. |
void |
init(Key key)
Initializes this
Mac instance with the specified key. |
void |
init(Key key,
AlgorithmParameterSpec params)
Initializes this
Mac instance with the specified key and
algorithm parameters. |
void |
reset()
Resets this
Mac instance to its initial state. |
void |
update(byte input)
Updates this
Mac instance with the specified byte. |
void |
update(byte[] input)
Copies the buffer provided as input for further processing.
|
void |
update(byte[] input,
int offset,
int len)
Updates this
Mac instance with the data from the specified buffer
input from the specified offset and length len. |
void |
update(ByteBuffer input)
Updates this
Mac instance with the data from the specified
buffer, starting at Buffer.position(), including the next
Buffer.remaining() bytes. |
public final String getAlgorithm()
public final Provider getProvider()
Mac instance.Mac instance.public static final Mac getInstance(String algorithm) throws NoSuchAlgorithmException
Mac instance that provides the specified MAC
algorithm.algorithm - the name of the requested MAC algorithm.Mac instance.NoSuchAlgorithmException - if the specified algorithm is not available by any provider.NullPointerException - if algorithm is null (instead of
NoSuchAlgorithmException as in 1.4 release).public static final Mac getInstance(String algorithm, String provider) throws NoSuchAlgorithmException, NoSuchProviderException
Mac instance that provides the specified MAC
algorithm from the specified provider.algorithm - the name of the requested MAC algorithm.provider - the name of the provider that is providing the algorithm.Mac instance.NoSuchAlgorithmException - if the specified algorithm is not provided by the specified
provider.NoSuchProviderException - if the specified provider is not available.IllegalArgumentException - if the specified provider name is null or empty.NullPointerException - if algorithm is null (instead of
NoSuchAlgorithmException as in 1.4 release).public static final Mac getInstance(String algorithm, Provider provider) throws NoSuchAlgorithmException
Mac instance that provides the specified MAC
algorithm from the specified provider. The provider supplied
does not have to be registered.algorithm - the name of the requested MAC algorithm.provider - the provider that is providing the algorithm.Mac instance.NoSuchAlgorithmException - if the specified algorithm is not provided by the specified
provider.IllegalArgumentException - if provider is null.NullPointerException - if algorithm is null (instead of
NoSuchAlgorithmException as in 1.4 release).public MacSpi getCurrentSpi()
MacSpi backing this Mac or null if no MacSpi is
backing this Mac.public final int getMacLength()
public final void init(Key key, AlgorithmParameterSpec params) throws InvalidKeyException, InvalidAlgorithmParameterException
Mac instance with the specified key and
algorithm parameters.key - the key to initialize this algorithm.params - the parameters for this algorithm.InvalidKeyException - if the specified key cannot be used to initialize this
algorithm, or it is null.InvalidAlgorithmParameterException - if the specified parameters cannot be used to initialize this
algorithm.public final void init(Key key) throws InvalidKeyException
Mac instance with the specified key.key - the key to initialize this algorithm.InvalidKeyException - if initialization fails because the provided key is null.RuntimeException - if the specified key cannot be used to initialize this
algorithm.public final void update(byte input)
throws IllegalStateException
Mac instance with the specified byte.input - the byteIllegalStateException - if this MAC is not initialized.public final void update(byte[] input,
int offset,
int len)
throws IllegalStateException
Mac instance with the data from the specified buffer
input from the specified offset and length len.input - the buffer.offset - the offset in the buffer.len - the length of the data in the buffer.IllegalStateException - if this MAC is not initialized.IllegalArgumentException - if offset and len do not specified a valid
chunk in input buffer.public final void update(byte[] input)
throws IllegalStateException
input - the buffer.IllegalStateException - if this MAC is not initialized.public final void update(ByteBuffer input)
Mac instance with the data from the specified
buffer, starting at Buffer.position(), including the next
Buffer.remaining() bytes.input - the buffer.IllegalStateException - if this MAC is not initialized.public final byte[] doFinal()
throws IllegalStateException
update(byte) calls.
This Mac instance is reverted to its initial state and can be
used to start the next MAC computation with the same parameters or
initialized with different parameters.
IllegalStateException - if this MAC is not initialized.public final void doFinal(byte[] output,
int outOffset)
throws ShortBufferException,
IllegalStateException
update(byte) calls and stores the digest in the specified output buffer at offset outOffset.
This Mac instance is reverted to its initial state and can be
used to start the next MAC computation with the same parameters or
initialized with different parameters.
output - the output bufferoutOffset - the offset in the output bufferShortBufferException - if the specified output buffer is either too small for the
digest to be stored, the specified output buffer is null, or the specified offset is negative or past the length
of the output buffer.IllegalStateException - if this MAC is not initialized.public final byte[] doFinal(byte[] input)
throws IllegalStateException
update(byte) calls and on the final bytes specified by input
(or based on those bytes only).
This Mac instance is reverted to its initial state and can be
used to start the next MAC computation with the same parameters or
initialized with different parameters.
input - the final bytes.IllegalStateException - if this MAC is not initialized.public final void reset()
Mac instance to its initial state.
This Mac instance is reverted to its initial state and can be
used to start the next MAC computation with the same parameters or
initialized with different parameters.
public final Object clone() throws CloneNotSupportedException
Mac instance and the underlying implementation.clone in class ObjectCloneNotSupportedException - if the underlying implementation does not support cloning.