如何查询 OpenPGP public 密钥的版本

How to query version of an OpenPGP public key

在阅读 OpenPGP 的 RFC 4880 时,我阅读了 OpenPGP 密钥的第 3 版和第 4 版。除了指定数据包格式外,我不明白这些版本的含义。

如何找到密钥的版本?我知道对于代码我们可以使用 Bounce Castle 的 PGPPublicKeygetVersion(),但是有没有像 keytool 这样的命令我可以使用?

版本3和版本4的OpenPGP密钥包没有太大区别,甚至格式也很相似。在版本 4 中,有效期被移至特殊签名,指纹计算也发生了变化。 OpenPGP, RFC 4880, 5.5.2. Public-Key Packet Formats. For signature packets, the differences are more significant.

中详细描述了更改(和格式)

使用gpg --list-packetspgpdump查找包版本,例如:

$ 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 密钥现在已被弃用很长一段时间,并且很少使用。