如何使用弹性城堡解密pkcs8加密的私钥



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

org.bouncycastle.pcs.PKCSE异常:无法读取加密数据:1.2.840.113549.1.5.13不可用:没有此类提供程序:1.2.840.11 3549.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");

编辑以添加@PeterDietman提供的解决方案:

除了使用jce.setProvider("BC");还安装BC提供商bouncycastle.org/wiki/deisplay/JA1/provider+Installation

Security.addProvider(new BouncyCastleProvider());

这就是缺少的原因

最新更新