3

我有一个 C++ 程序需要验证使用特定私钥使用 GPG 签名的文件的签名。使用 GPGME 我已经成功编写了一个程序,该程序验证给定文件是否已使用与 GPG 密钥环中的一个公钥对应的私钥正确签名。

现在我希望我的程序使用在我的程序中硬编码的公钥来验证文件,而不是仅仅使用 GPG 密钥环中可用的公钥之一来验证签名。

我希望我的程序(将安装在其他人的计算机上)能够验证该文件是否真的来自我。如果它通过使用用户计算机的 GPG 密钥环中的公钥列表进行验证操作,那么用户似乎可以用他自己的私钥对我的文件进行签名,即使我没有,我的程序也会验证文件的签名。签字。

有什么方法可以通过 GPGME 实现这一目标?任何帮助是极大的赞赏。

4

1 回答 1

2

虽然不能完全解决我的问题,但我通过检查用于验证签名文件的公钥指纹解决了这个问题。我可以在我的程序中对我的公钥的指纹进行硬编码,如果我的公钥不存在,我可以使用 GPGME 将我的公钥导入 GPG。

在 GPGME 中,指纹可以gpgme_signature_t通过gpgme_op_verify_result(...)调用获得(参见文档)。

GPG 可以使用以下命令显示您的公钥的指纹:gpg --fingerprint

于 2015-06-15T11:34:14.007 回答