2016-01-01 37 views
1

我打算寫一個小應用程序,其基本思想是用戶能夠相互共享加密信息。是的,類似於PGP。因此,我想重用GnuPG中的現有功能。如何在C++應用程序中使用GnuPG(而不是命令行工具)?

該場景如下(非常短):Alice寫一個待辦事項列表。應用程序使用對稱密鑰加密該列表,該對稱密鑰與Alice的公鑰一起保存在應用程序服務器上。現在愛麗絲想和鮑勃分享這些信息。因此Alice使用該應用程序將Bob添加到待辦事項列表的讀者。該應用程序還使用Bob的公鑰對待辦事項列表的對稱密鑰進行加密並更新服務器數據。如前所述,我知道這與PGP非常相似,我想在我的C++應用程序中使用GnuPG(就像可以看到的here一樣)。但是GnuPG是documented就像一個命令行工具。是否有任何API文檔可以在C++應用程序中使用此功能?這甚至有可能嗎?

+0

會使用[gpgme](https://www.gnupg.org/documentation/manuals/gpgme/)作爲選項嗎? – fvu

+0

我會研究一下。謝謝。 –

回答

2

如果你想使用庫來連接GnuPG,GPGME是解決GnuPG輸出的麻煩。有幾個language bindings用於連接它。

如果GPGME與所需操作不匹配,或者您不想使用該庫(應該推薦使用該庫),請使用--with-colons--batch選項來更容易地解析輸出。與gpg-agent一起,您還可以通過已有的實現爲應用程序提示用戶的密碼,同時啓用密碼短語的GUI提示。

相關問題