docs: public static byte[] hash(byte[] input, byte[] hash, byte[] signature, long timestamp,
  		@NonNull HashAlgorithm algorithm)
  	{
  		byte[] hashValue = ArrayUtils.addAll(input, hash);
  		hashValue = ArrayUtils.addAll(hashValue, signature);
  		hashValue = ArrayUtils.addAll(hashValue, Longs.toByteArray(timestamp));
  		switch (algorithm)
  		{
  			case SHA1 :
  				return DigestUtils.sha1(hashValue);
  			case SHA256 :
  				return DigestUtils.sha256(hashValue);
  			case SHA384 :
  				return DigestUtils.sha384(hashValue);
  			case SHA512 :
  				return DigestUtils.sha512(hashValue);
  			case SHA_1 :
  				return DigestUtils.sha1(hashValue);
  			case SHA_256 :
  				return DigestUtils.sha256(hashValue);
  			case SHA_384 :
  				return DigestUtils.sha384(hashValue);
  			case SHA_512 :
  				return DigestUtils.sha512(hashValue);
  			default :
  				return DigestUtils.sha256(hashValue);
  		}
  	}