好的,这可能不是最聪明的方法(或者也许是?),但是在检查了
PEMWriter此类的源代码之后,基本上是在后台进行此操作:
- 当调用
writeObject
它创建一个实例MiscPEMGenerator
MiscPEMGenerator
然后PemObject
通过检查构造函数的参数类型来创建,以下摘录自MiscPEMGenerator
的源代码:
private PemObject createPemObject(Object o){ ... else if (o instanceof PublicKey) { type = "PUBLIC KEY"; encoding = ((PublicKey)o).getEnpred(); } ... return new PemObject(type, encoding); }因此,从
MiscPEMGenerator代码中可以看出,我唯一需要更改的就是将类型参数从“ RSA PUBLIC KEY”更改为“ PUBLIC
KEY”。这是最终代码。
PublicKey publicKey = keyPair.getPublic(); StringWriter writer = new StringWriter(); PemWriter pemWriter = new PemWriter(writer); pemWriter.writeObject(new PemObject("PUBLIC KEY", publicKey.getEnpred())); pemWriter.flush(); pemWriter.close(); return writer.toString();


