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'这样的表格,我觉得这更令人讨厌。 –