BouncyCastle PEMParser readObject工厂/构建器/适配器设计模式或任何实用程序类?

问题描述

我在PEMParser上阅读了很多不好的例子:

int myFunc(String privateKeyFileName,char [] password) {
     File privateKeyFile = new File(privateKeyFileName); // private key file in PEM format
     PEMParser pemParser = new PEMParser(new FileReader(privateKeyFile));
     Object object = pemParser.readobject();
     PEMDecryptorProvider decProv = new JcePEMDecryptorProviderBuilder().build(password);
     JcaPEMKeyConverter converter = new JcaPEMKeyConverter().setProvider("BC");
     KeyPair kp;
     if (object instanceof PEMEncryptedKeyPair) {
        System.out.println("Encrypted key - we will use provided password");
        kp = converter.getKeyPair(((PEMEncryptedKeyPair) object).decryptKeyPair(decProv));
    } else {
        System.out.println("Unencrypted key - no password needed");
        kp = converter.getKeyPair((PEMKeyPair) object);
    }
}

Bouncy Castle : PEMReader => PEMParser

在这里How to read .pem file to get private and public key https://www.codota.com/code/java/classes/org.bouncycastle.openssl.PEMParser https://www.programcreek.com/java-api-examples/?api=org.bouncycastle.openssl.PEMParser https://www.javatips.net/api/org.bouncycastle.util.io.pem.pemreader

BouncyCastle是否为此提供了一些工厂方法

我发现的唯一东西是:org.apache.sshd.common.keyprovider.FileKeyPairProvider(Apache Mina SSH Java客户端实现)。我认为类似的东西可能是BouncyCastle本身或Apache通用库(fileutils / stringutils)的一部分。

是否有任何工厂/制造商方法或某些设计模式实现,或者每个人都在使用if (object instance of xxx)之类的生产代码并在旅途中解决问题?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)