Added a check for JCE providers that are not working.
diff --git a/core/src/main/java/org/jclouds/encryption/internal/JCECrypto.java b/core/src/main/java/org/jclouds/encryption/internal/JCECrypto.java
index 9b539b9..4efa54a 100644
--- a/core/src/main/java/org/jclouds/encryption/internal/JCECrypto.java
+++ b/core/src/main/java/org/jclouds/encryption/internal/JCECrypto.java
@@ -63,7 +63,18 @@
 
    @Override
    public Mac hmac(String algorithm, byte[] key) throws NoSuchAlgorithmException, InvalidKeyException {
-      Mac mac = provider == null ? Mac.getInstance(algorithm) : Mac.getInstance(algorithm, provider);
+      Mac mac = null;
+      if(provider != null) {
+          try {
+          mac = Mac.getInstance(algorithm, provider);
+          } catch(Exception e) {
+              //Provider does not function.
+              //Do nothing and let it fallback to the default way.
+          }
+      }
+      if(mac == null) {
+         mac = Mac.getInstance(algorithm);
+      }
       SecretKeySpec signingKey = new SecretKeySpec(key, algorithm);
       mac.init(signingKey);
       return mac;