XML RSAキーをPEMファイルに変換するにはどうすればよいですか?
-
29-09-2019 - |
質問
次のように構成された2つのXMLファイルがあります。
私の鍵
<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の大まかな検索では特に明白なものは明らかになりませんでした...
ありがとう!
解決
私はaを見つけました Javaユーティリティ それはそれをすることができます。
他のヒント
結果のpemを読みやすいものにしたい人のために 弾む城:
- 使用する XMLSEC2PEM PEMファイルを取得するツール
- PEMをPKCS8とバックに変換する(!)
私が満足している最後の解決策:
java XMLSec2PEM my.xml > my.pem
- 編集
my.pem
手動で少し 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
- 今
my.pkcs8.pem
で読みやすいPEMReader
私はまったく同じ問題を何時間も探していました。このJavaツールは仕事をしました:)
しかし、リンクが変更されました、それは今では利用可能です ここ
この便利なオンラインツールを見つけました RSAキーコンバーター, 、サポートしています
- xml-> pem
- pem-> xml
XMLSeclibsはPHPであるため、別のPHPソリューションが望ましいようです。方法は次のとおりです。
<?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キー、パテキーズ、PKCS1キーをサポートしています。フォーマットを自動検出してロードし、getPrivateKey / getPublicKeyがパラメーターが提供されていない場合、デフォルトでPKCS1フォーマットキーを出力します。より詳しい情報:
所属していません StackOverflow