【问题标题】:How to use GnuPG in a C++ application (not command line tool like)?如何在 C++ 应用程序中使用 GnuPG(不是命令行工具)?
【发布时间】:2016-01-01 13:03:10
【问题描述】:

我打算编写一个小应用程序,其基本思想是用户能够彼此共享加密信息。是的,类似于 PGP。因此,我想重用GnuPG 中的现有功能。

场景如下(非常简短):Alice 写了一个待办事项列表。应用程序使用对称密钥加密此列表,对称密钥与 Alice 的公钥并将列表保存在应用程序服务器上。现在爱丽丝想与鲍勃分享这些信息。因此,Alice 使用该应用程序将 Bob 添加到待办事项列表的读者中。该应用程序还使用 Bob 的公钥加密待办事项列表的对称密钥并更新服务器数据。

如前所述,我知道这与 PGP 非常相似,我想在我的 C++ 应用程序中使用 GnuPG(就像使用 OpenSSL 一样,可以看到 here)。但是 GnuPG 是documented 就像一个命令行工具。是否有任何 API 文档如何在 C++ 应用程序中使用此功能?这甚至可能吗?

【问题讨论】:

  • 可以选择使用gpgme 吗?
  • 我会调查的。谢谢。

标签: c++ encryption gnupg


【解决方案1】:

如果您想使用库来连接 GnuPG,GPGME 是一种无需解析 GnuPG 输出的麻烦的方法。有几个language bindings 用于连接它。

如果 GPGME 与所需的操作不匹配,或者您不想使用该库(尽管应该推荐),请使用 --with-colons--batch 选项以获得更容易解析的输出。与gpg-agent 一起,您还可以通过现有的实现让您的应用程序提示用户密码短语,同时启用密码短语的 GUI 提示。

【讨论】:

    猜你喜欢
    • 2015-07-29
    • 2015-06-11
    • 1970-01-01
    • 2018-02-03
    • 2011-06-15
    • 2018-07-21
    • 2014-10-08
    • 1970-01-01
    • 2019-08-26
    相关资源
    最近更新 更多