Come faccio a convertire una chiave RSA XML in un file PEM?
-
29-09-2019 - |
Domanda
Ho due file XML, strutturato come segue:
La mia chiave
<RSAKeyValue>
<Modulus> ... </Modulus>
<Exponent> ... </Exponent>
<P> ... </P>
<Q> ... </Q>
<DP> ... </DP>
<DQ> ... </DQ>
<InverseQ> ... </InverseQ>
<D> ... </D>
</RSAKeyValue>
una chiave pubblica
<RSAKeyValue>
<Modulus> ... </Modulus>
<Exponent> ... </Exponent>
</RSAKeyValue>
Sto usando la libreria xmlseclibs
di Robert Richards, che richiede una rappresentazione .PEM della chiave per crittografare e cose Decrypt.
Come un novizio di crittografia, non sono sicuro da dove cominciare, e una superficiale ricerca di Google non ha rivelato nulla di particolarmente evidente ...
Grazie!
Soluzione
Ho trovato un utility Java quella lattina farlo.
Altri suggerimenti
Per chi vuole il PEM risultante di essere leggibile da BouncyCastle :
- XMLSec2PEM strumento per ottenere un file PEM
- Converti PEM per PKCS8 e ritorno (!)
La soluzione finale Sono soddisfatto:
-
java XMLSec2PEM my.xml > my.pem
- modifica
my.pem
manualmente un po ' - torna
org.bouncycastle.openssl.PEMReader.readObject()
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
- ora
my.pkcs8.pem
è leggibile con ilPEMReader
ero alla ricerca di ore per esattamente lo stesso problema. Questo strumento Java ha fatto il lavoro:)
Ma il legame è cambiato, è ora disponibile da qui
Ho trovato questo utile strumento online RSA Key Converter , che supporta
- XML -> PEM
- PEM -> XML
Dal xmlseclibs è PHP sembra un'altra soluzione PHP potrebbe essere auspicabile. Ecco come:
<?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 ha un supporto incorporato per le chiavi XML, chiavi stucco e chiavi PKCS1. Sarà rilevare automaticamente il formato e caricarlo e getPrivateKey / getPublicKey uscita volontà PKCS1 formattato chiavi per impostazione predefinita, se non viene fornito alcun parametro. Maggiori informazioni: