我有一个 PEM 密钥,我想用它和 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
我尝试了几种方法,但都没有成功。
感谢帮助我:)