存储 PGP 私钥的文件格式是什么?

存储 PGP 私钥的文件格式是什么?

我尝试从 RFC 和源代码(主要是 gnupg 和 gpgme)来理解它,但我不明白当有人导出密钥时数据应该如何存储。

我知道 RSA 和 DSA/ElGamal 存储之间应该存在差异,但应该有一种通用的方法。

答案1

我的问题没有得到很好的描述。事实上,存在二进制和 ascii 装甲格式。但我更感兴趣的是数据的结构。事实上,这里指出了这一点(在阅读了一段时间并理解了更多之后):https://www.rfc-editor.org/rfc/rfc4880#section-5.5.3

其中标明了 DSA/RSA/ElGamal 的差异

我使用 pgpdump(C 实现)在使用以下方式导出的 .gpg 密钥上查看它

gpg --export-secret-keys

答案2

我一直称它为“ASCII Armor”。

事实上,它的真名是Radix-64

它是 Base64,但有一些调整。

完整描述于RFC-4880

相关内容