读取 X.509 证书存储 OpenPGP 格式

Read X.509 Certificate Store OpenPGP Format

我认为这是可能的,因为两者都使用 RSA 进行加密。我应该能够读取 X.509 并将其存储为新的 OpenPGP 密钥。

我的软件合作者需要 OpenPGP。 另一位合作者提供了 X.509。

我正在寻找一种转换密钥的方法。 有可能吗,怎么做到的?

简短版本:你可以做一些,但这样做很少有什么用处。

您可以提取构成密钥的数字,理论上可以从中组合出一个新的 X.509 and/or OpenPGP 密钥,但这些密钥在各自的系统中仍然不兼容、不同。实际上,monkeysphere 项目为两个方向都提供了工具(openpgp2pem and pem2openpgp,但请务必在出发和转换密钥之前阅读 post 的其余部分)。

X.509 和 OpenPGP 都不仅仅是密钥的文件格式:它们添加了(不兼容的)密钥管理和认证选项、元数据、标识符……此外,这两个系统使用的加密操作模式略有不同,并且具有非常不同(因此不兼容)的加密和签名消息格式。他们甚至在如何处理认证方面也存在巨大差异(X.509 的层次结构与 OpenPGP 的任意图)。

换句话说:您对共享相同 RSA 素数的 OpenPGP 密钥的 X.509 "representation" 所做的任何操作都不能用于 OpenPGP 变体,反之亦然。在一个系统中颁发的证书在另一个系统中不起作用(并且无法转换!)。

由于两个密钥 "representations" 无论如何都不兼容并且必须单独管理,我 强烈 建议从一开始就创建不同的密钥集。毕竟,这增加了另一层安全性,以防其中一个密钥被破坏,因为另一个密钥保持完好无损。除了执行不寻常的操作总是容易出错和怀疑后续问题。

可能有很好的用例,例如 monkeysphere 项目需要那些转换来通过 OpenPGP 密钥验证 SSH 连接。但出于上述原因,我不认为对消息和文件进行签名和加密的一般用法是一个很好的用例。