org.mozilla.jss.crypto

Class JSSMessageDigest

Known Direct Subclasses:
PK11MessageDigest

public abstract class JSSMessageDigest
extends java.lang.Object

A class for performing message digesting (hashing) and MAC operations.

Method Summary

byte[]
digest()
Completes digestion.
byte[]
digest(byte[] input)
Provides final data to the digest, then completes it and returns the output.
abstract int
digest(byte[] buf, int offset, int len)
Completes digesting, storing the result into the provided array.
abstract DigestAlgorithm
getAlgorithm()
Returns the algorithm that this digest uses.
int
getOutputSize()
Returns the length of the digest created by this digest's digest algorithm.
abstract void
initHMAC(SymmetricKey key)
Initializes an HMAC digest with the given symmetric key.
abstract void
reset()
Resets this digest for further use.
void
update(byte input)
Updates the digest with a single byte of input.
void
update(byte[] input)
Updates the digest with an array.
abstract void
update(byte[] input, int offset, int len)
Updates the digest with a portion of an array.

Method Details

digest

public byte[] digest()
            throws DigestException
Completes digestion.
Parameters:
Returns:
The, ahem, output of the digest operation.

digest

public byte[] digest(byte[] input)
            throws DigestException
Provides final data to the digest, then completes it and returns the output.
Parameters:
input - The digest's last meal.
Returns:
The completed digest.

digest

public abstract int digest(byte[] buf,
                           int offset,
                           int len)
            throws DigestException
Completes digesting, storing the result into the provided array.
Parameters:
buf - The buffer in which to place the digest output.
offset - The offset in the buffer at which to store the output.
len - The amount of space available in the buffer for the digest output.
Returns:
The number of bytes actually stored into buf.

getAlgorithm

public abstract DigestAlgorithm getAlgorithm()
Returns the algorithm that this digest uses.

getOutputSize

public int getOutputSize()
Returns the length of the digest created by this digest's digest algorithm.
Returns:
The size in bytes of the output of this digest.

initHMAC

public abstract void initHMAC(SymmetricKey key)
            throws DigestException,
                   InvalidKeyException
Initializes an HMAC digest with the given symmetric key. This also has the effect of resetting the digest.

reset

public abstract void reset()
            throws DigestException
Resets this digest for further use. This clears all input and output streams. If this is an HMAC digest, the HMAC key is not cleared.

update

public void update(byte input)
            throws DigestException
Updates the digest with a single byte of input.

update

public void update(byte[] input)
            throws DigestException
Updates the digest with an array.
Parameters:
input - An array to feed to the digest.

update

public abstract void update(byte[] input,
                            int offset,
                            int len)
            throws DigestException
Updates the digest with a portion of an array.
Parameters:
input - An array from which to update the digest.
offset - The index in the array at which to start digesting.
len - The number of bytes to digest.