【问题标题】:Create RSAPrivateKey from PEM encoded string从 PEM 编码字符串创建 RSAPrivateKey
【发布时间】:2014-06-03 20:41:31
【问题描述】:

所以我有这个代码

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 是较旧的 bo​​uncycastle 版本)

如何在不使用 bouncycastle 的 PEMReader 的情况下创建与上述代码等效的 RSAPrivateKey

【问题讨论】:

    标签: android bouncycastle spongycastle


    【解决方案1】:

    我希望,至少这个答案会对其他人有所帮助。因为充气城堡完全弃用了它对 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();
    }
    

    【讨论】:

      猜你喜欢
      • 2019-08-05
      • 2012-05-28
      • 2018-07-10
      • 1970-01-01
      • 1970-01-01
      • 2023-03-09
      • 1970-01-01
      • 2012-01-17
      • 2019-12-10
      相关资源
      最近更新 更多