我读过很多关于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 )
在路上解决问题?
暂无答案!
目前还没有任何答案,快来回答吧!