Wie kann ich einen XML-RSA-Schlüssel zu einer PEM-Datei konvertieren?
-
29-09-2019 - |
Frage
Ich habe zwei XML-Dateien, wie folgt aufgebaut:
My Key
<RSAKeyValue>
<Modulus> ... </Modulus>
<Exponent> ... </Exponent>
<P> ... </P>
<Q> ... </Q>
<DP> ... </DP>
<DQ> ... </DQ>
<InverseQ> ... </InverseQ>
<D> ... </D>
</RSAKeyValue>
A Public Key
<RSAKeyValue>
<Modulus> ... </Modulus>
<Exponent> ... </Exponent>
</RSAKeyValue>
Ich bin mit der xmlseclibs
Bibliothek von Robert Richards, die eine .PEM Darstellung der Schlüssel, um den Ver- und Entschlüsselung Dinge erfordern.
Als Verschlüsselung Anfänger, ich bin nicht sicher, wo man anfangen soll, und eine oberflächliche Google-Suche ergab keine etwas besonders deutlich ...
Danke!
Lösung
Ich habe ein Java-Dienstprogramm das kann gefunden tun es.
Andere Tipps
Für diejenigen, die die resultierende PEM sein wollen lesbar von BouncyCastle :
- verwenden XMLSec2PEM Tool eine pem-Datei zu erhalten
- convert pem zu pkcs8 und zurück (!)
Die Endlösung Ich bin glücklich mit:
-
java XMLSec2PEM my.xml > my.pem
- bearbeiten
my.pem
manuell ein bisschen -
org.bouncycastle.openssl.PEMReader.readObject()
kehrtnull
: - ( -
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
- jetzt
my.pkcs8.pem
lesbar mit demPEMReader
Ich war für genau das gleiche Problem stundenlang suchen. Das Java-Tool hat seine Aufgabe erfüllt:)
Aber die Linksetzung verändert hat, ist es jetzt von hier
Wir haben dieses nützliche Online-Tool RSA Key Converter , die Stützen
- XML -> PEM
- PEM -> XML
Da xmlseclibs ist PHP scheint es wie eine andere PHP-Lösung wünschenswert sein könnte. Hier ist, wie:
<?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 hat Unterstützung für XML-Tasten, PuTTY Tasten und PKCS1 Tasten gebaut. Es wird automatisch das Format erkennen und laden Sie es und getPrivateKey / getPublicKey ausgeben wird PKCS1 formatiert Tasten standardmäßig, wenn keine Parameter vorhanden sind. Weitere Informationen: