Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

JAVA Signature Object - No installed provider supports this key: sun.security.rsa.RSAPrivateCrtKeyImpl

I want to sign a file i created using a pair of RSA keys I created using key tool and the following command:

keytool -genkeypair -alias key -keyalg RSA -keysize 2048 -sigalg SHA256withRSA -validity 365 -keystore keystore.jks

I want to initialize my Signature object so I tried this:

PrivateKey privateKey = (PrivateKey) keyStore.getKey(PRIVATE_KEY_ALIAS,privateKeyPassword);
Signature signature = Signature.getInstance(SIGNATURE_ALGORITHM);
signature.initSign(privateKey);

But I got this exception:
No installed provider supports this key: sun.security.rsa.RSAPrivateCrtKeyImpl

Appreciate any help!

like image 344
Dor Mesica Avatar asked Jan 08 '17 16:01

Dor Mesica


1 Answers

You can't use SHA1withDSA with an RSA key. Change signature algorithm to SHA1withRSA or generate a DSA key instea

like image 192
pedrofb Avatar answered Sep 19 '22 02:09

pedrofb