Class HmacUtils


  • public final class HmacUtils
    extends java.lang.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 Description
      HmacUtils()
      Deprecated.
      since 1.11; only useful to preserve binary compatibility
      HmacUtils​(java.lang.String algorithm, byte[] key)
      Creates an instance using the provided algorithm type.
      HmacUtils​(java.lang.String algorithm, java.lang.String key)
      Creates an instance using the provided algorithm type.
      HmacUtils​(HmacAlgorithms algorithm, byte[] key)
      Creates an instance using the provided algorithm type.
      HmacUtils​(HmacAlgorithms algorithm, java.lang.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 Description
      static javax.crypto.Mac getHmacMd5​(byte[] key)
      Deprecated.
      (1.11) Use getInitializedMac(HmacAlgorithms.HMAC_MD5, byte[])
      static javax.crypto.Mac getHmacSha1​(byte[] key)
      Deprecated.
      (1.11) Use getInitializedMac(HmacAlgorithms.HMAC_SHA_1, byte[])
      static javax.crypto.Mac getHmacSha256​(byte[] key)
      Deprecated.
      (1.11) Use getInitializedMac(HmacAlgorithms.HMAC_SHA_256, byte[])
      static javax.crypto.Mac getHmacSha384​(byte[] key)
      Deprecated.
      (1.11) Use getInitializedMac(HmacAlgorithms.HMAC_SHA_384, byte[])
      static javax.crypto.Mac getHmacSha512​(byte[] key)
      Deprecated.
      (1.11) Use getInitializedMac(HmacAlgorithms.HMAC_SHA_512, byte[])
      static javax.crypto.Mac getInitializedMac​(java.lang.String algorithm, byte[] key)
      Returns an initialized Mac for the given algorithm.
      static javax.crypto.Mac getInitializedMac​(HmacAlgorithms algorithm, byte[] key)
      Returns an initialized Mac for the given algorithm.
      byte[] hmac​(byte[] valueToDigest)
      Returns the digest for the input data.
      byte[] hmac​(java.io.File valueToDigest)
      Returns the digest for the file.
      byte[] hmac​(java.io.InputStream valueToDigest)
      Returns the digest for the stream.
      byte[] hmac​(java.lang.String valueToDigest)
      Returns the digest for the input data.
      byte[] hmac​(java.nio.ByteBuffer valueToDigest)
      Returns the digest for the input data.
      java.lang.String hmacHex​(byte[] valueToDigest)
      Returns the digest for the input data.
      java.lang.String hmacHex​(java.io.File valueToDigest)
      Returns the digest for the file.
      java.lang.String hmacHex​(java.io.InputStream valueToDigest)
      Returns the digest for the stream.
      java.lang.String hmacHex​(java.lang.String valueToDigest)
      Returns the digest for the input data.
      java.lang.String hmacHex​(java.nio.ByteBuffer 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, java.io.InputStream valueToDigest)
      Deprecated.
      (1.11) Use new HmacUtils(HmacAlgorithms.HMAC_MD5, byte[]).hmac(InputStream)
      static byte[] hmacMd5​(java.lang.String key, java.lang.String valueToDigest)
      Deprecated.
      (1.11) Use new HmacUtils(HmacAlgorithms.HMAC_MD5, String).hmac(String)
      static java.lang.String hmacMd5Hex​(byte[] key, byte[] valueToDigest)
      Deprecated.
      (1.11) Use new HmacUtils(HmacAlgorithms.HMAC_MD5, byte[]).hmacHex(byte[])
      static java.lang.String hmacMd5Hex​(byte[] key, java.io.InputStream valueToDigest)
      Deprecated.
      (1.11) Use new HmacUtils(HmacAlgorithms.HMAC_MD5, byte[]).hmacHex(InputStream)
      static java.lang.String hmacMd5Hex​(java.lang.String key, java.lang.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, java.io.InputStream valueToDigest)
      Deprecated.
      (1.11) Use new HmacUtils(HmacAlgorithms.HMAC_SHA_1, byte[]).hmac(InputStream)
      static byte[] hmacSha1​(java.lang.String key, java.lang.String valueToDigest)
      Deprecated.
      (1.11) Use new HmacUtils(HmacAlgorithms.HMAC_SHA_1, String).hmac(String)
      static java.lang.String hmacSha1Hex​(byte[] key, byte[] valueToDigest)
      Deprecated.
      (1.11) Use new HmacUtils(HmacAlgorithms.HMAC_SHA_1, byte[]).hmacHex(byte[])
      static java.lang.String hmacSha1Hex​(byte[] key, java.io.InputStream valueToDigest)
      Deprecated.
      (1.11) Use new HmacUtils(HmacAlgorithms.HMAC_SHA_1, byte[]).hmacHex(InputStream)
      static java.lang.String hmacSha1Hex​(java.lang.String key, java.lang.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, java.io.InputStream valueToDigest)
      Deprecated.
      (1.11) Use new HmacUtils(HmacAlgorithms.HMAC_SHA_256, byte[]).hmac(InputStream)
      static byte[] hmacSha256​(java.lang.String key, java.lang.String valueToDigest)
      Deprecated.
      (1.11) Use new HmacUtils(HmacAlgorithms.HMAC_SHA_256, String).hmac(String)
      static java.lang.String hmacSha256Hex​(byte[] key, byte[] valueToDigest)
      Deprecated.
      (1.11) Use new HmacUtils(HmacAlgorithms.HMAC_SHA_256, byte[]).hmacHex(byte[])
      static java.lang.String hmacSha256Hex​(byte[] key, java.io.InputStream valueToDigest)
      Deprecated.
      (1.11) Use new HmacUtils(HmacAlgorithms.HMAC_SHA_256, byte[]).hmacHex(InputStream)
      static java.lang.String hmacSha256Hex​(java.lang.String key, java.lang.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, java.io.InputStream valueToDigest)
      Deprecated.
      (1.11) Use new HmacUtils(HmacAlgorithms.HMAC_SHA_384, byte[]).hmac(InputStream)
      static byte[] hmacSha384​(java.lang.String key, java.lang.String valueToDigest)
      Deprecated.
      (1.11) Use new HmacUtils(HmacAlgorithms.HMAC_SHA_384, String).hmac(String)
      static java.lang.String hmacSha384Hex​(byte[] key, byte[] valueToDigest)
      Deprecated.
      (1.11) Use new HmacUtils(HmacAlgorithms.HMAC_SHA_384, byte[]).hmacHex(byte[])
      static java.lang.String hmacSha384Hex​(byte[] key, java.io.InputStream valueToDigest)
      Deprecated.
      (1.11) Use new HmacUtils(HmacAlgorithms.HMAC_SHA_384, byte[]).hmacHex(InputStream)
      static java.lang.String hmacSha384Hex​(java.lang.String key, java.lang.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, java.io.InputStream valueToDigest)
      Deprecated.
      (1.11) Use new HmacUtils(HmacAlgorithms.HMAC_SHA_512, byte[]).hmac(InputStream)
      static byte[] hmacSha512​(java.lang.String key, java.lang.String valueToDigest)
      Deprecated.
      (1.11) Use new HmacUtils(HmacAlgorithms.HMAC_SHA_512, String).hmac(String)
      static java.lang.String hmacSha512Hex​(byte[] key, byte[] valueToDigest)
      Deprecated.
      (1.11) Use new HmacUtils(HmacAlgorithms.HMAC_SHA_512, byte[]).hmacHex(byte[])
      static java.lang.String hmacSha512Hex​(byte[] key, java.io.InputStream valueToDigest)
      Deprecated.
      (1.11) Use new HmacUtils(HmacAlgorithms.HMAC_SHA_512, byte[]).hmacHex(InputStream)
      static java.lang.String hmacSha512Hex​(java.lang.String key, java.lang.String valueToDigest)
      Deprecated.
      (1.11) Use new HmacUtils(HmacAlgorithms.HMAC_SHA_512, String).hmacHex(String)
      static boolean isAvailable​(java.lang.String name)
      Returns whether this algorithm is available
      static boolean isAvailable​(HmacAlgorithms name)
      Returns whether this algorithm is available
      static javax.crypto.Mac updateHmac​(javax.crypto.Mac mac, byte[] valueToDigest)
      Resets and then updates the given Mac with the value.
      static javax.crypto.Mac updateHmac​(javax.crypto.Mac mac, java.io.InputStream valueToDigest)
      Resets and then updates the given Mac with the value.
      static javax.crypto.Mac updateHmac​(javax.crypto.Mac mac, java.lang.String valueToDigest)
      Resets and then updates the given Mac with the value.
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • 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​(java.lang.String algorithm,
                         byte[] key)
        Creates an instance using the provided algorithm type.
        Parameters:
        algorithm - to use
        key - the key to use
        Throws:
        java.lang.IllegalArgumentException - when a NoSuchAlgorithmException is caught or key is null or key is invalid.
        Since:
        1.11
      • HmacUtils

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

        public HmacUtils​(HmacAlgorithms algorithm,
                         java.lang.String key)
        Creates an instance using the provided algorithm type.
        Parameters:
        algorithm - to use
        key - the key to use
        Throws:
        java.lang.IllegalArgumentException - when a NoSuchAlgorithmException is caught or key is null or key is invalid.
        Since:
        1.11
      • HmacUtils

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

      • isAvailable

        public static boolean isAvailable​(java.lang.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 javax.crypto.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:
        java.lang.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 javax.crypto.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:
        java.lang.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 javax.crypto.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:
        java.lang.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 javax.crypto.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:
        java.lang.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 javax.crypto.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:
        java.lang.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 javax.crypto.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 - The key for the keyed digest (must not be null)
        Returns:
        A Mac instance initialized with the given key.
        Throws:
        java.lang.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 javax.crypto.Mac getInitializedMac​(java.lang.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 - The key for the keyed digest (must not be null)
        Returns:
        A Mac instance initialized with the given key.
        Throws:
        java.lang.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:
        java.lang.IllegalArgumentException - when a NoSuchAlgorithmException is caught or key is null or key is invalid.
      • hmacMd5

        @Deprecated
        public static byte[] hmacMd5​(byte[] key,
                                     java.io.InputStream valueToDigest)
                              throws java.io.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:
        java.io.IOException - If an I/O error occurs.
        java.lang.IllegalArgumentException - when a NoSuchAlgorithmException is caught or key is null or key is invalid.
      • hmacMd5

        @Deprecated
        public static byte[] hmacMd5​(java.lang.String key,
                                     java.lang.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:
        java.lang.IllegalArgumentException - when a NoSuchAlgorithmException is caught or key is null or key is invalid.
      • hmacMd5Hex

        @Deprecated
        public static java.lang.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:
        java.lang.IllegalArgumentException - when a NoSuchAlgorithmException is caught or key is null or key is invalid.
      • hmacMd5Hex

        @Deprecated
        public static java.lang.String hmacMd5Hex​(byte[] key,
                                                  java.io.InputStream valueToDigest)
                                           throws java.io.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:
        java.io.IOException - If an I/O error occurs.
        java.lang.IllegalArgumentException - when a NoSuchAlgorithmException is caught or key is null or key is invalid.
      • hmacMd5Hex

        @Deprecated
        public static java.lang.String hmacMd5Hex​(java.lang.String key,
                                                  java.lang.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:
        java.lang.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:
        java.lang.IllegalArgumentException - when a NoSuchAlgorithmException is caught or key is null or key is invalid.
      • hmacSha1

        @Deprecated
        public static byte[] hmacSha1​(byte[] key,
                                      java.io.InputStream valueToDigest)
                               throws java.io.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:
        java.io.IOException - If an I/O error occurs.
        java.lang.IllegalArgumentException - when a NoSuchAlgorithmException is caught or key is null or key is invalid.
      • hmacSha1

        @Deprecated
        public static byte[] hmacSha1​(java.lang.String key,
                                      java.lang.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:
        java.lang.IllegalArgumentException - when a NoSuchAlgorithmException is caught or key is null or key is invalid.
      • hmacSha1Hex

        @Deprecated
        public static java.lang.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:
        java.lang.IllegalArgumentException - when a NoSuchAlgorithmException is caught or key is null or key is invalid.
      • hmacSha1Hex

        @Deprecated
        public static java.lang.String hmacSha1Hex​(byte[] key,
                                                   java.io.InputStream valueToDigest)
                                            throws java.io.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:
        java.io.IOException - If an I/O error occurs.
        java.lang.IllegalArgumentException - when a NoSuchAlgorithmException is caught or key is null or key is invalid.
      • hmacSha1Hex

        @Deprecated
        public static java.lang.String hmacSha1Hex​(java.lang.String key,
                                                   java.lang.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:
        java.lang.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:
        java.lang.IllegalArgumentException - when a NoSuchAlgorithmException is caught or key is null or key is invalid.
      • hmacSha256

        @Deprecated
        public static byte[] hmacSha256​(byte[] key,
                                        java.io.InputStream valueToDigest)
                                 throws java.io.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:
        java.io.IOException - If an I/O error occurs.
        java.lang.IllegalArgumentException - when a NoSuchAlgorithmException is caught or key is null or key is invalid.
      • hmacSha256

        @Deprecated
        public static byte[] hmacSha256​(java.lang.String key,
                                        java.lang.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:
        java.lang.IllegalArgumentException - when a NoSuchAlgorithmException is caught or key is null or key is invalid.
      • hmacSha256Hex

        @Deprecated
        public static java.lang.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:
        java.lang.IllegalArgumentException - when a NoSuchAlgorithmException is caught or key is null or key is invalid.
      • hmacSha256Hex

        @Deprecated
        public static java.lang.String hmacSha256Hex​(byte[] key,
                                                     java.io.InputStream valueToDigest)
                                              throws java.io.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:
        java.io.IOException - If an I/O error occurs.
        java.lang.IllegalArgumentException - when a NoSuchAlgorithmException is caught or key is null or key is invalid.
      • hmacSha256Hex

        @Deprecated
        public static java.lang.String hmacSha256Hex​(java.lang.String key,
                                                     java.lang.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:
        java.lang.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:
        java.lang.IllegalArgumentException - when a NoSuchAlgorithmException is caught or key is null or key is invalid.
      • hmacSha384

        @Deprecated
        public static byte[] hmacSha384​(byte[] key,
                                        java.io.InputStream valueToDigest)
                                 throws java.io.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:
        java.io.IOException - If an I/O error occurs.
        java.lang.IllegalArgumentException - when a NoSuchAlgorithmException is caught or key is null or key is invalid.
      • hmacSha384

        @Deprecated
        public static byte[] hmacSha384​(java.lang.String key,
                                        java.lang.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:
        java.lang.IllegalArgumentException - when a NoSuchAlgorithmException is caught or key is null or key is invalid.
      • hmacSha384Hex

        @Deprecated
        public static java.lang.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:
        java.lang.IllegalArgumentException - when a NoSuchAlgorithmException is caught or key is null or key is invalid.
      • hmacSha384Hex

        @Deprecated
        public static java.lang.String hmacSha384Hex​(byte[] key,
                                                     java.io.InputStream valueToDigest)
                                              throws java.io.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:
        java.io.IOException - If an I/O error occurs.
        java.lang.IllegalArgumentException - when a NoSuchAlgorithmException is caught or key is null or key is invalid.
      • hmacSha384Hex

        @Deprecated
        public static java.lang.String hmacSha384Hex​(java.lang.String key,
                                                     java.lang.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:
        java.lang.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:
        java.lang.IllegalArgumentException - when a NoSuchAlgorithmException is caught or key is null or key is invalid.
      • hmacSha512

        @Deprecated
        public static byte[] hmacSha512​(byte[] key,
                                        java.io.InputStream valueToDigest)
                                 throws java.io.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:
        java.io.IOException - If an I/O error occurs.
        java.lang.IllegalArgumentException - when a NoSuchAlgorithmException is caught or key is null or key is invalid.
      • hmacSha512

        @Deprecated
        public static byte[] hmacSha512​(java.lang.String key,
                                        java.lang.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:
        java.lang.IllegalArgumentException - when a NoSuchAlgorithmException is caught or key is null or key is invalid.
      • hmacSha512Hex

        @Deprecated
        public static java.lang.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:
        java.lang.IllegalArgumentException - when a NoSuchAlgorithmException is caught or key is null or key is invalid.
      • hmacSha512Hex

        @Deprecated
        public static java.lang.String hmacSha512Hex​(byte[] key,
                                                     java.io.InputStream valueToDigest)
                                              throws java.io.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:
        java.io.IOException - If an I/O error occurs.
        java.lang.IllegalArgumentException - when a NoSuchAlgorithmException is caught or key is null or key is invalid.
      • hmacSha512Hex

        @Deprecated
        public static java.lang.String hmacSha512Hex​(java.lang.String key,
                                                     java.lang.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:
        java.lang.IllegalArgumentException - when a NoSuchAlgorithmException is caught or key is null or key is invalid.
      • updateHmac

        public static javax.crypto.Mac updateHmac​(javax.crypto.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:
        java.lang.IllegalStateException - if the Mac was not initialized
      • updateHmac

        public static javax.crypto.Mac updateHmac​(javax.crypto.Mac mac,
                                                  java.io.InputStream valueToDigest)
                                           throws java.io.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:
        java.io.IOException - If an I/O error occurs.
        java.lang.IllegalStateException - If the Mac was not initialized
      • updateHmac

        public static javax.crypto.Mac updateHmac​(javax.crypto.Mac mac,
                                                  java.lang.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:
        java.lang.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 java.lang.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​(java.lang.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 java.lang.String hmacHex​(java.lang.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​(java.nio.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 java.lang.String hmacHex​(java.nio.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​(java.io.InputStream valueToDigest)
                    throws java.io.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:
        java.io.IOException - If an I/O error occurs.
        Since:
        1.11
      • hmacHex

        public java.lang.String hmacHex​(java.io.InputStream valueToDigest)
                                 throws java.io.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:
        java.io.IOException - If an I/O error occurs.
        Since:
        1.11
      • hmac

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

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