我一直在用BouncyCastle的加密库和RSA的加密库进行一些简单的测试。什么我做的是生成公钥/私钥对,像这样:BouncyCastle错误:无法识别基于ECDSA的签名者的密钥类型
KeyPairGenerator kpg = KeyPairGenerator.getInstance("EC", "JsafeJCE");
kpg.initialize(new ECGenParameterSpec("secp384r1"));
KeyPair kp = kpg.genKeyPair();
PrivateKey priv = kp.getPrivate();
PublicKey pub = kp.getPublic();
然后我产生像这样
Signature sig = Signature.getInstance("SHA384/ECDSA","BC");
签名,我尝试登录私钥:
sig.initSign(priv);
所有这些都给我带来了错误:
java.security.InvalidKeyException:无法识别ECDSA中的密钥类型based签署者
当我BC和JsafeJCE,我没有得到任何错误,一切都很好。如果两个提供者都是BC,也可以工作那么为什么我不能用BC库签署JsafeJCE生成的密钥?
当另一端的提供者不同时会发生什么?所以我正在使用使用JsafeJCE提供程序的现有应用程序。我在我的末端使用了BC。 BC能否正确验证一切? – Otra 2011-05-16 14:10:44
是的,数据是使用独立于提供者的标准格式传输的。 – 2011-05-16 23:54:10