2012-11-29 50 views
1

我想使用Bouncy Castle API撤銷我的PGP公鑰。我已經生成了一個撤銷證書。但我無法找到一種方法來撤銷使用撤銷證書的公鑰。 我將如何實現它?使用Bouncy Castle API撤銷pgp密鑰API

我在PGPPublickey.java類中找到了方法addCertification,但它用於添加證書而不用於添加撤銷證書。

我試過這種方法,但它實際上將任何撤銷證書添加到公鑰,並且密鑰也被撤銷。但是,公鑰只應添加從相應私鑰生成的撤銷證書。

+0

這是初學者對PGP的一個常見誤解,我曾經擁有一個自己 - 爲密鑰添加撤銷證書與添加任何其他證書不同。 因此,upvote。 –

回答

1

您應該將吊銷證書添加到相應的公鑰,並將此更新的密鑰發送給密鑰服務器或您正在與之通信的其他方。

+0

我想你錯了我的問題。我正在努力取消公鑰。我的公鑰已被撤銷證書吊銷。但實際上,公鑰只能由相應私鑰生成的吊銷證書吊銷。 –

+3

當然,您可以將任何證書添加到您的公鑰。這是接收者檢查這個證書並決定是否信任它的工作。 –

1

你是對的,對另一個錯誤。

右鍵:您找到了向密鑰添加撤銷證書的正確功能。 addCertification功能是您應該用來將您的吊銷證書添加到PGP密鑰的功能。

錯誤:該函數不應讓您添加由公鑰所有者(我猜測是您的假設)以外的人簽署的撤銷證書。

您可以將任何人簽名的證書添加到PGP密鑰中。附加證書對鑰匙是否有影響是另一回事。

例如,我可以將由我的密鑰生成的撤銷證書附加到您的公鑰上。但是,這是否意味着您的密鑰現在已被撤銷?總之,不,它不。這是因爲只有通過相應私鑰簽署的撤銷證書才能撤消公鑰,並且在撤銷密鑰之前,應該根據相應的實現(比如像GPG這樣的加密程序)來驗證該公鑰。

在你的情況下,你的公鑰可以有任何數量的吊銷證書附加到它。但是,只有通過相應的私鑰簽署的撤銷證書(您大概擁有並且有希望保密)纔會具有實際撤消它的效果。這就是說,如果你希望事實上你已經吊銷了你的密鑰以便與世界其他地方溝通,也就是說,通過密鑰服務器,你應該首先生成一個由你的私鑰簽名的撤銷證書,並將其附加到你的公鑰(有效地撤銷它),然後將這個被撤銷的密鑰上傳到密鑰服務器。密鑰服務器將簡單地將你的密鑰合併到他們擁有的副本(如果他們擁有密鑰的話),並將密鑰傳播給它所知道的其他密鑰服務器。如果一切順利,在幾天或更長時間內,您的撤銷密鑰應該可以在直接或間接連接到您上傳密鑰的密鑰服務器上的密鑰服務器上使用。

相關問題