从PEM编码字符串创建rsprivatekey



所以我有这个代码

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的PEMReader的情况下创建相当于上述代码的RSAPrivateKey ?

我希望,至少这个答案会对别人有所帮助。因为bouncy castle完全不支持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();
}

相关内容

  • 没有找到相关文章

最新更新