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!

È stato utile?

Soluzione

Ho trovato un utility Java quella lattina farlo.

Altri suggerimenti

Per chi vuole il PEM risultante di essere leggibile da BouncyCastle :

  1. XMLSec2PEM strumento per ottenere un file PEM
  2. Converti PEM per PKCS8 e ritorno (!)

La soluzione finale Sono soddisfatto:

  1. java XMLSec2PEM my.xml > my.pem
  2. modifica my.pem manualmente un po '
  3. torna org.bouncycastle.openssl.PEMReader.readObject() 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. ora my.pkcs8.pem è leggibile con il PEMReader

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:

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

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top