如何在C ++应用程序中使用GnuPG(不是命令行工具)?

时间:2016-01-01 13:03:11

标签: c++ encryption gnupg

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

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

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

1 个答案:

答案 0 :(得分:2)

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

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