如何使用充气城堡解密pkcs8加密私钥?

我正在尝试使用充气城堡库解密pkcs8加密私钥.我使用bouncy castle提供的PEMParser解析了包含私钥的文件.我得到了PKCS8EncryptedPrivateKeyInfo对象.我无法从中获取PrivateKeyInfo对象.
我在尝试解密时收到以下异常.

org.bouncycastle.pkcs.PKCSException: unable to read encrypted data: 1.2.840.113549.1.5.13 not available: No such provider: 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

转载注明原文:如何使用充气城堡解密pkcs8加密私钥? - 代码日志