public class

Mac

extends Object
implements Cloneable
java.lang.Object
   ↳ javax.crypto.Mac

Class Overview

This class provides the public API for Message Authentication Code (MAC) algorithms.

Summary

Protected Constructors
Mac(MacSpi macSpi, Provider provider, String algorithm)
Creates a new Mac instance.
Public Methods
final Object clone()
Clones this Mac instance and the underlying implementation.
final 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.
final byte[] doFinal()
Computes the digest of this MAC based on the data previously specified in update(byte) calls.
final 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).
final String getAlgorithm()
Returns the name of the MAC algorithm.
final static Mac getInstance(String algorithm, String provider)
Creates a new Mac instance that provides the specified MAC algorithm from the specified provider.
final static Mac getInstance(String algorithm)
Creates a new Mac instance that provides the specified MAC algorithm.
final static Mac getInstance(String algorithm, Provider provider)
Creates a new Mac instance that provides the specified MAC algorithm from the specified provider.
final int getMacLength()
Returns the length of this MAC (in bytes).
final Provider getProvider()
Returns the provider of this Mac instance.
final void init(Key key, AlgorithmParameterSpec params)
Initializes this Mac instance with the specified key and algorithm parameters.
final void init(Key key)
Initializes this Mac instance with the specified key.
final void reset()
Resets this Mac instance to its initial state.
final void update(byte[] input)
Copies the buffer provided as input for further processing.
final void update(byte input)
Updates this Mac instance with the specified byte.
final 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.
final void update(ByteBuffer input)
Updates this Mac instance with the data from the specified buffer, starting at position(), including the next remaining() bytes.
[Expand]
Inherited Methods
From class java.lang.Object

Protected Constructors

protected Mac (MacSpi macSpi, Provider provider, String algorithm)

Since: API Level 1

Creates a new Mac instance.

Parameters
macSpi the implementation delegate.
provider the implementation provider.
algorithm the name of the MAC algorithm.

Public Methods

public final Object clone ()

Since: API Level 1

Clones this Mac instance and the underlying implementation.

Returns
  • the cloned instance.
Throws
CloneNotSupportedException if the underlying implementation does not support cloning.

public final void doFinal (byte[] output, int outOffset)

Since: API Level 1

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.

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.

Parameters
output the output buffer
outOffset the offset in the output buffer
Throws
ShortBufferException 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 ()

Since: API Level 1

Computes the digest of this MAC based on the data previously specified in 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.

Returns
  • the generated digest.
Throws
IllegalStateException if this MAC is not initialized.

public final byte[] doFinal (byte[] input)

Since: API Level 1

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).

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.

Parameters
input the final bytes.
Returns
  • the generated digest.
Throws
IllegalStateException if this MAC is not initialized.

public final String getAlgorithm ()

Since: API Level 1

Returns the name of the MAC algorithm.

Returns
  • the name of the MAC algorithm.

public static final Mac getInstance (String algorithm, String provider)

Since: API Level 1

Creates a new Mac instance that provides the specified MAC algorithm from the specified provider.

Parameters
algorithm the name of the requested MAC algorithm.
provider the name of the provider that is providing the algorithm.
Returns
  • the new Mac instance.
Throws
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)

Since: API Level 1

Creates a new Mac instance that provides the specified MAC algorithm.

Parameters
algorithm the name of the requested MAC algorithm.
Returns
  • the new Mac instance.
Throws
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, Provider provider)

Since: API Level 1

Creates a new Mac instance that provides the specified MAC algorithm from the specified provider.

Parameters
algorithm the name of the requested MAC algorithm.
provider the provider that is providing the algorithm.
Returns
  • the new Mac instance.
Throws
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 final int getMacLength ()

Since: API Level 1

Returns the length of this MAC (in bytes).

Returns
  • the length of this MAC (in bytes).

public final Provider getProvider ()

Since: API Level 1

Returns the provider of this Mac instance.

Returns
  • the provider of this Mac instance.

public final void init (Key key, AlgorithmParameterSpec params)

Since: API Level 1

Initializes this Mac instance with the specified key and algorithm parameters.

Parameters
key the key to initialize this algorithm.
params the parameters for this algorithm.
Throws
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)

Since: API Level 1

Initializes this Mac instance with the specified key.

Parameters
key the key to initialize this algorithm.
Throws
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 reset ()

Since: API Level 1

Resets this 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 void update (byte[] input)

Since: API Level 1

Copies the buffer provided as input for further processing.

Parameters
input the buffer.
Throws
IllegalStateException if this MAC is not initialized.

public final void update (byte input)

Since: API Level 1

Updates this Mac instance with the specified byte.

Parameters
input the byte
Throws
IllegalStateException if this MAC is not initialized.

public final void update (byte[] input, int offset, int len)

Since: API Level 1

Updates this Mac instance with the data from the specified buffer input from the specified offset and length len.

Parameters
input the buffer.
offset the offset in the buffer.
len the length of the data in the buffer.
Throws
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 (ByteBuffer input)

Since: API Level 1

Updates this Mac instance with the data from the specified buffer, starting at position(), including the next remaining() bytes.

Parameters
input the buffer.
Throws
IllegalStateException if this MAC is not initialized.