我有这个代码
private static RSAPrivateKey buildRSAPrivateKey(String privateKey) {
PEMReader pemReader = new PEMReader(new StringReader(privateKey));
try {
KeyPair pair = (KeyPair) pemReader.readObject();
RSAPrivateKey result = (RSAPrivateKey)pair.getPrivate();
pemReader.close();
return result;
} catch (IOException e) {
e.printStackTrace();
}
return null;
}
使用bouncycastle
工作正常,但我需要在Android上运行,因此我导入SpongyCastle
,但是海绵城堡没有PEMReader
(显然PEMReader
是在一个较旧的bouncycastle版本)
如何在不使用bouncycastle' s RSAPrivateKey
的情况下创建与上述代码等效的PEMReader
?
答案 0 :(得分:0)
我希望,至少这个答案会帮助其他人。因为充气城堡完全不支持android P。
Security.insertProviderAt(new org.spongycastle.jce.provider.BouncyCastleProvider(), 1);
StringReader reader = new StringReader(privateKeySerialized); /*privateKeySerialized -> RSA key*/
PublicKey pKey = null;
try {
PemReader pemReader = new PemReader(reader);
PEMParser pemParser = new PEMParser(pemReader);
PEMKeyPair keyPair = (PEMKeyPair) pemParser.readObject();
JcaPEMKeyConverter converter = new JcaPEMKeyConverter();
pKey = converter.getPublicKey(keyPair.getPublicKeyInfo());
pemReader.close();
} catch (IOException i) {
i.printStackTrace();
}