0
PGP簽名的驗證
我產生了PGP簽名:使用BouncyCastle的
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2
iQEcBBABCAAGBQJYnkPxAAoJEBFjzYGyXBOsXRoH/3O4bwKK45aUN+m0N4jsZ+n5
W8R/aGti/llvJ62tHBCO5BIp/pp+b1Gdv99xtnJXHu/f0TqPYj+fwq4vfaorNTtA
Vtq8MaMesw1OWZEfu/lyjNOwdg81FUlYkw0Bjo3H/MxWjWYUiHmJo+OGriyf5dv/
433ZqitZMxLHCfZsuoU5teZ0BPUSoNjF6hOFK3ZI7QXsgYUyohzW2goy9bDVCKRq
e73CHpnMKCrnDc+/4+sK349bD/cZp6/c0T8b7cBCeBGGilPD6ovJUQE5vhGTKnJM
lgyxhA87tw9wqFwpZXDr0nzOP+MFfE9WRGecVYZ9G+LP/biefSe5iWRaPIcZIi0=
=qUHb
-----END PGP SIGNATURE-----
的code在這裏,與BouncyCastle的實現:
(sign "project.clj"
"project.clj.asc"
<FILENAME>
"98B9A74D")
我希望能夠讀取該簽名和使用公鑰驗證它。這將如何變回BouncyCastle org.bouncycastle.openpgp.PGPSignature
對象?
質量代碼也會在發生異常時關閉文件。這最好通過使用「try with resources」來完成:'try(InputStream in = new org.bouncycastle.bcpg.ArmoredInputStream(new FileInputStream(filename))){'。這樣java將自動關閉文件給你,不需要明確的關閉。 –
@KlasLindbäck:很好,儘管我看過的BC例子並不使用try-resources,大概是因爲BC把它們的代碼宣告爲可移植到1.5。他們同樣使用明確的強制轉換,而不是像'List'這樣的表格,我覺得這更令人討厭。 –