|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectjavax.crypto.Mac
public class Mac
This class implements a "message authentication code" (MAC), a method to ensure the integrity of data transmitted between two parties who share a common secret key.
The best way to describe a MAC is as a keyed one-way hash function, which looks like:
D = MAC(K, M)
where K
is the key, M
is the message,
and D
is the resulting digest. One party will usually
send the concatenation M || D
to the other party, who
will then verify D
by computing D'
in a
similar fashion. If D == D'
, then the message is assumed
to be authentic.
Constructor Summary | |
---|---|
protected |
Mac(MacSpi macSpi,
Provider provider,
String algorithm)
Creates a new Mac instance. |
Method Summary | |
---|---|
Object |
clone()
Clone this instance, if the underlying implementation supports it. |
byte[] |
doFinal()
Finishes the computation of a MAC and returns the digest. |
byte[] |
doFinal(byte[] input)
Finishes the computation of a MAC with a final byte array (or computes a MAC over those bytes only) and returns the digest. |
void |
doFinal(byte[] output,
int outOffset)
Finishes the computation of a MAC and places the result into the given array. |
String |
getAlgorithm()
Returns the name of this MAC algorithm. |
static Mac |
getInstance(String algorithm)
Create an instance of the named algorithm from the first provider with an appropriate implementation. |
static Mac |
getInstance(String algorithm,
Provider provider)
Create an instance of the named algorithm from a provider. |
static Mac |
getInstance(String algorithm,
String provider)
Create an instance of the named algorithm from the named provider. |
int |
getMacLength()
Get the size of the MAC. |
Provider |
getProvider()
Get the provider of the underlying implementation. |
void |
init(Key key)
Initialize this MAC with a key and no parameters. |
void |
init(Key key,
AlgorithmParameterSpec params)
Initialize this MAC with a key and parameters. |
void |
reset()
Reset this instance. |
void |
update(byte input)
Update the computation with a single byte. |
void |
update(byte[] input)
Update the computation with a byte array. |
void |
update(byte[] input,
int offset,
int length)
Update the computation with a portion of a byte array. |
void |
update(ByteBuffer buffer)
Update this MAC with the remaining bytes in the given buffer |
Methods inherited from class java.lang.Object |
---|
equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Constructor Detail |
---|
protected Mac(MacSpi macSpi, Provider provider, String algorithm)
macSpi
- The underlying MAC implementation.provider
- The provider of this implementation.algorithm
- The name of this MAC algorithm.Method Detail |
---|
public static final Mac getInstance(String algorithm) throws NoSuchAlgorithmException
algorithm
- The name of the algorithm.
NoSuchAlgorithmException
- If no implementation of the named
algorithm is installed.
IllegalArgumentException
- if algorithm
is
null
or is an empty string.public static final Mac getInstance(String algorithm, String provider) throws NoSuchAlgorithmException, NoSuchProviderException
algorithm
- The name of the algorithm.provider
- The name of the provider.
NoSuchAlgorithmException
- If the named provider has no
implementation of the algorithm.
NoSuchProviderException
- If the named provider does not exist.
IllegalArgumentException
- if either algorithm
or
provider
is null
, or if
algorithm
is an empty string.public static final Mac getInstance(String algorithm, Provider provider) throws NoSuchAlgorithmException
algorithm
- The name of the algorithm.provider
- The provider.
NoSuchAlgorithmException
- If the provider has no implementation of
the algorithm.
IllegalArgumentException
- if either algorithm
or
provider
is null
, or if
algorithm
is an empty string.public final byte[] doFinal() throws IllegalStateException
After this method succeeds, it may be used again as just after a
call to init
, and can compute another MAC using the
same key and parameters.
IllegalStateException
- If this instnace has not
been initialized.public final byte[] doFinal(byte[] input) throws IllegalStateException
After this method succeeds, it may be used again as just after a
call to init
, and can compute another MAC using the
same key and parameters.
input
- The bytes to add.
IllegalStateException
- If this instnace has not
been initialized.public final void doFinal(byte[] output, int outOffset) throws IllegalStateException, ShortBufferException
After this method succeeds, it may be used again as just after a
call to init
, and can compute another MAC using the
same key and parameters.
output
- The destination for the result.outOffset
- The index in the output array to start.
IllegalStateException
- If this instnace has not
been initialized.
ShortBufferException
- If output
is
not large enough to hold the result.public final String getAlgorithm()
public final int getMacLength()
doFinal()
and doFinal(byte[])
, and the minimum
number of bytes that must be available in the byte array passed to
doFinal(byte[],int)
.
public final Provider getProvider()
public final void init(Key key) throws InvalidKeyException
key
- The key to initialize this instance with.
InvalidKeyException
- If the key is
unacceptable.public final void init(Key key, AlgorithmParameterSpec params) throws InvalidAlgorithmParameterException, InvalidKeyException
key
- The key to initialize this instance with.params
- The algorithm-specific parameters.
InvalidAlgorithmParameterException
- If the
algorithm parameters are unacceptable.
InvalidKeyException
- If the key is
unacceptable.public final void reset()
public final void update(byte input) throws IllegalStateException
input
- The next byte.
IllegalStateException
- If this instance has not
been initialized.public final void update(byte[] input) throws IllegalStateException
input
- The next bytes.
IllegalStateException
- If this instance has not
been initialized.public final void update(byte[] input, int offset, int length) throws IllegalStateException
input
- The next bytes.offset
- The index in input
to start.length
- The number of bytes to update.
IllegalStateException
- If this instance has not
been initialized.public final void update(ByteBuffer buffer)
buffer
- The input buffer.public final Object clone() throws CloneNotSupportedException
clone
in class Object
CloneNotSupportedException
- If the underlying
implementation is not cloneable.Cloneable
|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |