我试图解密使用充气城堡库加密私钥的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);
你是否已经jce.setProvider( “BC”)审判;代替jce.setProvider( “1.2.840.113549.1.5.13”);
编辑补充由@PeterDettman提供的解决方案:
除了使用jce.setProvider( “BC”);还安装BC提供商bouncycastle.org/wiki/display/JA1/Provider+Installation