bouncycastle-pemparser-readobject-factory/builder/adapter设计模式还是任何实用程序类?

yyyllmsg  于 2021-07-12  发布在  Java
关注(0)|答案(0)|浏览(267)

我读过很多关于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);
    }
}

蹦蹦跳跳的城堡:pemreader=>pemranaser
这里还有:如何读取.pem文件以获得私有和公共keyhttps://www.codota.com/code/java/classes/org.bouncycastle.openssl.pemparserhttps://www.programcreek.com/java-api-examples/?api=org.bouncycastle.openssl.pemparserhttps://www.javatips.net/api/org.bouncycastle.util.io.pem.pemreader
bouncycastle是否为此提供了一些工厂方法?
我只找到了:org.apache.sshd.common.keyprovider.filekeypairprovider(apacheminashshjava客户端实现)。我认为类似的东西可能是bouncycastle本身或apache公共库(fileutils/stringutils)的一部分。
是否有任何工厂/建设者方法或一些设计模式实现,或是每个人都在做一个像这样的生产代码 if (object instance of ) 在路上解决问题?

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题