Export RSA public key to PEM String using java

So, I use Spongy Castle (Android) to create a PEM encoded string for the RSA public key to be uploaded to the server. This is what I am doing now:

    PublicKey publicKey = keyPair.getPublic();
    StringWriter writer = new StringWriter();
    PemWriter pemWriter = new PemWriter(writer);
    pemWriter.writeObject(new PemObject("RSA PUBLIC KEY", publicKey.getEncoded()));
    pemWriter.flush();
    pemWriter.close();
    return writer.toString();

Now, as you can probably tell, I'm not sure how to build PemObject, or if there is an easier way to do this.

When using the Bouncy Case, I used this as

    StringWriter writer = new StringWriter();
    PEMWriter pemWriter = new PEMWriter(writer);
    pemWriter.writeObject(keyPair.getPublic());
    pemWriter.flush();
    pemWriter.close();
    return writer.toString();

But for some reason, the PEMWriter class does not exist in Spongy Castle

+4
source share
2 answers

Ok , , , (, , ?), , PEMWriter :

  • writeObject MiscPEMGenerator
  • MiscPEMGenerator PemObject, , MiscPEMGenerator source:

    private PemObject createPemObject(Object o){
      ...
      else if (o instanceof PublicKey)
      {
          type = "PUBLIC KEY";
    
          encoding = ((PublicKey)o).getEncoded();
      }
      ...
      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.getEncoded()));
pemWriter.flush();
pemWriter.close();
return writer.toString();
+7

, , , Android Bouncy Castle JCA. , , Android.

Spongy Castle, "" Bouncy Castle , Android-.

(1.51.0.0) Spongy Castle, ( , ):

import java.security.PublicKey;
import org.spongycastle.openssl.jcajce.JcaPEMWriter;

class PEMConverter {

    public static String toPEM(PublicKey pubKey) {
        StringWriter sw = new StringWriter();
        JcaPEMWriter pemWriter = new JcaPEMWriter(sw);
        pemWriter.writeObject(pubKey);
        pemWriter.close();
        return sw.toString();
    }
}
+2

All Articles