Merge pull request #169 from iocanel/master

Don't fail when the JCE provider fails.
This commit is contained in:
Adrian Cole 2011-11-18 09:18:52 -08:00
commit 24d5b13747
1 changed files with 12 additions and 1 deletions

View File

@ -63,7 +63,18 @@ public class JCECrypto implements Crypto {
@Override @Override
public Mac hmac(String algorithm, byte[] key) throws NoSuchAlgorithmException, InvalidKeyException { 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); SecretKeySpec signingKey = new SecretKeySpec(key, algorithm);
mac.init(signingKey); mac.init(signingKey);
return mac; return mac;