【发布时间】:2015-01-29 15:29:28
【问题描述】:
在阅读 OpenPGP 的 RFC 4880 时,我阅读了 OpenPGP 密钥的版本 3 和版本 4。除了指定数据包格式,我不明白这些版本的含义。
如何找到密钥的版本?我知道代码我们可以使用 Bounce Castle 的 PGPPublicKey 的 getVersion(),但是有没有像 keytool 这样的命令可以使用?
【问题讨论】:
标签: openpgp
在阅读 OpenPGP 的 RFC 4880 时,我阅读了 OpenPGP 密钥的版本 3 和版本 4。除了指定数据包格式,我不明白这些版本的含义。
如何找到密钥的版本?我知道代码我们可以使用 Bounce Castle 的 PGPPublicKey 的 getVersion(),但是有没有像 keytool 这样的命令可以使用?
【问题讨论】:
标签: openpgp
版本 3 和版本 4 OpenPGP 密钥包没有太大区别,甚至格式非常相似。在版本 4 中,有效期移至特殊签名,并且指纹计算发生了变化。 OpenPGP, RFC 4880, 5.5.2. Public-Key Packet Formats 中详细描述了更改(和格式)。对于签名包,differences are more significant。
要使用易于构建的工具查找软件包版本,请使用gpg --list-packets 或pgpdump,例如:
$ gpg --export a4ff2279 | gpg --list-packets
:public key packet:
version 4, algo 1, created 1356475387, expires 0
pkey[0]: [8192 bits]
pkey[1]: [17 bits]
keyid: 4E1F799AA4FF2279
[snip]
OpenPGP 版本 3 密钥已被弃用很长一段时间,并且在使用中很少见。
【讨论】: