如何将XML RSA密钥转换为PEM文件?

2024-05-15 15:22:34 发布

您现在位置:Python中文网/ 问答频道 /正文

我有两个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>

我正在使用Robert Richards的xmlseclibs库,它需要密钥的.PEM表示来加密和解密。

作为一个加密新手,我不知道从哪里开始,粗略的谷歌搜索没有发现任何特别明显的东西。。。

谢谢!


Tags: 文件密钥xml结构robertdp钥匙公钥
3条回答

我找到了一个能做到的Java utility

我花了几个小时寻找同样的问题。这个Java工具完成了以下任务:)

但链接已更改,现在可以从here获得

对于那些希望通过BouncyCastle读取结果PEM的人:

  1. 使用XMLSec2PEM工具获取pem文件
  2. 将pem转换为pkcs8并返回(!)

最后的解决方案是:

  1. java XMLSec2PEM my.xml > my.pem
  2. 手动编辑my.pem一点
  3. 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. 现在my.pkcs8.pem可以用PEMReader读取了

相关问题 更多 >