Question

J'ai deux fichiers XML, structuré comme suit:

Ma touche

<RSAKeyValue>
  <Modulus> ... </Modulus>
  <Exponent> ... </Exponent>
  <P> ... </P>
  <Q> ... </Q>
  <DP> ... </DP>
  <DQ> ... </DQ>
  <InverseQ> ... </InverseQ>
  <D> ... </D>
</RSAKeyValue>

Une clé publique

<RSAKeyValue>
   <Modulus> ... </Modulus>
   <Exponent> ... </Exponent>
</RSAKeyValue>

J'utilise la bibliothèque xmlseclibs par Robert Richards qui exige une représentation .PEM de la clé pour chiffrer et déchiffrer les choses.

En tant que novice de cryptage, je ne suis pas sûr où commencer, et une recherche Google rapide ne révèle rien de particulièrement évident ...

Merci!

Était-ce utile?

La solution

J'ai trouvé un utilitaire Java peut le faire.

Autres conseils

Pour ceux qui veulent le PEM résultant soit lisible par BouncyCastle :

  1. XMLSec2PEM pour obtenir un fichier pem
  2. converti à pem pkcs8 et retour (!)

La solution finale, je suis heureux avec:

  1. java XMLSec2PEM my.xml > my.pem
  2. modifier manuellement my.pem un peu
  3. retourne 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. maintenant my.pkcs8.pem est lisible avec le PEMReader

je cherchais des heures pour exactement le même problème. Cet outil Java a fait le travail:)

Mais le lien a changé, il est maintenant disponible ici

Nous avons trouvé cet outil en ligne utile RSA Key Converter , qui soutient

  • XML -> PEM
  • PEM -> XML

Depuis xmlseclibs est PHP, il semble comme une autre solution de PHP peut être souhaitable. Voici comment:

<?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 a un support intégré pour les clés XML, les touches et les touches PuTTY PKCS1. Il va détecter automatiquement le format et le charger et getPrivateKey / getPublicKey volonté sortie PKCS1 formatée clés par défaut si aucun paramètre sont fournis. Plus d'infos:

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

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top