2010-06-22 4 views
8

나는 두 개의 XML 파일이, 구조는 다음과 같이XML RSA 키를 PEM 파일로 변환하려면 어떻게해야합니까?

내 주요

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

공개 키

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

내가 필요 로버트 리차드로 xmlseclibs 라이브러리를 사용하고 있습니다를 키를 .PEM으로 표현하여 사물을 암호화하고 해독합니다.

암호화 초보자로서 ...

덕분에 나는 시작하는 곳에 확실하지 않다, 그리고 피상적 인 Google 검색은 특히 분명 아무것도 공개하지 않았다!

+0

xmlseclibs이 방법'XMLSecurityKey :: convertRSA' 모듈러스와 지수를 허용하고 PEM 호환되는 공개 키를 생성 할 것으로 보인다. 그러나 필요한 개인 키를 만들 수있는 방법이없는 것 같습니다. 도움이 필요하십니까? – Philip

+0

중요한 형식/프리젠 테이션은 [RFC 3275, XML 서명 구문 및 처리] (https://www.ietf.org/rfc/rfc3275.txt)에 있습니다. – jww

답변

0

정확히 동일한 문제가 발생한 시간을 검색하고있었습니다. 이 자바 도구는 작업 :

했다 그러나 링크를 발견, 지금 here

0

에서 사용할 수 변경

  • XML을 지원하는이 유용한 온라인 도구 RSA Key Converter -> PEM
  • PEM -> XML
+7

이러한 종류의 중요한 정보를 위해 온라인 도구를 사용하지 마십시오. – Torge

+1

공개 키에만 사용할 수 있습니다. – Ofigenn

+1

데모 용으로도 널리 사용되는 공개 키는 유용 할 수 있습니다. –

0

결과로 나오는 PEM을 BouncyCastle :

  1. 사용 XMLSec2PEM 도구 다시 PKCS8하고
  2. 변환 PEM PEM을 파일을 얻을 수

최종 솔루션을 내가 함께 행복 (!) :

  1. java XMLSec2PEM my.xml > my.pem
  2. my.pem 비트 수동으로 편집
  3. xmlseclibs는 PHP가 다른 PHP 솔루션 바람직 할 수도 것처럼 보인다 때문에210 개 반환 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. 지금 my.pkcs8.pemPEMReader
1

로 읽을 수 있습니다. 방법은 다음과 같습니다.

<?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 키, PuTTY 키 및 PKCS1 키를 지원합니다. 그것은 자동으로 형식을 감지하고 그것을로드하고 매개 변수가 제공되지 않으면 getPrivateKey/getPublicKey는 기본적으로 PKCS1 형식의 키를 출력합니다.더 많은 정보는 :

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

관련 문제