2010-06-22 26 views
8

İki XML dosyaları var, yapılandırılmış şöyle:XML RSA anahtarını PEM dosyasına nasıl dönüştürebilirim?

My Anahtar

<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> 

Ben gerektirir Robert Richards tarafından xmlseclibs kitaplığı kullanıyorum şeyleri şifrelemek ve şifresini çözmek için anahtarın .PEM gösterimi.

bir şifreleme acemi olarak ...

sayesinde Nereden başlayacağınızı emin değilim ve üstünkörü Google arama özellikle bariz bir şey ortaya koymamıştır!

+0

xmlseclibs bir yöntem 'XMLSecurityKey :: convertRSA' modülüne ve bir üs kabul eder ve bir PEM uyumlu ortak anahtarı yaratacak olduğu anlaşılıyor. Bununla birlikte, gerekli özel anahtarları oluşturmak için herhangi bir yönteme sahip değildir. Bunun hakkında herhangi bir yardım? – Philip

+0

Anahtar biçim/sunumun [RFC 3275, XML İmza Sözdizimi ve İşleme] 'den kaynaklandığına inanıyorum (https://www.ietf.org/rfc/rfc3275.txt) – jww

cevap

0

Tam olarak aynı sorun için saatler arıyordum. Bu Java aracı işi :)

yaptılar Ama bağlantı Bulunan, şimdi here

0

edinilebilir değişti

  • XML destekleyen bu yararlı çevrimiçi araç RSA Key Converter, -> PEM
  • PEM -> Elde PEM BouncyCastle tarafından okunabilir olmasını isteyenler için XML
+7

Bu tür hassas bilgiler için asla çevrimiçi araçları kullanmayın. – Torge

+1

Sadece ortak anahtarlar için kullanılabilir. – Ofigenn

+1

Kamuya açık bilinen özel anahtarlar için de kullanılabilir, bunlar da gösteriler için kullanılır. –

0

:

  1. kullanım XMLSec2PEM aracı geri pkcs8 ve
  2. dönüştürme pem bir PEM dosyası almak için

nihai çözümü ben memnunum (!):

  1. java XMLSec2PEM my.xml > my.pem
  2. düzenlemek my.pem elle bir bit
  3. xmlseclibs PHP başka bir PHP çözüm arzu olabilir gibi görünüyor olduğundan 210 döner 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. şimdi my.pkcs8.pemPEMReader
1

ile okunabilir.

<?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 XML tuşları, PuTTY tuşları ve PKCS1 tuşlar için destek inşa etti: İşte nasıl. Biçimi otomatik olarak algılar ve yükler ve hiçbir parametre sağlanmazsa getPrivateKey/getPublicKey varsayılan olarak PKCS1 biçimlendirilmiş tuşları gönderir.Daha çok bilgi:

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