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;