3
我从keytool的示例页面创建的证书基本上直:无法登录掏SIG采用的Java /密钥工具
密钥工具-genkey -dname“CN =什么,OU =什么,O =什么,C = US” -alias业务-keypass kpi135 -keystore C:\ mykeystore -storepass ab987c -validity 1095
我试图访问该证书和使用私钥部分文本的一部分进行数字签名,以与第三方进行身份验证。下面是我试图代码:
//Add bouncyCastle as a provider
Security.addProvider(new org.bouncycastle.jce.provider.BouncyCastleProvider());
KeyStore keystore = KeyStore.getInstance("JKS");
keystore.load(new FileInputStream("C:\\mykeystore"), "ab987c".toCharArray());
Signature sig = Signature.getInstance("MD5withRSA", "BC");
PrivateKey privateKey = (PrivateKey)keystore.getKey("business", "kpi135".toCharArray()); //Exception here
sig.initSign(privateKey);
sig.update("myUID__myNonce".getBytes());
byte[] digitalSignature = sig.sign();
System.out.println("Signature Formulated: " + digitalSignature);
我得到以下异常:
java.security.InvalidKeyException: Supplied key (sun.security.provider.DSAPrivat
eKey) is not a RSAPrivateKey instance
at org.bouncycastle.jce.provider.JDKDigestSignature.engineInitSign(Unkno
wn Source)
at java.security.Signature$Delegate.engineInitSign(Signature.java:1095)
at java.security.Signature.initSign(Signature.java:480)
at MainClass.<init>(MainClass.java:15)
at MainClass.main(MainClass.java:28)
我想这是因为我莫名其妙地产生了错误类型键的证书,但我米不知道我通过挖掘keytool页面找到我需要的。它确实提到,创建证书我得到时,你可以使用明显RSA -keysig但是和RSA -sigalg生成密钥,当我尝试这些标志:
keytool error: java.security.NoSuchAlgorithmException: RSA Signature not availab
le
enter code here