How do I convert an XML RSA key to a PEM file?

前端 未结 5 1529
既然无缘
既然无缘 2020-12-14 21:31

I have two XML files, structured as follows:

My Key


   ... 
   ..         


        
相关标签:
5条回答
  • 2020-12-14 21:52

    Found this useful online tool RSA Key Converter, which supports

    • XML -> PEM
    • PEM -> XML
    0 讨论(0)
  • 2020-12-14 21:55

    Since xmlseclibs is PHP it seems like another PHP solution might be desirable. Here's how:

    <?php
    include('Crypt/RSA.php');
    
    $rsa = new Crypt_RSA();
    $rsa->loadKey('<RSAKeyValue>
      <Modulus> ... </Modulus>
      <Exponent> ... </Exponent>
      <P> ... </P>
      <Q> ... </Q>
      <DP> ... </DP>
      <DQ> ... </DQ>
      <InverseQ> ... </InverseQ>
      <D> ... </D>
    </RSAKeyValue>');
    
    $privatekey = $rsa->getPrivateKey();
    $publickey = $rsa->getPublicKey();
    ?>
    

    phpseclib has built in support for XML keys, PuTTY keys and PKCS1 keys. It'll auto detect the format and load it and getPrivateKey / getPublicKey will output PKCS1 formatted keys by default if no parameters are provided. More info:

    http://phpseclib.sourceforge.net/rsa/examples.html#convert

    0 讨论(0)
  • 2020-12-14 21:57

    I have found a Java utility that can do it.

    0 讨论(0)
  • 2020-12-14 22:01

    For those who want the resulting PEM to be readable by BouncyCastle:

    1. use XMLSec2PEM tool to get a pem file
    2. convert pem to pkcs8 and back (!)

    The final solution I am happy with:

    1. java XMLSec2PEM my.xml > my.pem
    2. edit my.pem manually a bit
    3. org.bouncycastle.openssl.PEMReader.readObject() returns null :-(
    4. openssl pkcs8 -topk8 -inform pem -in my.pem -outform pem -nocrypt -out my.pkcs8
    5. openssl pkcs8 -inform pem -nocrypt -in my.pkcs8 -out my.pkcs8.pem
    6. now my.pkcs8.pem is readable with the PEMReader
    0 讨论(0)
  • 2020-12-14 22:11

    I was searching for hours for exactly the same problem. This Java tool did the job :)

    But the link has changed, it is now available from here

    0 讨论(0)
提交回复
热议问题