I have two XML files, structured as follows:
My Key
...
..
Found this useful online tool RSA Key Converter, which supports
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
I have found a Java utility that can do it.
For those who want the resulting PEM to be readable by BouncyCastle:
The final solution I am happy with:
java XMLSec2PEM my.xml > my.pem
my.pem
manually a bitorg.bouncycastle.openssl.PEMReader.readObject()
returns null
:-(openssl pkcs8 -topk8 -inform pem -in my.pem -outform pem -nocrypt -out my.pkcs8
openssl pkcs8 -inform pem -nocrypt -in my.pkcs8 -out my.pkcs8.pem
my.pkcs8.pem
is readable with the PEMReader
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