我尝试从 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