GPG 和 GPGSM 使用相同的密钥数据库吗?

Mel*_*lab 6 gnupg

我需要将我的 GPG 密钥之一导出为 PKCS12 密钥/证书。gpg无法做到这一点,但工具gpgsm是。但是,输入gpgsm -o <file> --export-secret-key-p12 <key-id>返回gpgsm: can't export secret key `<key-id>'. 我测试过gpgsm --list-keys,它什么也没返回。

GPGSM 是否应该与 GPG 一起使用?我注意到在我第一次运行它时为它创建了一个新文件。如果 GPG 已经运行和配置,我认为它不会有必要。两者都意味着可以访问同一个密钥环吗?如果是这样,我该如何解决这个问题?如果没有,我如何从 GPG 导出我的密钥并将其导入 GPGSM?

use*_*686 5

描述你为什么想做某事,而不仅仅是描述你想做什么会更有用。我猜您正在尝试将 PGP 密钥与 S/MIME 电子邮件加密或签名一起使用,但这实际上是不可能的。

要回答这个问题,答案是否定的,GPG 和 GPGSM 使用不同的格式和协议,这就是为什么它们首先作为单独的工具实现的原因。GPG 是 OpenPGP 的实现,而 GPGSM 则与 X.509(主要是 S/MIME)配合使用。

虽然两者都使用相同的加密算法,并且理论上可以使用相同的密钥材料(例如相同的 RSA 参数),但这就是相似之处 - 您无法将 OpenPGP 用户证书直接转换为 X.509 证书,因此您无法有效地将其导出PKCS#12 格式。

(gpg-agent 能够使用 OpenPGP 密钥进行 SSH 身份验证,但这只是因为 SSH 密钥格式没有附加元数据,因此“转换”只是提取 RSA 参数。另一方面,X.509 证书具有这样的功能元数据作为主题名称,使用与 OpenPGP 不同的语法;OpenPGP 没有的发行者名称基于信任网络);以及密钥使用(这很棘手,因为大多数 OpenPGP 实现在单个密钥中使用两个单独的密钥) ‘证书’,一份用于签名,一份用于加密)。)

  • @Melab:这与生成新密钥对完全没有任何有用的区别。 **重用来自另一个加密系统(即从 PGP 到 S/MIME)的密钥没有任何价值**,因为它不会继承元数据,也不会保留其他人标记它的信任。唯一能让密钥更容易被泄露的事情是,因为它存储在更多的地方。 (2认同)