Class JSSMessageDigest

java.lang.Object
org.mozilla.jss.crypto.JSSMessageDigest
Direct Known Subclasses:
PK11MessageDigest

public abstract class JSSMessageDigest extends Object
A class for performing message digesting (hashing) and MAC operations.
  • Constructor Summary

    Constructors
    Constructor
    Description
     
  • Method Summary

    Modifier and Type
    Method
    Description
    byte[]
    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.
     
    int
    Returns the length of the digest created by this digest's digest algorithm.
    abstract void
    Initializes an HMAC digest with the given symmetric key.
    abstract void
    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.

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Constructor Details

    • JSSMessageDigest

      public JSSMessageDigest()
  • Method Details

    • 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.
      Parameters:
      key - Symmetric key.
      Throws:
      DigestException - If this algorithm is not an HMAC algorithm.
      InvalidKeyException - If the given key is not valid.
    • update

      public void update(byte input) throws DigestException
      Updates the digest with a single byte of input.
      Parameters:
      input - Input byte.
      Throws:
      DigestException - If an error occurred.
    • 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.
      Throws:
      DigestException - If an error occurs while digesting.
    • update

      public void update(byte[] input) throws DigestException
      Updates the digest with an array.
      Parameters:
      input - An array to feed to the digest.
      Throws:
      DigestException - If an error occurs while digesting.
    • digest

      public byte[] digest() throws DigestException
      Completes digestion.
      Returns:
      The, ahem, output of the digest operation.
      Throws:
      DigestException - If an error occurs while digesting.
    • 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.
      Throws:
      DigestException - If the provided space is too small for the digest, or an error occurs with the digest.
    • 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.
      Throws:
      DigestException - If an error occurs while digesting.
    • 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.
      Throws:
      DigestException - If an error occurred.
    • 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.