1
我有一個PEM密鑰,我想獲得一個KeyPair與它和bouncycastle。我發現這個代碼似乎很好,但我有一個演員異常。從PEM密鑰獲取KeyPair與BouncyCastle
function loadKey() {
File privateKeyFile = new File(keyPath);
PEMParser pemParser = new PEMParser(new FileReader(privateKeyFile));
PEMDecryptorProvider decProv = new JcePEMDecryptorProviderBuilder().build(password.toCharArray());
JcaPEMKeyConverter converter = new JcaPEMKeyConverter().setProvider("BC");
Object object = pemParser.readObject();
KeyPair kp;
if (object instanceof PEMEncryptedKeyPair) {
Logger.info("Encrypted key - we will use provided password");
kp = converter.getKeyPair(((PEMEncryptedKeyPair) object).decryptKeyPair(decProv));
}
else {
Logger.info("Unencrypted key - no password needed");
kp = converter.getKeyPair((PEMKeyPair) object);
}
return kp;
}
,並返回我: 未加密的密鑰 - 無需 org.bouncycastle.asn1.x509.SubjectPublicKeyInfo不能轉換到org.bouncycastle.openssl.PEMKeyPair
我試了好幾種方法,但我的密碼沒有成功。
感謝幫助我:)
您確定您所引用的PEM是私鑰嗎?我沒有任何困難地使用相同的方法。 – 2013-03-27 12:24:10
我不確定,我是一個帶鍵的新手。我怎麼能知道它? – user2119056 2013-03-27 12:41:55
基於你遇到的錯誤,聽起來好像你在解密證書而不是私鑰。 – 2013-03-27 13:41:02