相关文章推荐
宽容的毛衣  ·  Selenium Python ...·  1 年前    · 
慷慨大方的麻辣香锅  ·  [Solved] I am ...·  1 年前    · 
爱旅游的绿豆  ·  Flutter小技巧 - 掘金·  1 年前    · 
爽快的莲藕  ·  mysql server returns ...·  1 年前    · 
public_key_object = RSA.importKey(pub_key)

This throws the following error - RSA key format is not supported

这是一个用RSA-4096加密生成的PGP公钥。 我很好奇为什么这个库会出现错误。钥匙中是否有无效的字符?看起来没有,没有正斜杠之类的东西。

5 个评论
AKX
这是哪个 Crypto 库?
AKX
那么,你在关键数据上试过 .strip() 吗?现在,它将包含一个前导和尾部换行。
@AKX 同样的问题。
AKX
好吧,如果有帮助的话,你可以在这里看到启发式方法。 github.com/Legrandin/pycryptodome/blob/master/lib/Crypto/... 看起来并不明确支持 PGP PUBLIC KEY ;你粘贴的文档中链接的 key.export_key('PEM') 调用生成了一个 -----BEGIN RSA PRIVATE KEY----- 键。
python
encryption
rsa
asojidaiod
asojidaiod
发布于 2020-09-14
1 个回答
Maarten Bodewes
Maarten Bodewes
发布于 2020-09-15
已采纳
0 人赞同

对于PGP,你需要一个PGP专用库。PGP, 至少对于公钥,使用它自己定义的格式。如果你看一下你的加密库,那么你会发现这个小插曲。

RSA公钥支持以下格式。

  • X.509 certificate (binary or PEM format)
  • X.509 subjectPublicKeyInfo DER SEQUENCE (binary or PEM encoding)
  • PKCS#1 RSAPublicKey DER SEQUENCE (binary or PEM encoding)
  • An OpenSSH line (e.g. the content of ~/.ssh/id_ecdsa, ASCII)
  • 所以不支持PGP密钥格式,只支持X.509密钥(证书包含主体公钥,如果使用RSA,则包含PKCS#1公钥,就像一个Matrushka娃娃)和OpenSSH密钥。