我正试图使用bouncy城堡库解密一个pkcs8加密的私钥。我使用安全城堡提供的PEMParser解析了包含私钥的文件。我找到PKCS8EncryptedPrivateKeyInfo对象了。我无法从这里获得PrivateKeyInfo对象。当我试图解密时,我得到了以下异常。
org.bouncycastle.pkcs.PKCSException:无法读取加密数据: 1.2.840.113549.1.5.13不可用:没有这样的提供者: 1.2.840.113549.1.5.13
这是我使用的代码
PEMParser parser = new PEMParser(br);
PKCS8EncryptedPrivateKeyInfo pair = (PKCS8EncryptedPrivateKeyInfo)parser.readObject();
JceOpenSSLPKCS8DecryptorProviderBuilder jce = new JceOpenSSLPKCS8DecryptorProviderBuilder();
jce.setProvider("1.2.840.113549.1.5.13");
InputDecryptorProvider decProv = jce.build(password.toCharArray());
PrivateKeyInfo info = pair.decryptPrivateKeyInfo(decProv);发布于 2015-04-22 07:11:18
你试过用jce.setProvider(“BC”)代替jce.setProvider(“1.2.840.113549.1.5.13”)吗?
编辑添加@PeterDettman :提供的解决方案
除了使用jce.setProvider(“BC”)之外,还安装BC提供程序bouncycastle.org/wiki/display/JA1/Provider+Installation
发布于 2021-12-09 13:50:43
Security.addProvider(new BouncyCastleProvider());
那就是缺少的东西
https://stackoverflow.com/questions/29789984
复制相似问题