org.apache.commons.codec.digest

## Class HmacUtils

- java.lang.Object
- - org.apache.commons.codec.digest.HmacUtils

-     public final class HmacUtils
      extends Object

  Simplifies common `Mac` tasks. This class is immutable and thread-safe.

  Note: Not all JCE implementations supports all algorithms. If not supported, an IllegalArgumentException is thrown.

  Since:
    1.10
  Version:
    $Id: HmacUtils.java 1634411 2014-10-27 00:35:43Z ggregory $

- - ### Constructor Summary

    Constructors
    Constructor and Description
    `HmacUtils()`

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `static Mac` | `getHmacMd5(byte[] key)` Returns an initialized `Mac` for the HmacMD5 algorithm.
    `static Mac` | `getHmacSha1(byte[] key)` Returns an initialized `Mac` for the HmacSHA1 algorithm.
    `static Mac` | `getHmacSha256(byte[] key)` Returns an initialized `Mac` for the HmacSHA256 algorithm.
    `static Mac` | `getHmacSha384(byte[] key)` Returns an initialized `Mac` for the HmacSHA384 algorithm.
    `static Mac` | `getHmacSha512(byte[] key)` Returns an initialized `Mac` for the HmacSHA512 algorithm.
    `static Mac` | `getInitializedMac(HmacAlgorithms algorithm, byte[] key)` Returns an initialized `Mac` for the given `algorithm`.
    `static Mac` | `getInitializedMac(String algorithm, byte[] key)` Returns an initialized `Mac` for the given `algorithm`.
    `static byte[]` | `hmacMd5(byte[] key, byte[] valueToDigest)` Returns a HmacMD5 Message Authentication Code (MAC) for the given key and value.
    `static byte[]` | `hmacMd5(byte[] key, InputStream valueToDigest)` Returns a HmacMD5 Message Authentication Code (MAC) for the given key and value.
    `static byte[]` | `hmacMd5(String key, String valueToDigest)` Returns a HmacMD5 Message Authentication Code (MAC) for the given key and value.
    `static String` | `hmacMd5Hex(byte[] key, byte[] valueToDigest)` Returns a HmacMD5 Message Authentication Code (MAC) as a hex string (lowercase) for the given key and value.
    `static String` | `hmacMd5Hex(byte[] key, InputStream valueToDigest)` Returns a HmacMD5 Message Authentication Code (MAC) as a hex string (lowercase) for the given key and value.
    `static String` | `hmacMd5Hex(String key, String valueToDigest)` Returns a HmacMD5 Message Authentication Code (MAC) as a hex string (lowercase) for the given key and value.
    `static byte[]` | `hmacSha1(byte[] key, byte[] valueToDigest)` Returns a HmacSHA1 Message Authentication Code (MAC) for the given key and value.
    `static byte[]` | `hmacSha1(byte[] key, InputStream valueToDigest)` Returns a HmacSHA1 Message Authentication Code (MAC) for the given key and value.
    `static byte[]` | `hmacSha1(String key, String valueToDigest)` Returns a HmacSHA1 Message Authentication Code (MAC) for the given key and value.
    `static String` | `hmacSha1Hex(byte[] key, byte[] valueToDigest)` Returns a HmacSHA1 Message Authentication Code (MAC) as hex string (lowercase) for the given key and value.
    `static String` | `hmacSha1Hex(byte[] key, InputStream valueToDigest)` Returns a HmacSHA1 Message Authentication Code (MAC) as hex string (lowercase) for the given key and value.
    `static String` | `hmacSha1Hex(String key, String valueToDigest)` Returns a HmacSHA1 Message Authentication Code (MAC) as hex string (lowercase) for the given key and value.
    `static byte[]` | `hmacSha256(byte[] key, byte[] valueToDigest)` Returns a HmacSHA256 Message Authentication Code (MAC) for the given key and value.
    `static byte[]` | `hmacSha256(byte[] key, InputStream valueToDigest)` Returns a HmacSHA256 Message Authentication Code (MAC) for the given key and value.
    `static byte[]` | `hmacSha256(String key, String valueToDigest)` Returns a HmacSHA256 Message Authentication Code (MAC) for the given key and value.
    `static String` | `hmacSha256Hex(byte[] key, byte[] valueToDigest)` Returns a HmacSHA256 Message Authentication Code (MAC) as hex string (lowercase) for the given key and value.
    `static String` | `hmacSha256Hex(byte[] key, InputStream valueToDigest)` Returns a HmacSHA256 Message Authentication Code (MAC) as hex string (lowercase) for the given key and value.
    `static String` | `hmacSha256Hex(String key, String valueToDigest)` Returns a HmacSHA256 Message Authentication Code (MAC) as hex string (lowercase) for the given key and value.
    `static byte[]` | `hmacSha384(byte[] key, byte[] valueToDigest)` Returns a HmacSHA384 Message Authentication Code (MAC) for the given key and value.
    `static byte[]` | `hmacSha384(byte[] key, InputStream valueToDigest)` Returns a HmacSHA384 Message Authentication Code (MAC) for the given key and value.
    `static byte[]` | `hmacSha384(String key, String valueToDigest)` Returns a HmacSHA384 Message Authentication Code (MAC) for the given key and value.
    `static String` | `hmacSha384Hex(byte[] key, byte[] valueToDigest)` Returns a HmacSHA384 Message Authentication Code (MAC) as hex string (lowercase) for the given key and value.
    `static String` | `hmacSha384Hex(byte[] key, InputStream valueToDigest)` Returns a HmacSHA384 Message Authentication Code (MAC) as hex string (lowercase) for the given key and value.
    `static String` | `hmacSha384Hex(String key, String valueToDigest)` Returns a HmacSHA384 Message Authentication Code (MAC) as hex string (lowercase) for the given key and value.
    `static byte[]` | `hmacSha512(byte[] key, byte[] valueToDigest)` Returns a HmacSHA512 Message Authentication Code (MAC) for the given key and value.
    `static byte[]` | `hmacSha512(byte[] key, InputStream valueToDigest)` Returns a HmacSHA512 Message Authentication Code (MAC) for the given key and value.
    `static byte[]` | `hmacSha512(String key, String valueToDigest)` Returns a HmacSHA512 Message Authentication Code (MAC) for the given key and value.
    `static String` | `hmacSha512Hex(byte[] key, byte[] valueToDigest)` Returns a HmacSHA512 Message Authentication Code (MAC) as hex string (lowercase) for the given key and value.
    `static String` | `hmacSha512Hex(byte[] key, InputStream valueToDigest)` Returns a HmacSHA512 Message Authentication Code (MAC) as hex string (lowercase) for the given key and value.
    `static String` | `hmacSha512Hex(String key, String valueToDigest)` Returns a HmacSHA512 Message Authentication Code (MAC) as hex string (lowercase) for the given key and value.
    `static Mac` | `updateHmac(Mac mac, byte[] valueToDigest)` Updates the given `Mac`.
    `static Mac` | `updateHmac(Mac mac, InputStream valueToDigest)` Updates the given `Mac`.
    `static Mac` | `updateHmac(Mac mac, String valueToDigest)` Updates the given `Mac`.

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Constructor Detail

    - #### HmacUtils

          public HmacUtils()

  - ### Method Detail

    - #### getHmacMd5

          public static Mac getHmacMd5(byte[] key)

      Returns an initialized `Mac` for the HmacMD5 algorithm.

      Every implementation of the Java platform is required to support this standard Mac algorithm.

      Parameters:
        `key` - They key for the keyed digest (must not be null)
      Returns:
        A Mac instance initialized with the given key.
      Throws:
        `IllegalArgumentException` - when a `NoSuchAlgorithmException` is caught or key is null or key is invalid.
      See Also:
        `Mac.getInstance(String)`, `Mac.init(Key)`

    - #### getHmacSha1

          public static Mac getHmacSha1(byte[] key)

      Returns an initialized `Mac` for the HmacSHA1 algorithm.

      Every implementation of the Java platform is required to support this standard Mac algorithm.

      Parameters:
        `key` - They key for the keyed digest (must not be null)
      Returns:
        A Mac instance initialized with the given key.
      Throws:
        `IllegalArgumentException` - when a `NoSuchAlgorithmException` is caught or key is null or key is invalid.
      See Also:
        `Mac.getInstance(String)`, `Mac.init(Key)`

    - #### getHmacSha256

          public static Mac getHmacSha256(byte[] key)

      Returns an initialized `Mac` for the HmacSHA256 algorithm.

      Every implementation of the Java platform is required to support this standard Mac algorithm.

      Parameters:
        `key` - They key for the keyed digest (must not be null)
      Returns:
        A Mac instance initialized with the given key.
      Throws:
        `IllegalArgumentException` - when a `NoSuchAlgorithmException` is caught or key is null or key is invalid.
      See Also:
        `Mac.getInstance(String)`, `Mac.init(Key)`

    - #### getHmacSha384

          public static Mac getHmacSha384(byte[] key)

      Returns an initialized `Mac` for the HmacSHA384 algorithm.

      Every implementation of the Java platform is not required to support this Mac algorithm.

      Parameters:
        `key` - They key for the keyed digest (must not be null)
      Returns:
        A Mac instance initialized with the given key.
      Throws:
        `IllegalArgumentException` - when a `NoSuchAlgorithmException` is caught or key is null or key is invalid.
      See Also:
        `Mac.getInstance(String)`, `Mac.init(Key)`

    - #### getHmacSha512

          public static Mac getHmacSha512(byte[] key)

      Returns an initialized `Mac` for the HmacSHA512 algorithm.

      Every implementation of the Java platform is not required to support this Mac algorithm.

      Parameters:
        `key` - They key for the keyed digest (must not be null)
      Returns:
        A Mac instance initialized with the given key.
      Throws:
        `IllegalArgumentException` - when a `NoSuchAlgorithmException` is caught or key is null or key is invalid.
      See Also:
        `Mac.getInstance(String)`, `Mac.init(Key)`

    - #### getInitializedMac

          public static Mac getInitializedMac(HmacAlgorithms algorithm,
                              byte[] key)

      Returns an initialized `Mac` for the given `algorithm`.
      Parameters:
        `algorithm` - the name of the algorithm requested. See Appendix A in the Java Cryptography Architecture Reference Guide for information about standard algorithm names.
        `key` - They key for the keyed digest (must not be null)
      Returns:
        A Mac instance initialized with the given key.
      Throws:
        `IllegalArgumentException` - when a `NoSuchAlgorithmException` is caught or key is null or key is invalid.
      See Also:
        `Mac.getInstance(String)`, `Mac.init(Key)`

    - #### getInitializedMac

          public static Mac getInitializedMac(String algorithm,
                              byte[] key)

      Returns an initialized `Mac` for the given `algorithm`.
      Parameters:
        `algorithm` - the name of the algorithm requested. See Appendix A in the Java Cryptography Architecture Reference Guide for information about standard algorithm names.
        `key` - They key for the keyed digest (must not be null)
      Returns:
        A Mac instance initialized with the given key.
      Throws:
        `IllegalArgumentException` - when a `NoSuchAlgorithmException` is caught or key is null or key is invalid.
      See Also:
        `Mac.getInstance(String)`, `Mac.init(Key)`

    - #### hmacMd5

          public static byte[] hmacMd5(byte[] key,
                       byte[] valueToDigest)

      Returns a HmacMD5 Message Authentication Code (MAC) for the given key and value.
      Parameters:
        `key` - They key for the keyed digest (must not be null)
        `valueToDigest` - The value (data) which should to digest (maybe empty or null)
      Returns:
        HmacMD5 MAC for the given key and value
      Throws:
        `IllegalArgumentException` - when a `NoSuchAlgorithmException` is caught or key is null or key is invalid.

    - #### hmacMd5

          public static byte[] hmacMd5(byte[] key,
                       InputStream valueToDigest)
                                throws IOException

      Returns a HmacMD5 Message Authentication Code (MAC) for the given key and value.
      Parameters:
        `key` - They key for the keyed digest (must not be null)
        `valueToDigest` - The value (data) which should to digest

        The InputStream must not be null and will not be closed

      Returns:
        HmacMD5 MAC for the given key and value
      Throws:
        `IOException` - If an I/O error occurs.
        `IllegalArgumentException` - when a `NoSuchAlgorithmException` is caught or key is null or key is invalid.

    - #### hmacMd5

          public static byte[] hmacMd5(String key,
                       String valueToDigest)

      Returns a HmacMD5 Message Authentication Code (MAC) for the given key and value.
      Parameters:
        `key` - They key for the keyed digest (must not be null)
        `valueToDigest` - The value (data) which should to digest (maybe empty or null)
      Returns:
        HmacMD5 MAC for the given key and value
      Throws:
        `IllegalArgumentException` - when a `NoSuchAlgorithmException` is caught or key is null or key is invalid.

    - #### hmacMd5Hex

          public static String hmacMd5Hex(byte[] key,
                          byte[] valueToDigest)

      Returns a HmacMD5 Message Authentication Code (MAC) as a hex string (lowercase) for the given key and value.
      Parameters:
        `key` - They key for the keyed digest (must not be null)
        `valueToDigest` - The value (data) which should to digest (maybe empty or null)
      Returns:
        HmacMD5 MAC for the given key and value as a hex string (lowercase)
      Throws:
        `IllegalArgumentException` - when a `NoSuchAlgorithmException` is caught or key is null or key is invalid.

    - #### hmacMd5Hex

          public static String hmacMd5Hex(byte[] key,
                          InputStream valueToDigest)
                                   throws IOException

      Returns a HmacMD5 Message Authentication Code (MAC) as a hex string (lowercase) for the given key and value.
      Parameters:
        `key` - They key for the keyed digest (must not be null)
        `valueToDigest` - The value (data) which should to digest

        The InputStream must not be null and will not be closed

      Returns:
        HmacMD5 MAC for the given key and value as a hex string (lowercase)
      Throws:
        `IOException` - If an I/O error occurs.
        `IllegalArgumentException` - when a `NoSuchAlgorithmException` is caught or key is null or key is invalid.

    - #### hmacMd5Hex

          public static String hmacMd5Hex(String key,
                          String valueToDigest)

      Returns a HmacMD5 Message Authentication Code (MAC) as a hex string (lowercase) for the given key and value.
      Parameters:
        `key` - They key for the keyed digest (must not be null)
        `valueToDigest` - The value (data) which should to digest (maybe empty or null)
      Returns:
        HmacMD5 MAC for the given key and value as a hex string (lowercase)
      Throws:
        `IllegalArgumentException` - when a `NoSuchAlgorithmException` is caught or key is null or key is invalid.

    - #### hmacSha1

          public static byte[] hmacSha1(byte[] key,
                        byte[] valueToDigest)

      Returns a HmacSHA1 Message Authentication Code (MAC) for the given key and value.
      Parameters:
        `key` - They key for the keyed digest (must not be null)
        `valueToDigest` - The value (data) which should to digest (maybe empty or null)
      Returns:
        HmacSHA1 MAC for the given key and value
      Throws:
        `IllegalArgumentException` - when a `NoSuchAlgorithmException` is caught or key is null or key is invalid.

    - #### hmacSha1

          public static byte[] hmacSha1(byte[] key,
                        InputStream valueToDigest)
                                 throws IOException

      Returns a HmacSHA1 Message Authentication Code (MAC) for the given key and value.
      Parameters:
        `key` - They key for the keyed digest (must not be null)
        `valueToDigest` - The value (data) which should to digest

        The InputStream must not be null and will not be closed

      Returns:
        HmacSHA1 MAC for the given key and value
      Throws:
        `IOException` - If an I/O error occurs.
        `IllegalArgumentException` - when a `NoSuchAlgorithmException` is caught or key is null or key is invalid.

    - #### hmacSha1

          public static byte[] hmacSha1(String key,
                        String valueToDigest)

      Returns a HmacSHA1 Message Authentication Code (MAC) for the given key and value.
      Parameters:
        `key` - They key for the keyed digest (must not be null)
        `valueToDigest` - The value (data) which should to digest (maybe empty or null)
      Returns:
        HmacSHA1 MAC for the given key and value
      Throws:
        `IllegalArgumentException` - when a `NoSuchAlgorithmException` is caught or key is null or key is invalid.

    - #### hmacSha1Hex

          public static String hmacSha1Hex(byte[] key,
                           byte[] valueToDigest)

      Returns a HmacSHA1 Message Authentication Code (MAC) as hex string (lowercase) for the given key and value.
      Parameters:
        `key` - They key for the keyed digest (must not be null)
        `valueToDigest` - The value (data) which should to digest (maybe empty or null)
      Returns:
        HmacSHA1 MAC for the given key and value as hex string (lowercase)
      Throws:
        `IllegalArgumentException` - when a `NoSuchAlgorithmException` is caught or key is null or key is invalid.

    - #### hmacSha1Hex

          public static String hmacSha1Hex(byte[] key,
                           InputStream valueToDigest)
                                    throws IOException

      Returns a HmacSHA1 Message Authentication Code (MAC) as hex string (lowercase) for the given key and value.
      Parameters:
        `key` - They key for the keyed digest (must not be null)
        `valueToDigest` - The value (data) which should to digest

        The InputStream must not be null and will not be closed

      Returns:
        HmacSHA1 MAC for the given key and value as hex string (lowercase)
      Throws:
        `IOException` - If an I/O error occurs.
        `IllegalArgumentException` - when a `NoSuchAlgorithmException` is caught or key is null or key is invalid.

    - #### hmacSha1Hex

          public static String hmacSha1Hex(String key,
                           String valueToDigest)

      Returns a HmacSHA1 Message Authentication Code (MAC) as hex string (lowercase) for the given key and value.
      Parameters:
        `key` - They key for the keyed digest (must not be null)
        `valueToDigest` - The value (data) which should to digest (maybe empty or null)
      Returns:
        HmacSHA1 MAC for the given key and value as hex string (lowercase)
      Throws:
        `IllegalArgumentException` - when a `NoSuchAlgorithmException` is caught or key is null or key is invalid.

    - #### hmacSha256

          public static byte[] hmacSha256(byte[] key,
                          byte[] valueToDigest)

      Returns a HmacSHA256 Message Authentication Code (MAC) for the given key and value.
      Parameters:
        `key` - They key for the keyed digest (must not be null)
        `valueToDigest` - The value (data) which should to digest (maybe empty or null)
      Returns:
        HmacSHA256 MAC for the given key and value
      Throws:
        `IllegalArgumentException` - when a `NoSuchAlgorithmException` is caught or key is null or key is invalid.

    - #### hmacSha256

          public static byte[] hmacSha256(byte[] key,
                          InputStream valueToDigest)
                                   throws IOException

      Returns a HmacSHA256 Message Authentication Code (MAC) for the given key and value.
      Parameters:
        `key` - They key for the keyed digest (must not be null)
        `valueToDigest` - The value (data) which should to digest

        The InputStream must not be null and will not be closed

      Returns:
        HmacSHA256 MAC for the given key and value
      Throws:
        `IOException` - If an I/O error occurs. s * @throws IllegalArgumentException when a `NoSuchAlgorithmException` is caught or key is null or key is invalid.

    - #### hmacSha256

          public static byte[] hmacSha256(String key,
                          String valueToDigest)

      Returns a HmacSHA256 Message Authentication Code (MAC) for the given key and value.
      Parameters:
        `key` - They key for the keyed digest (must not be null)
        `valueToDigest` - The value (data) which should to digest (maybe empty or null)
      Returns:
        HmacSHA256 MAC for the given key and value
      Throws:
        `IllegalArgumentException` - when a `NoSuchAlgorithmException` is caught or key is null or key is invalid.

    - #### hmacSha256Hex

          public static String hmacSha256Hex(byte[] key,
                             byte[] valueToDigest)

      Returns a HmacSHA256 Message Authentication Code (MAC) as hex string (lowercase) for the given key and value.
      Parameters:
        `key` - They key for the keyed digest (must not be null)
        `valueToDigest` - The value (data) which should to digest (maybe empty or null)
      Returns:
        HmacSHA256 MAC for the given key and value as hex string (lowercase)
      Throws:
        `IllegalArgumentException` - when a `NoSuchAlgorithmException` is caught or key is null or key is invalid.

    - #### hmacSha256Hex

          public static String hmacSha256Hex(byte[] key,
                             InputStream valueToDigest)
                                      throws IOException

      Returns a HmacSHA256 Message Authentication Code (MAC) as hex string (lowercase) for the given key and value.
      Parameters:
        `key` - They key for the keyed digest (must not be null)
        `valueToDigest` - The value (data) which should to digest

        The InputStream must not be null and will not be closed

      Returns:
        HmacSHA256 MAC for the given key and value as hex string (lowercase)
      Throws:
        `IOException` - If an I/O error occurs.
        `IllegalArgumentException` - when a `NoSuchAlgorithmException` is caught or key is null or key is invalid.

    - #### hmacSha256Hex

          public static String hmacSha256Hex(String key,
                             String valueToDigest)

      Returns a HmacSHA256 Message Authentication Code (MAC) as hex string (lowercase) for the given key and value.
      Parameters:
        `key` - They key for the keyed digest (must not be null)
        `valueToDigest` - The value (data) which should to digest (maybe empty or null)
      Returns:
        HmacSHA256 MAC for the given key and value as hex string (lowercase)
      Throws:
        `IllegalArgumentException` - when a `NoSuchAlgorithmException` is caught or key is null or key is invalid.

    - #### hmacSha384

          public static byte[] hmacSha384(byte[] key,
                          byte[] valueToDigest)

      Returns a HmacSHA384 Message Authentication Code (MAC) for the given key and value.
      Parameters:
        `key` - They key for the keyed digest (must not be null)
        `valueToDigest` - The value (data) which should to digest (maybe empty or null)
      Returns:
        HmacSHA384 MAC for the given key and value
      Throws:
        `IllegalArgumentException` - when a `NoSuchAlgorithmException` is caught or key is null or key is invalid.

    - #### hmacSha384

          public static byte[] hmacSha384(byte[] key,
                          InputStream valueToDigest)
                                   throws IOException

      Returns a HmacSHA384 Message Authentication Code (MAC) for the given key and value.
      Parameters:
        `key` - They key for the keyed digest (must not be null)
        `valueToDigest` - The value (data) which should to digest

        The InputStream must not be null and will not be closed

      Returns:
        HmacSHA384 MAC for the given key and value
      Throws:
        `IOException` - If an I/O error occurs.
        `IllegalArgumentException` - when a `NoSuchAlgorithmException` is caught or key is null or key is invalid.

    - #### hmacSha384

          public static byte[] hmacSha384(String key,
                          String valueToDigest)

      Returns a HmacSHA384 Message Authentication Code (MAC) for the given key and value.
      Parameters:
        `key` - They key for the keyed digest (must not be null)
        `valueToDigest` - The value (data) which should to digest (maybe empty or null)
      Returns:
        HmacSHA384 MAC for the given key and value
      Throws:
        `IllegalArgumentException` - when a `NoSuchAlgorithmException` is caught or key is null or key is invalid.

    - #### hmacSha384Hex

          public static String hmacSha384Hex(byte[] key,
                             byte[] valueToDigest)

      Returns a HmacSHA384 Message Authentication Code (MAC) as hex string (lowercase) for the given key and value.
      Parameters:
        `key` - They key for the keyed digest (must not be null)
        `valueToDigest` - The value (data) which should to digest (maybe empty or null)
      Returns:
        HmacSHA384 MAC for the given key and value as hex string (lowercase)
      Throws:
        `IllegalArgumentException` - when a `NoSuchAlgorithmException` is caught or key is null or key is invalid.

    - #### hmacSha384Hex

          public static String hmacSha384Hex(byte[] key,
                             InputStream valueToDigest)
                                      throws IOException

      Returns a HmacSHA384 Message Authentication Code (MAC) as hex string (lowercase) for the given key and value.
      Parameters:
        `key` - They key for the keyed digest (must not be null)
        `valueToDigest` - The value (data) which should to digest

        The InputStream must not be null and will not be closed

      Returns:
        HmacSHA384 MAC for the given key and value as hex string (lowercase)
      Throws:
        `IOException` - If an I/O error occurs.
        `IllegalArgumentException` - when a `NoSuchAlgorithmException` is caught or key is null or key is invalid.

    - #### hmacSha384Hex

          public static String hmacSha384Hex(String key,
                             String valueToDigest)

      Returns a HmacSHA384 Message Authentication Code (MAC) as hex string (lowercase) for the given key and value.
      Parameters:
        `key` - They key for the keyed digest (must not be null)
        `valueToDigest` - The value (data) which should to digest (maybe empty or null)
      Returns:
        HmacSHA384 MAC for the given key and value as hex string (lowercase)
      Throws:
        `IllegalArgumentException` - when a `NoSuchAlgorithmException` is caught or key is null or key is invalid.

    - #### hmacSha512

          public static byte[] hmacSha512(byte[] key,
                          byte[] valueToDigest)

      Returns a HmacSHA512 Message Authentication Code (MAC) for the given key and value.
      Parameters:
        `key` - They key for the keyed digest (must not be null)
        `valueToDigest` - The value (data) which should to digest (maybe empty or null)
      Returns:
        HmacSHA512 MAC for the given key and value
      Throws:
        `IllegalArgumentException` - when a `NoSuchAlgorithmException` is caught or key is null or key is invalid.

    - #### hmacSha512

          public static byte[] hmacSha512(byte[] key,
                          InputStream valueToDigest)
                                   throws IOException

      Returns a HmacSHA512 Message Authentication Code (MAC) for the given key and value.
      Parameters:
        `key` - They key for the keyed digest (must not be null)
        `valueToDigest` - The value (data) which should to digest

        The InputStream must not be null and will not be closed

      Returns:
        HmacSHA512 MAC for the given key and value
      Throws:
        `IOException` - If an I/O error occurs.
        `IllegalArgumentException` - when a `NoSuchAlgorithmException` is caught or key is null or key is invalid.

    - #### hmacSha512

          public static byte[] hmacSha512(String key,
                          String valueToDigest)

      Returns a HmacSHA512 Message Authentication Code (MAC) for the given key and value.
      Parameters:
        `key` - They key for the keyed digest (must not be null)
        `valueToDigest` - The value (data) which should to digest (maybe empty or null)
      Returns:
        HmacSHA512 MAC for the given key and value
      Throws:
        `IllegalArgumentException` - when a `NoSuchAlgorithmException` is caught or key is null or key is invalid.

    - #### hmacSha512Hex

          public static String hmacSha512Hex(byte[] key,
                             byte[] valueToDigest)

      Returns a HmacSHA512 Message Authentication Code (MAC) as hex string (lowercase) for the given key and value.
      Parameters:
        `key` - They key for the keyed digest (must not be null)
        `valueToDigest` - The value (data) which should to digest (maybe empty or null)
      Returns:
        HmacSHA512 MAC for the given key and value as hex string (lowercase)
      Throws:
        `IllegalArgumentException` - when a `NoSuchAlgorithmException` is caught or key is null or key is invalid.

    - #### hmacSha512Hex

          public static String hmacSha512Hex(byte[] key,
                             InputStream valueToDigest)
                                      throws IOException

      Returns a HmacSHA512 Message Authentication Code (MAC) as hex string (lowercase) for the given key and value.
      Parameters:
        `key` - They key for the keyed digest (must not be null)
        `valueToDigest` - The value (data) which should to digest

        The InputStream must not be null and will not be closed

      Returns:
        HmacSHA512 MAC for the given key and value as hex string (lowercase)
      Throws:
        `IOException` - If an I/O error occurs.
        `IllegalArgumentException` - when a `NoSuchAlgorithmException` is caught or key is null or key is invalid.

    - #### hmacSha512Hex

          public static String hmacSha512Hex(String key,
                             String valueToDigest)

      Returns a HmacSHA512 Message Authentication Code (MAC) as hex string (lowercase) for the given key and value.
      Parameters:
        `key` - They key for the keyed digest (must not be null)
        `valueToDigest` - The value (data) which should to digest (maybe empty or null)
      Returns:
        HmacSHA512 MAC for the given key and value as hex string (lowercase)
      Throws:
        `IllegalArgumentException` - when a `NoSuchAlgorithmException` is caught or key is null or key is invalid.

    - #### updateHmac

          public static Mac updateHmac(Mac mac,
                       byte[] valueToDigest)

      Updates the given `Mac`. This generates a digest for valueToDigest and the key the Mac was initialized
      Parameters:
        `mac` - the initialized `Mac` to update
        `valueToDigest` - the value to update the `Mac` with (maybe null or empty)
      Returns:
        the updated `Mac`
      Throws:
        `IllegalStateException` - if the Mac was not initialized
      Since:
        1.x

    - #### updateHmac

          public static Mac updateHmac(Mac mac,
                       InputStream valueToDigest)
                                throws IOException

      Updates the given `Mac`. This generates a digest for valueToDigest and the key the Mac was initialized
      Parameters:
        `mac` - the initialized `Mac` to update
        `valueToDigest` - the value to update the `Mac` with

        The InputStream must not be null and will not be closed

      Returns:
        the updated `Mac`
      Throws:
        `IOException` - If an I/O error occurs.
        `IllegalStateException` - If the Mac was not initialized
      Since:
        1.x

    - #### updateHmac

          public static Mac updateHmac(Mac mac,
                       String valueToDigest)

      Updates the given `Mac`. This generates a digest for valueToDigest and the key the Mac was initialized
      Parameters:
        `mac` - the initialized `Mac` to update
        `valueToDigest` - the value to update the `Mac` with (maybe null or empty)
      Returns:
        the updated `Mac`
      Throws:
        `IllegalStateException` - if the Mac was not initialized
      Since:
        1.x

Copyright © 2002–2014 The Apache Software Foundation. All rights reserved.