【问题标题】:Verifying a GPG signature using a specific public key with GPGME in C / C++使用 C/C++ 中的 GPGME 使用特定公钥验证 GPG 签名
【发布时间】:2015-06-15 08:51:43
【问题描述】:

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

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

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

有什么方法可以通过 GPGME 实现这一点?非常感谢任何帮助。

【问题讨论】:

    标签: c++ c cryptography gnupg gpgme


    【解决方案1】:

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

    在 GPGME 中,指纹可以从通过gpgme_op_verify_result(...) 调用获取的gpgme_signature_t 获取(参见documentation)。

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-08-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-07-26
      • 1970-01-01
      • 2020-03-23
      • 2021-06-11
      相关资源
      最近更新 更多