使用Bouncy Castle API撤消pgp密钥

时间:2012-11-29 06:06:02

标签: bouncycastle pgp openpgp

我想使用Bouncy Castle API撤销我的PGP公钥。我已经生成了撤销证书。但我无法找到使用吊销证书撤销公钥的方法。 我将如何实现它?

我在PGPPublickey.java类中找到了addCertification方法,但是它用于添加证书而不是用于添加吊销证书。

我尝试了这种方法,但它实际上将任何撤销证书添加到公钥,并且该密钥也被撤销。但是,公钥应仅添加从相应私钥生成的吊销证书。

2 个答案:

答案 0 :(得分:1)

您应该将撤销证书添加到相应的公钥,并将此更新的密钥发送给密钥服务方或您正在与之通信的其他方。

答案 1 :(得分:1)

你在一个方面是正确的而在另一个方面是错的。

权利:您已找到将撤销证书添加到密钥的正确功能。 addCertification函数是您应该将撤销证书添加到PGP密钥的功能。

错误:该功能不应该让您添加由公钥所有者以外的其他人签名的吊销证书(我推测是您的假设)。

您可以将任何人签名的任何证书添加到PGP密钥。附件证书是否对密钥有相关影响是另一回事。

例如,我可以将我的密钥生成的吊销证书附加到您的公钥。但是,这是否意味着您的密钥现已被撤销?简而言之,不,它没有。这是因为公钥只能由相应私钥签名的撤销证书撤销,并且由相应的实现(例如,GPG之类的加密程序)来验证这一点,然后才能撤销您的密钥。

在您的情况下,您的公钥可以附加任意数量的吊销证书。但是,只有由相应私钥签署的撤销证书(您可能拥有,并且希望是秘密的)才能实际撤销它。

也就是说,如果您希望撤销密钥以便与世界其他地方进行通信,即通过密钥服务器,您应首先生成由您的私钥签名的吊销证书,并将其附加到您的公钥(有效地撤销它),然后将此撤销密钥上传到密钥服务器。密钥服务器只会将您的密钥合并到他们拥有的副本(如果有的话),并将此密钥传播给它知道的其他密钥服务器。如果一切顺利,在几天或更长时间内,您的已撤销密钥应该可以直接或间接连接到您上传密钥的密钥服务器上的密钥服务器。