diff --git a/jsign-crypto/src/main/java/net/jsign/jca/JsignJcaProvider.java b/jsign-crypto/src/main/java/net/jsign/jca/JsignJcaProvider.java index 95b5280a..aa74627d 100644 --- a/jsign-crypto/src/main/java/net/jsign/jca/JsignJcaProvider.java +++ b/jsign-crypto/src/main/java/net/jsign/jca/JsignJcaProvider.java @@ -201,7 +201,12 @@ protected void engineInitSign(PrivateKey privateKey) throws InvalidKeyException JsignJcaPrivateKey key = (JsignJcaPrivateKey) privateKey; try { - signature = Signature.getInstance(signingAlgorithm, key.getProvider()); + Provider provider = key.getProvider(); + if (provider == null) { + signature = Signature.getInstance(signingAlgorithm); + } else { + signature = Signature.getInstance(signingAlgorithm, provider); + } } catch (NoSuchAlgorithmException e) { throw new RuntimeException(e); }