org.apache.commons.codec.digest

Class HmacUtils


  • public final class HmacUtils
    extends Object
    Simplifies common Mac tasks. This class is immutable and thread-safe. However the Mac may not be.

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

    Sample usage:

     import static HmacAlgorithms.*;
     byte[] key = {1,2,3,4}; // don't use this actual key!
     String valueToDigest = "The quick brown fox jumps over the lazy dog";
     byte[] hmac = new HmacUtils(HMAC_SHA_224, key).hmac(valueToDigest);
     // Mac re-use
     HmacUtils hm1 = new HmacUtils("HmacAlgoName", key); // use a valid name here!
     String hexPom = hm1.hmacHex(new File("pom.xml"));
     String hexNot = hm1.hmacHex(new File("NOTICE.txt"));
     
    Since:
    1.10
    • Constructor Summary

      Constructors  
      Constructor and Description
      HmacUtils()
      Deprecated. 
      since 1.11; only useful to preserve binary compatibility
      HmacUtils(HmacAlgorithms algorithm, byte[] key)
      Creates an instance using the provided algorithm type.
      HmacUtils(HmacAlgorithms algorithm, String key)
      Creates an instance using the provided algorithm type.
      HmacUtils(String algorithm, byte[] key)
      Creates an instance using the provided algorithm type.
      HmacUtils(String algorithm, String key)
      Creates an instance using the provided algorithm type.
    • Method Summary

      All Methods  Static Methods  Instance Methods  Concrete Methods  Deprecated Methods 
      Modifier and Type Method and Description
      static Mac getHmacMd5(byte[] key)
      Deprecated. 
      (1.11) Use getInitializedMac(HmacAlgorithms.HMAC_MD5, byte[])
      static Mac getHmacSha1(byte[] key)
      Deprecated. 
      (1.11) Use getInitializedMac(HmacAlgorithms.HMAC_SHA_1, byte[])
      static Mac getHmacSha256(byte[] key)
      Deprecated. 
      (1.11) Use getInitializedMac(HmacAlgorithms.HMAC_SHA_256, byte[])
      static Mac getHmacSha384(byte[] key)
      Deprecated. 
      (1.11) Use getInitializedMac(HmacAlgorithms.HMAC_SHA_384, byte[])
      static Mac getHmacSha512(byte[] key)
      Deprecated. 
      (1.11) Use getInitializedMac(HmacAlgorithms.HMAC_SHA_512, byte[])
      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.
      byte[] hmac(byte[] valueToDigest)
      Returns the digest for the input data.
      byte[] hmac(ByteBuffer valueToDigest)
      Returns the digest for the input data.
      byte[] hmac(File valueToDigest)
      Returns the digest for the file.
      byte[] hmac(InputStream valueToDigest)
      Returns the digest for the stream.
      byte[] hmac(String valueToDigest)
      Returns the digest for the input data.
      String hmacHex(byte[] valueToDigest)
      Returns the digest for the input data.
      String hmacHex(ByteBuffer valueToDigest)
      Returns the digest for the input data.
      String hmacHex(File valueToDigest)
      Returns the digest for the file.
      String hmacHex(InputStream valueToDigest)
      Returns the digest for the stream.
      String hmacHex(String valueToDigest)
      Returns the digest for the input data.
      static byte[] hmacMd5(byte[] key, byte[] valueToDigest)
      Deprecated. 
      (1.11) Use new HmacUtils(HmacAlgorithms.HMAC_MD5, byte[]).hmac(byte[])
      static byte[] hmacMd5(byte[] key, InputStream valueToDigest)
      Deprecated. 
      (1.11) Use new HmacUtils(HmacAlgorithms.HMAC_MD5, byte[]).hmac(InputStream)
      static byte[] hmacMd5(String key, String valueToDigest)
      Deprecated. 
      (1.11) Use new HmacUtils(HmacAlgorithms.HMAC_MD5, String).hmac(String)
      static String hmacMd5Hex(byte[] key, byte[] valueToDigest)
      Deprecated. 
      (1.11) Use new HmacUtils(HmacAlgorithms.HMAC_MD5, byte[]).hmacHex(byte[])
      static String hmacMd5Hex(byte[] key, InputStream valueToDigest)
      Deprecated. 
      (1.11) Use new HmacUtils(HmacAlgorithms.HMAC_MD5, byte[]).hmacHex(InputStream)
      static String hmacMd5Hex(String key, String valueToDigest)
      Deprecated. 
      (1.11) Use new HmacUtils(HmacAlgorithms.HMAC_MD5, String).hmacHex(String)
      static byte[] hmacSha1(byte[] key, byte[] valueToDigest)
      Deprecated. 
      (1.11) Use new HmacUtils(HmacAlgorithms.HMAC_SHA_1, byte[]).hmac(byte[])
      static byte[] hmacSha1(byte[] key, InputStream valueToDigest)
      Deprecated. 
      (1.11) Use new HmacUtils(HmacAlgorithms.HMAC_SHA_1, byte[]).hmac(InputStream)
      static byte[] hmacSha1(String key, String valueToDigest)
      Deprecated. 
      (1.11) Use new HmacUtils(HmacAlgorithms.HMAC_SHA_1, String).hmac(String)
      static String hmacSha1Hex(byte[] key, byte[] valueToDigest)
      Deprecated. 
      (1.11) Use new HmacUtils(HmacAlgorithms.HMAC_SHA_1, byte[]).hmacHex(byte[])
      static String hmacSha1Hex(byte[] key, InputStream valueToDigest)
      Deprecated. 
      (1.11) Use new HmacUtils(HmacAlgorithms.HMAC_SHA_1, byte[]).hmacHex(InputStream)
      static String hmacSha1Hex(String key, String valueToDigest)
      Deprecated. 
      (1.11) Use new HmacUtils(HmacAlgorithms.HMAC_SHA_1, String).hmacHex(String)
      static byte[] hmacSha256(byte[] key, byte[] valueToDigest)
      Deprecated. 
      (1.11) Use new HmacUtils(HmacAlgorithms.HMAC_SHA_256, byte[]).hmac(byte[])
      static byte[] hmacSha256(byte[] key, InputStream valueToDigest)
      Deprecated. 
      (1.11) Use new HmacUtils(HmacAlgorithms.HMAC_SHA_256, byte[]).hmac(InputStream)
      static byte[] hmacSha256(String key, String valueToDigest)
      Deprecated. 
      (1.11) Use new HmacUtils(HmacAlgorithms.HMAC_SHA_256, String).hmac(String)
      static String hmacSha256Hex(byte[] key, byte[] valueToDigest)
      Deprecated. 
      (1.11) Use new HmacUtils(HmacAlgorithms.HMAC_SHA_256, byte[]).hmacHex(byte[])
      static String hmacSha256Hex(byte[] key, InputStream valueToDigest)
      Deprecated. 
      (1.11) Use new HmacUtils(HmacAlgorithms.HMAC_SHA_256, byte[]).hmacHex(InputStream)
      static String hmacSha256Hex(String key, String valueToDigest)
      Deprecated. 
      (1.11) Use new HmacUtils(HmacAlgorithms.HMAC_SHA_256, String).hmacHex(String)
      static byte[] hmacSha384(byte[] key, byte[] valueToDigest)
      Deprecated. 
      (1.11) Use new HmacUtils(HmacAlgorithms.HMAC_SHA_384, byte[]).hmac(byte[])
      static byte[] hmacSha384(byte[] key, InputStream valueToDigest)
      Deprecated. 
      (1.11) Use new HmacUtils(HmacAlgorithms.HMAC_SHA_384, byte[]).hmac(InputStream)
      static byte[] hmacSha384(String key, String valueToDigest)
      Deprecated. 
      (1.11) Use new HmacUtils(HmacAlgorithms.HMAC_SHA_384, String).hmac(String)
      static String hmacSha384Hex(byte[] key, byte[] valueToDigest)
      Deprecated. 
      (1.11) Use new HmacUtils(HmacAlgorithms.HMAC_SHA_384, byte[]).hmacHex(byte[])
      static String hmacSha384Hex(byte[] key, InputStream valueToDigest)
      Deprecated. 
      (1.11) Use new HmacUtils(HmacAlgorithms.HMAC_SHA_384, byte[]).hmacHex(InputStream)
      static String hmacSha384Hex(String key, String valueToDigest)
      Deprecated. 
      (1.11) Use new HmacUtils(HmacAlgorithms.HMAC_SHA_384, String).hmacHex(String)
      static byte[] hmacSha512(byte[] key, byte[] valueToDigest)
      Deprecated. 
      (1.11) Use new HmacUtils(HmacAlgorithms.HMAC_SHA_512, byte[]).hmac(byte[])
      static byte[] hmacSha512(byte[] key, InputStream valueToDigest)
      Deprecated. 
      (1.11) Use new HmacUtils(HmacAlgorithms.HMAC_SHA_512, byte[]).hmac(InputStream)
      static byte[] hmacSha512(String key, String valueToDigest)
      Deprecated. 
      (1.11) Use new HmacUtils(HmacAlgorithms.HMAC_SHA_512, String).hmac(String)
      static String hmacSha512Hex(byte[] key, byte[] valueToDigest)
      Deprecated. 
      (1.11) Use new HmacUtils(HmacAlgorithms.HMAC_SHA_512, byte[]).hmacHex(byte[])
      static String hmacSha512Hex(byte[] key, InputStream valueToDigest)
      Deprecated. 
      (1.11) Use new HmacUtils(HmacAlgorithms.HMAC_SHA_512, byte[]).hmacHex(InputStream)
      static String hmacSha512Hex(String key, String valueToDigest)
      Deprecated. 
      (1.11) Use new HmacUtils(HmacAlgorithms.HMAC_SHA_512, String).hmacHex(String)
      static boolean isAvailable(HmacAlgorithms name)
      Returns whether this algorithm is available
      static boolean isAvailable(String name)
      Returns whether this algorithm is available
      static Mac updateHmac(Mac mac, byte[] valueToDigest)
      Resets and then updates the given Mac with the value.
      static Mac updateHmac(Mac mac, InputStream valueToDigest)
      Resets and then updates the given Mac with the value.
      static Mac updateHmac(Mac mac, String valueToDigest)
      Resets and then updates the given Mac with the value.
    • Constructor Detail

      • HmacUtils

        @Deprecated
        public HmacUtils()
        Deprecated.  since 1.11; only useful to preserve binary compatibility
        Preserves binary compatibility only. As for previous versions does not provide useful behavior
      • HmacUtils

        public HmacUtils(String algorithm,
                         byte[] key)
        Creates an instance using the provided algorithm type.
        Parameters:
        algorithm - to use
        key - the key to use
        Throws:
        IllegalArgumentException - when a NoSuchAlgorithmException is caught or key is null or key is invalid.
        Since:
        1.11
    • Method Detail

      • isAvailable

        public static boolean isAvailable(String name)
        Returns whether this algorithm is available
        Parameters:
        name - the name to check
        Returns:
        whether this algorithm is available
        Since:
        1.11
      • isAvailable

        public static boolean isAvailable(HmacAlgorithms name)
        Returns whether this algorithm is available
        Parameters:
        name - the name to check
        Returns:
        whether this algorithm is available
        Since:
        1.11
      • getHmacMd5

        @Deprecated
        public static Mac getHmacMd5(byte[] key)
        Deprecated.  (1.11) Use getInitializedMac(HmacAlgorithms.HMAC_MD5, byte[])
        Returns an initialized Mac for the HmacMD5 algorithm.

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

        Parameters:
        key - The 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

        @Deprecated
        public static Mac getHmacSha1(byte[] key)
        Deprecated.  (1.11) Use getInitializedMac(HmacAlgorithms.HMAC_SHA_1, byte[])
        Returns an initialized Mac for the HmacSHA1 algorithm.

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

        Parameters:
        key - The 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

        @Deprecated
        public static Mac getHmacSha256(byte[] key)
        Deprecated.  (1.11) Use getInitializedMac(HmacAlgorithms.HMAC_SHA_256, byte[])
        Returns an initialized Mac for the HmacSHA256 algorithm.

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

        Parameters:
        key - The 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

        @Deprecated
        public static Mac getHmacSha384(byte[] key)
        Deprecated.  (1.11) Use getInitializedMac(HmacAlgorithms.HMAC_SHA_384, byte[])
        Returns an initialized Mac for the HmacSHA384 algorithm.

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

        Parameters:
        key - The 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

        @Deprecated
        public static Mac getHmacSha512(byte[] key)
        Deprecated.  (1.11) Use getInitializedMac(HmacAlgorithms.HMAC_SHA_512, byte[])
        Returns an initialized Mac for the HmacSHA512 algorithm.

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

        Parameters:
        key - The 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

        @Deprecated
        public static byte[] hmacMd5(byte[] key,
                                                 byte[] valueToDigest)
        Deprecated.  (1.11) Use new HmacUtils(HmacAlgorithms.HMAC_MD5, byte[]).hmac(byte[])
        Returns a HmacMD5 Message Authentication Code (MAC) for the given key and value.
        Parameters:
        key - The 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

        @Deprecated
        public static byte[] hmacMd5(byte[] key,
                                                 InputStream valueToDigest)
                                          throws IOException
        Deprecated.  (1.11) Use new HmacUtils(HmacAlgorithms.HMAC_MD5, byte[]).hmac(InputStream)
        Returns a HmacMD5 Message Authentication Code (MAC) for the given key and value.
        Parameters:
        key - The 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

        @Deprecated
        public static byte[] hmacMd5(String key,
                                                 String valueToDigest)
        Deprecated.  (1.11) Use new HmacUtils(HmacAlgorithms.HMAC_MD5, String).hmac(String)
        Returns a HmacMD5 Message Authentication Code (MAC) for the given key and value.
        Parameters:
        key - The 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

        @Deprecated
        public static String hmacMd5Hex(byte[] key,
                                                    byte[] valueToDigest)
        Deprecated.  (1.11) Use new HmacUtils(HmacAlgorithms.HMAC_MD5, byte[]).hmacHex(byte[])
        Returns a HmacMD5 Message Authentication Code (MAC) as a hex string (lowercase) for the given key and value.
        Parameters:
        key - The 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

        @Deprecated
        public static String hmacMd5Hex(byte[] key,
                                                    InputStream valueToDigest)
                                             throws IOException
        Deprecated.  (1.11) Use new HmacUtils(HmacAlgorithms.HMAC_MD5, byte[]).hmacHex(InputStream)
        Returns a HmacMD5 Message Authentication Code (MAC) as a hex string (lowercase) for the given key and value.
        Parameters:
        key - The 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

        @Deprecated
        public static String hmacMd5Hex(String key,
                                                    String valueToDigest)
        Deprecated.  (1.11) Use new HmacUtils(HmacAlgorithms.HMAC_MD5, String).hmacHex(String)
        Returns a HmacMD5 Message Authentication Code (MAC) as a hex string (lowercase) for the given key and value.
        Parameters:
        key - The 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

        @Deprecated
        public static byte[] hmacSha1(byte[] key,
                                                  byte[] valueToDigest)
        Deprecated.  (1.11) Use new HmacUtils(HmacAlgorithms.HMAC_SHA_1, byte[]).hmac(byte[])
        Returns a HmacSHA1 Message Authentication Code (MAC) for the given key and value.
        Parameters:
        key - The 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

        @Deprecated
        public static byte[] hmacSha1(byte[] key,
                                                  InputStream valueToDigest)
                                           throws IOException
        Deprecated.  (1.11) Use new HmacUtils(HmacAlgorithms.HMAC_SHA_1, byte[]).hmac(InputStream)
        Returns a HmacSHA1 Message Authentication Code (MAC) for the given key and value.
        Parameters:
        key - The 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

        @Deprecated
        public static byte[] hmacSha1(String key,
                                                  String valueToDigest)
        Deprecated.  (1.11) Use new HmacUtils(HmacAlgorithms.HMAC_SHA_1, String).hmac(String)
        Returns a HmacSHA1 Message Authentication Code (MAC) for the given key and value.
        Parameters:
        key - The 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

        @Deprecated
        public static String hmacSha1Hex(byte[] key,
                                                     byte[] valueToDigest)
        Deprecated.  (1.11) Use new HmacUtils(HmacAlgorithms.HMAC_SHA_1, byte[]).hmacHex(byte[])
        Returns a HmacSHA1 Message Authentication Code (MAC) as hex string (lowercase) for the given key and value.
        Parameters:
        key - The 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

        @Deprecated
        public static String hmacSha1Hex(byte[] key,
                                                     InputStream valueToDigest)
                                              throws IOException
        Deprecated.  (1.11) Use new HmacUtils(HmacAlgorithms.HMAC_SHA_1, byte[]).hmacHex(InputStream)
        Returns a HmacSHA1 Message Authentication Code (MAC) as hex string (lowercase) for the given key and value.
        Parameters:
        key - The 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

        @Deprecated
        public static String hmacSha1Hex(String key,
                                                     String valueToDigest)
        Deprecated.  (1.11) Use new HmacUtils(HmacAlgorithms.HMAC_SHA_1, String).hmacHex(String)
        Returns a HmacSHA1 Message Authentication Code (MAC) as hex string (lowercase) for the given key and value.
        Parameters:
        key - The 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

        @Deprecated
        public static byte[] hmacSha256(byte[] key,
                                                    byte[] valueToDigest)
        Deprecated.  (1.11) Use new HmacUtils(HmacAlgorithms.HMAC_SHA_256, byte[]).hmac(byte[])
        Returns a HmacSHA256 Message Authentication Code (MAC) for the given key and value.
        Parameters:
        key - The 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

        @Deprecated
        public static byte[] hmacSha256(byte[] key,
                                                    InputStream valueToDigest)
                                             throws IOException
        Deprecated.  (1.11) Use new HmacUtils(HmacAlgorithms.HMAC_SHA_256, byte[]).hmac(InputStream)
        Returns a HmacSHA256 Message Authentication Code (MAC) for the given key and value.
        Parameters:
        key - The 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.
        IllegalArgumentException - when a NoSuchAlgorithmException is caught or key is null or key is invalid.
      • hmacSha256

        @Deprecated
        public static byte[] hmacSha256(String key,
                                                    String valueToDigest)
        Deprecated.  (1.11) Use new HmacUtils(HmacAlgorithms.HMAC_SHA_256, String).hmac(String)
        Returns a HmacSHA256 Message Authentication Code (MAC) for the given key and value.
        Parameters:
        key - The 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

        @Deprecated
        public static String hmacSha256Hex(byte[] key,
                                                       byte[] valueToDigest)
        Deprecated.  (1.11) Use new HmacUtils(HmacAlgorithms.HMAC_SHA_256, byte[]).hmacHex(byte[])
        Returns a HmacSHA256 Message Authentication Code (MAC) as hex string (lowercase) for the given key and value.
        Parameters:
        key - The 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

        @Deprecated
        public static String hmacSha256Hex(byte[] key,
                                                       InputStream valueToDigest)
                                                throws IOException
        Deprecated.  (1.11) Use new HmacUtils(HmacAlgorithms.HMAC_SHA_256, byte[]).hmacHex(InputStream)
        Returns a HmacSHA256 Message Authentication Code (MAC) as hex string (lowercase) for the given key and value.
        Parameters:
        key - The 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

        @Deprecated
        public static String hmacSha256Hex(String key,
                                                       String valueToDigest)
        Deprecated.  (1.11) Use new HmacUtils(HmacAlgorithms.HMAC_SHA_256, String).hmacHex(String)
        Returns a HmacSHA256 Message Authentication Code (MAC) as hex string (lowercase) for the given key and value.
        Parameters:
        key - The 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

        @Deprecated
        public static byte[] hmacSha384(byte[] key,
                                                    byte[] valueToDigest)
        Deprecated.  (1.11) Use new HmacUtils(HmacAlgorithms.HMAC_SHA_384, byte[]).hmac(byte[])
        Returns a HmacSHA384 Message Authentication Code (MAC) for the given key and value.
        Parameters:
        key - The 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

        @Deprecated
        public static byte[] hmacSha384(byte[] key,
                                                    InputStream valueToDigest)
                                             throws IOException
        Deprecated.  (1.11) Use new HmacUtils(HmacAlgorithms.HMAC_SHA_384, byte[]).hmac(InputStream)
        Returns a HmacSHA384 Message Authentication Code (MAC) for the given key and value.
        Parameters:
        key - The 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

        @Deprecated
        public static byte[] hmacSha384(String key,
                                                    String valueToDigest)
        Deprecated.  (1.11) Use new HmacUtils(HmacAlgorithms.HMAC_SHA_384, String).hmac(String)
        Returns a HmacSHA384 Message Authentication Code (MAC) for the given key and value.
        Parameters:
        key - The 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

        @Deprecated
        public static String hmacSha384Hex(byte[] key,
                                                       byte[] valueToDigest)
        Deprecated.  (1.11) Use new HmacUtils(HmacAlgorithms.HMAC_SHA_384, byte[]).hmacHex(byte[])
        Returns a HmacSHA384 Message Authentication Code (MAC) as hex string (lowercase) for the given key and value.
        Parameters:
        key - The 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

        @Deprecated
        public static String hmacSha384Hex(byte[] key,
                                                       InputStream valueToDigest)
                                                throws IOException
        Deprecated.  (1.11) Use new HmacUtils(HmacAlgorithms.HMAC_SHA_384, byte[]).hmacHex(InputStream)
        Returns a HmacSHA384 Message Authentication Code (MAC) as hex string (lowercase) for the given key and value.
        Parameters:
        key - The 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

        @Deprecated
        public static String hmacSha384Hex(String key,
                                                       String valueToDigest)
        Deprecated.  (1.11) Use new HmacUtils(HmacAlgorithms.HMAC_SHA_384, String).hmacHex(String)
        Returns a HmacSHA384 Message Authentication Code (MAC) as hex string (lowercase) for the given key and value.
        Parameters:
        key - The 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

        @Deprecated
        public static byte[] hmacSha512(byte[] key,
                                                    byte[] valueToDigest)
        Deprecated.  (1.11) Use new HmacUtils(HmacAlgorithms.HMAC_SHA_512, byte[]).hmac(byte[])
        Returns a HmacSHA512 Message Authentication Code (MAC) for the given key and value.
        Parameters:
        key - The 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

        @Deprecated
        public static byte[] hmacSha512(byte[] key,
                                                    InputStream valueToDigest)
                                             throws IOException
        Deprecated.  (1.11) Use new HmacUtils(HmacAlgorithms.HMAC_SHA_512, byte[]).hmac(InputStream)
        Returns a HmacSHA512 Message Authentication Code (MAC) for the given key and value.
        Parameters:
        key - The 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

        @Deprecated
        public static byte[] hmacSha512(String key,
                                                    String valueToDigest)
        Deprecated.  (1.11) Use new HmacUtils(HmacAlgorithms.HMAC_SHA_512, String).hmac(String)
        Returns a HmacSHA512 Message Authentication Code (MAC) for the given key and value.
        Parameters:
        key - The 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

        @Deprecated
        public static String hmacSha512Hex(byte[] key,
                                                       byte[] valueToDigest)
        Deprecated.  (1.11) Use new HmacUtils(HmacAlgorithms.HMAC_SHA_512, byte[]).hmacHex(byte[])
        Returns a HmacSHA512 Message Authentication Code (MAC) as hex string (lowercase) for the given key and value.
        Parameters:
        key - The 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

        @Deprecated
        public static String hmacSha512Hex(byte[] key,
                                                       InputStream valueToDigest)
                                                throws IOException
        Deprecated.  (1.11) Use new HmacUtils(HmacAlgorithms.HMAC_SHA_512, byte[]).hmacHex(InputStream)
        Returns a HmacSHA512 Message Authentication Code (MAC) as hex string (lowercase) for the given key and value.
        Parameters:
        key - The 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

        @Deprecated
        public static String hmacSha512Hex(String key,
                                                       String valueToDigest)
        Deprecated.  (1.11) Use new HmacUtils(HmacAlgorithms.HMAC_SHA_512, String).hmacHex(String)
        Returns a HmacSHA512 Message Authentication Code (MAC) as hex string (lowercase) for the given key and value.
        Parameters:
        key - The 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)
        Resets and then updates the given Mac with the value.
        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
      • updateHmac

        public static Mac updateHmac(Mac mac,
                                     InputStream valueToDigest)
                              throws IOException
        Resets and then updates the given Mac with the value.
        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
      • updateHmac

        public static Mac updateHmac(Mac mac,
                                     String valueToDigest)
        Resets and then updates the given Mac with the value.
        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
      • hmac

        public byte[] hmac(byte[] valueToDigest)
        Returns the digest for the input data.
        Parameters:
        valueToDigest - the input to use
        Returns:
        the digest as a byte[]
        Since:
        1.11
      • hmacHex

        public String hmacHex(byte[] valueToDigest)
        Returns the digest for the input data.
        Parameters:
        valueToDigest - the input to use
        Returns:
        the digest as a hex String
        Since:
        1.11
      • hmac

        public byte[] hmac(String valueToDigest)
        Returns the digest for the input data.
        Parameters:
        valueToDigest - the input to use, treated as UTF-8
        Returns:
        the digest as a byte[]
        Since:
        1.11
      • hmacHex

        public String hmacHex(String valueToDigest)
        Returns the digest for the input data.
        Parameters:
        valueToDigest - the input to use, treated as UTF-8
        Returns:
        the digest as a hex String
        Since:
        1.11
      • hmac

        public byte[] hmac(ByteBuffer valueToDigest)
        Returns the digest for the input data.
        Parameters:
        valueToDigest - the input to use
        Returns:
        the digest as a byte[]
        Since:
        1.11
      • hmacHex

        public String hmacHex(ByteBuffer valueToDigest)
        Returns the digest for the input data.
        Parameters:
        valueToDigest - the input to use
        Returns:
        the digest as a hex String
        Since:
        1.11
      • hmac

        public byte[] hmac(InputStream valueToDigest)
                    throws IOException
        Returns the digest for the stream.
        Parameters:
        valueToDigest - the data to use

        The InputStream must not be null and will not be closed

        Returns:
        the digest
        Throws:
        IOException - If an I/O error occurs.
        Since:
        1.11
      • hmacHex

        public String hmacHex(InputStream valueToDigest)
                       throws IOException
        Returns the digest for the stream.
        Parameters:
        valueToDigest - the data to use

        The InputStream must not be null and will not be closed

        Returns:
        the digest as a hex String
        Throws:
        IOException - If an I/O error occurs.
        Since:
        1.11
      • hmac

        public byte[] hmac(File valueToDigest)
                    throws IOException
        Returns the digest for the file.
        Parameters:
        valueToDigest - the file to use
        Returns:
        the digest
        Throws:
        IOException - If an I/O error occurs.
        Since:
        1.11
      • hmacHex

        public String hmacHex(File valueToDigest)
                       throws IOException
        Returns the digest for the file.
        Parameters:
        valueToDigest - the file to use
        Returns:
        the digest as a hex String
        Throws:
        IOException - If an I/O error occurs.
        Since:
        1.11

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